alpinux.site.2026/README.md
Cédrix 58c8b2ea7c refactor: réorganise le monorepo en sous-dossiers par sous-domaine
Chaque site (wiki, home, dynamic, admin, static, portail, feedback)
a désormais son propre dossier autonome avec ses scripts de déploiement.
Ajoute README.md racine expliquant la structure et la convention git/Claude.
Met à jour .gitignore pour les nouveaux chemins (wiki/docs/assets/).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 17:20:41 +02:00

90 lines
2.9 KiB
Markdown

# org.alpinux.owni — Monorepo Alpinux
Dépôt unique de l'association **Alpinux** (LUG de Savoie).
Gitea : https://gitea.alpinux.org/alpinux.cedrica5l/alpinux.site.2026
---
## Structure
Chaque sous-dossier correspond à un sous-domaine indépendant de `alpinux.org`.
```
org.alpinux.owni/
├── wiki/ → wiki.alpinux.org MkDocs Material (documentation publique)
├── home/ → alpinux.org Page d'accueil statique
├── dynamic/ → dynamic.alpinux.org Flask — quiz et jeux (public + membres)
├── admin/ → admin.alpinux.org Flask — interface d'administration
├── static/ → static.alpinux.org CDN assets : logos, favicons, images OG
├── portail/ → portail.alpinux.org Portail membres (ISPConfig, Nextcloud…)
└── feedback/ → feedback.alpinux.org Formulaire de retours (à construire)
```
---
## Projets indépendants, liés par l'infrastructure
Chaque projet :
- a sa propre configuration Apache (`*.vhost.conf`) et son unit systemd (`*.service`) dans son dossier
- utilise **AlpID** (SSO Keycloak — https://alpid.alpinux.org) pour l'authentification
- a son propre environnement Python (`venv/`) et son fichier `.env` (non versionés)
Les projets sont **liés** par le SSO partagé, le serveur commun (ISPConfig), et l'identité visuelle (logo depuis `static.alpinux.org`).
---
## Convention git et Claude
> **Travailler dans le sous-dossier du projet concerné**, pas à la racine du dépôt.
```bash
cd wiki/ # pour modifier le wiki ou MkDocs
cd dynamic/ # pour modifier l'appli quiz
cd admin/ # pour modifier l'interface admin
```
De même, lorsqu'on utilise **Claude Code** (ou tout autre outil IA) :
lancer Claude depuis le sous-dossier du projet pour que le contexte soit limité à ce projet.
```bash
cd ~/Projects/org.alpinux.owni/wiki && claude
cd ~/Projects/org.alpinux.owni/admin && claude
```
---
## Démarrage rapide par projet
### wiki (wiki.alpinux.org)
```bash
cd wiki
python3 scripts/build-assets.py # génère docs/assets/alpinux-logo.png
pip install mkdocs-material
mkdocs serve # dev local sur http://127.0.0.1:8000
mkdocs build --strict # build de prod dans site/
```
### dynamic (dynamic.alpinux.org)
```bash
cd dynamic
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env && nano .env # renseigner les clés AlpID
flask run --port 5001
```
### admin (admin.alpinux.org)
```bash
cd admin
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env && nano .env # renseigner les clés AlpID
flask run --port 5002
```
---
## Déploiement serveur
Voir les fichiers `docs/technique/` dans `wiki/` pour la documentation complète.
Chaque projet contient son propre `*.vhost.conf` (Apache ISPConfig) et `*.service` (systemd).