Déployer dynamic depuis alpinux-dynamic, plus depuis le monorepo

L'application a quitté alpinux.site.2026 pour son propre dépôt, et elle
est à la racine : plus de sous-dossier dynamic/ à traverser pour le
venv, le .env.example, la mise à jour ou le fichier des quiz.

Au passage, l'unité systemd est dans infra/services/, pas infra/dynamic/.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
This commit is contained in:
Alpinux 2026-09-19 23:03:14 +02:00
parent 69db2f66d5
commit 9d2c931a92

View file

@ -23,7 +23,7 @@ Apache (reverse proxy, SSL)
Gunicorn (2 workers) Gunicorn (2 workers)
│ │
▼ ▼
Flask app (dynamic/) Flask app (alpinux-dynamic)
│ │ │ │
▼ ▼ ▼ ▼
SQLite AlpID OIDC SQLite AlpID OIDC
@ -38,14 +38,14 @@ SQLite AlpID OIDC
```bash ```bash
ssh <user>@alpinux.org ssh <user>@alpinux.org
git clone https://gitea.alpinux.org/alpinux.cedrica5l/alpinux.site.2026.git \ git clone https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-dynamic.git \
$APP_DIR $APP_DIR
``` ```
### 2. Créer l'environnement Python ### 2. Créer l'environnement Python
```bash ```bash
cd $APP_DIR/dynamic cd $APP_DIR
python3 -m venv venv python3 -m venv venv
venv/bin/pip install -r requirements.txt gunicorn venv/bin/pip install -r requirements.txt gunicorn
``` ```
@ -54,7 +54,7 @@ venv/bin/pip install -r requirements.txt gunicorn
```bash ```bash
sudo mkdir /etc/dynamic-alpinux sudo mkdir /etc/dynamic-alpinux
sudo cp $APP_DIR/dynamic/.env.example /etc/dynamic-alpinux/config.env sudo cp $APP_DIR/.env.example /etc/dynamic-alpinux/config.env
sudo nano /etc/dynamic-alpinux/config.env sudo nano /etc/dynamic-alpinux/config.env
``` ```
@ -96,7 +96,7 @@ Dans la console d'administration Keycloak (`https://alpid.alpinux.org`) :
Les fichiers de configuration systemd et Apache sont conservés **hors dépôt** (`infra/` local). Les fichiers de configuration systemd et Apache sont conservés **hors dépôt** (`infra/` local).
```bash ```bash
sudo cp infra/dynamic/dynamic.alpinux.org.service \ sudo cp infra/services/dynamic.alpinux.org.service \
/etc/systemd/system/dynamic-alpinux.service /etc/systemd/system/dynamic-alpinux.service
sudo systemctl daemon-reload sudo systemctl daemon-reload
sudo systemctl enable --now dynamic-alpinux sudo systemctl enable --now dynamic-alpinux
@ -128,7 +128,6 @@ ISPConfig gère le VirtualHost et le renouvellement automatique du certificat.
ssh <user>@alpinux.org ssh <user>@alpinux.org
cd $APP_DIR cd $APP_DIR
git pull git pull
cd dynamic
venv/bin/pip install -r requirements.txt # si requirements.txt a changé venv/bin/pip install -r requirements.txt # si requirements.txt a changé
sudo systemctl restart dynamic-alpinux sudo systemctl restart dynamic-alpinux
``` ```
@ -150,7 +149,7 @@ sudo systemctl restart dynamic-alpinux
## Structure de l'application ## Structure de l'application
``` ```
dynamic/ alpinux-dynamic/
├── app.py ← point d'entrée Flask ├── app.py ← point d'entrée Flask
├── auth_utils.py ← décorateur @login_required ├── auth_utils.py ← décorateur @login_required
├── db.py ← SQLite (scores) ├── db.py ← SQLite (scores)
@ -197,7 +196,7 @@ Les quiz avancés (niveau 4) et experts (niveau 5) ont `"members_only": true` da
## Ajouter un quiz ## Ajouter un quiz
Éditez `dynamic/data/quizzes.json` et ajoutez un objet au tableau : Éditez `data/quizzes.json` et ajoutez un objet au tableau :
```json ```json
{ {