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

2.9 KiB

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.

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.

cd ~/Projects/org.alpinux.owni/wiki && claude
cd ~/Projects/org.alpinux.owni/admin && claude

Démarrage rapide par projet

wiki (wiki.alpinux.org)

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)

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)

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).