Cédrix
bc7e9f601b
security: retire les configs serveur du dépôt public
...
Supprime tous les fichiers *.vhost.conf et *.service du suivi git.
Ils révèlent l'architecture interne (ports, chemins, utilisateurs système)
et sont désormais conservés localement dans infra/ (hors dépôt).
Sanitise les docs de déploiement et les .env.example :
- chemins système remplacés par des variables génériques
- ports internes retirés
- client IDs Keycloak remplacés par des placeholders
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 17:25:55 +02:00
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
Cédrix
60eb8bc952
feat: interface admin portail.alpinux.org/admin/ — déclencher mkdocs build
...
Mini-app Flask (admin/) accessible à https://portail.alpinux.org/admin/ :
- Authentification AlpID OIDC, accès restreint au groupe « admins » Keycloak
- Bouton « Lancer mkdocs build » avec confirmation
- Exécution de deploy-wiki.sh en arrière-plan (thread), log capturé en direct
- Polling JS toutes les 2s pendant le build (status + log + historique)
- Affichage du journal en terminal sombre avec suivi automatique
- Historique des 20 derniers builds (date, déclencheur, résultat, durée)
- ProxyFix pour X-Forwarded-Proto / X-Script-Name (Apache reverse proxy)
Infrastructure :
- scripts/portail.alpinux.org.admin.conf : bloc ProxyPass pour ISPConfig
- scripts/alpinux-admin.service : systemd Gunicorn port 5002
- admin/.env.example, admin/requirements.txt
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 12:34:18 +02:00
Cédrix
27847dfad3
feat: dynamic.alpinux.org — quiz interactifs Flask + AlpID OIDC
...
App Flask complète pour https://dynamic.alpinux.org :
- 10 quiz Linux, 5 niveaux (Découverte → Expert), 50+ questions
- Public : Découverte, Débutant, Intermédiaire (6 quiz)
- Membres AlpID : Avancé, Expert (4 quiz — Git, Admin, Sécurité, Bash)
- Navigation question par question avec avance automatique après choix
- Score calculé côté serveur, enregistré en SQLite si connecté
- Page profil : meilleurs scores par quiz + historique des tentatives
Authentification :
- OIDC via authlib + AlpID (Keycloak), SSO partagé avec Gitea/Nextcloud
- Décorateur @login_required, redirection post-login sur l'URL d'origine
- /auth/login, /auth/callback, /auth/logout
Structure :
- dynamic/app.py, db.py, quiz.py, auth_utils.py
- dynamic/routes/ (public.py, auth.py, protected.py)
- dynamic/templates/ (base, index, quiz/*, profil/)
- dynamic/static/ (style.css thème Alpinux, quiz.js vanilla)
- dynamic/data/quizzes.json (source de vérité des questions)
- dynamic/.env.example
Infrastructure :
- scripts/dynamic.alpinux.org.vhost.conf (Apache reverse proxy)
- scripts/dynamic.alpinux.org.service (systemd Gunicorn)
- docs/technique/deploiement-dynamic.md (procédure complète)
- mkdocs.yml : page de déploiement ajoutée à la nav Technique
- .gitignore : exclut venv/ et .env
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 12:09:37 +02:00
Cédrix
565165cc70
Architecte static.alpinux.org : assets binaires hors git
...
- Logo SVG (source texte) ajouté dans docs/assets/alpinux-logo.svg
- .gitignore : exclut *.png, *.ico, docs/assets/images/ (binaires → static.alpinux.org)
- overrides/partials/logo.html : logo depuis https://static.alpinux.org/logo/
- overrides/main.html : favicons depuis static.alpinux.org via {% block extrahead %}
- mkdocs.yml : logo → SVG, ajout pymdownx.emoji (icônes Material)
- home/index.html : page d'accueil alpinux.org (logo + favicon depuis static.alpinux.org, carte dynamic.alpinux.org)
- scripts/build-assets.py : génère PNG/favicon depuis le SVG source
- scripts/static.alpinux.org.vhost.conf : template vhost Apache
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 08:46:06 +02:00