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>
This commit is contained in:
parent
80574a83f3
commit
58c8b2ea7c
55 changed files with 168 additions and 8 deletions
18
.gitignore
vendored
18
.gitignore
vendored
|
|
@ -1,18 +1,20 @@
|
|||
site/
|
||||
__pycache__/
|
||||
wiki/site/
|
||||
wiki/__pycache__/
|
||||
|
||||
# Assets binaires — générés par wiki/scripts/build-assets.py
|
||||
# Hébergés sur https://static.alpinux.org/logo/
|
||||
wiki/docs/assets/*.png
|
||||
wiki/docs/assets/*.ico
|
||||
wiki/docs/assets/images/
|
||||
|
||||
dynamic/__pycache__/
|
||||
dynamic/routes/__pycache__/
|
||||
dynamic/venv/
|
||||
dynamic/.env
|
||||
|
||||
admin/__pycache__/
|
||||
admin/venv/
|
||||
admin/.env
|
||||
|
||||
# Assets binaires — générés par scripts/build-assets.py
|
||||
# Hébergés sur https://static.alpinux.org/logo/
|
||||
docs/assets/*.png
|
||||
docs/assets/*.ico
|
||||
docs/assets/images/
|
||||
|
||||
# Obsidian (local uniquement)
|
||||
.obsidian/
|
||||
|
|
|
|||
90
README.md
Normal file
90
README.md
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
# 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).
|
||||
26
feedback/README.md
Normal file
26
feedback/README.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# feedback.alpinux.org
|
||||
|
||||
Formulaire de retours et suggestions pour l'association Alpinux.
|
||||
|
||||
## Statut
|
||||
|
||||
À construire. Ce sous-domaine n'est pas encore développé.
|
||||
|
||||
## Idées
|
||||
|
||||
- Formulaire simple (Flask ou statique) pour collecter les retours des participants aux événements
|
||||
- Intégration AlpID optionnelle (retours anonymes possibles)
|
||||
- Stockage SQLite ou envoi par e-mail vers une liste de l'association
|
||||
|
||||
## Structure prévue
|
||||
|
||||
```
|
||||
feedback/
|
||||
├── app.py # Flask app (à créer)
|
||||
├── templates/
|
||||
├── static/
|
||||
├── requirements.txt
|
||||
├── .env.example
|
||||
├── feedback.alpinux.org.vhost.conf
|
||||
└── feedback.alpinux.org.service
|
||||
```
|
||||
16
portail/README.md
Normal file
16
portail/README.md
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
# portail.alpinux.org
|
||||
|
||||
Portail membres de l'association Alpinux.
|
||||
|
||||
## Statut
|
||||
|
||||
Géré directement via **ISPConfig** sur le serveur. Le contenu de ce sous-domaine (Nextcloud, Dolibarr ou autre outil collaboratif) est installé et configuré côté serveur et n'est pas versioné dans ce dépôt.
|
||||
|
||||
## Accès
|
||||
|
||||
- URL : https://portail.alpinux.org
|
||||
- Authentification : AlpID (SSO Keycloak — https://alpid.alpinux.org)
|
||||
|
||||
## Notes
|
||||
|
||||
Ce dossier est un espace réservé. Si un développement spécifique au portail est nécessaire (thème, plugin, scripts de déploiement), il sera ajouté ici.
|
||||
26
static/README.md
Normal file
26
static/README.md
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
# static.alpinux.org
|
||||
|
||||
CDN pour les fichiers binaires et assets statiques de l'association : logos, favicons, images Open Graph.
|
||||
|
||||
## Contenu hébergé
|
||||
|
||||
| Fichier | Usage |
|
||||
|---------|-------|
|
||||
| `logo/alpinux-logo-512.png` | Logo 512 px — page d'accueil alpinux.org, balises OG |
|
||||
| `logo/alpinux-logo-192.png` | Logo 192 px — PWA / Android home screen |
|
||||
| `logo/favicon-32.png` | Favicon 32 px |
|
||||
| `logo/favicon-16.png` | Favicon 16 px |
|
||||
| `logo/favicon.ico` | Favicon ICO multi-taille |
|
||||
|
||||
Ces fichiers sont **générés** par `wiki/scripts/build-assets.py` (à partir du SVG source `wiki/docs/assets/alpinux-logo.svg`) et **copiés manuellement** sur le serveur dans le répertoire web de static.alpinux.org. Ils ne sont pas versionés dans ce dépôt.
|
||||
|
||||
## Déploiement Apache
|
||||
|
||||
Configurer le VirtualHost avec le fichier `static.alpinux.org.vhost.conf` présent dans ce dossier.
|
||||
|
||||
```bash
|
||||
# Sur le serveur, dans ISPConfig ou directement :
|
||||
sudo cp static.alpinux.org.vhost.conf /etc/apache2/sites-available/
|
||||
sudo a2ensite static.alpinux.org
|
||||
sudo systemctl reload apache2
|
||||
```
|
||||
Loading…
Reference in a new issue