Compare commits

...

2 commits

Author SHA1 Message Date
Alpinux
9d2c931a92 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
2026-09-19 23:03:14 +02:00
Alpinux
69db2f66d5 Dire d'où part un nouvel article : de sa bifurcation, à jour
Le schéma de la vue d'ensemble sautait la bifurcation et laissait croire
qu'on édite le dépôt du wiki lui-même. Il décrit maintenant le vrai
parcours, et le cas des mainteneurs tient dans un encadré : branche et
pull request quand même, la bifurcation devient facultative.

L'étape « Proposer un nouvel article » commençait au bouton « Nouveau
fichier », sans dire où. Elle part désormais de la bifurcation, et
insiste sur ce qui mord : une copie ne se met pas à jour toute seule, et
un article écrit sur une version dépassée finit en conflit.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BE4rvHVETRoWnYNDTGssdo
2026-09-19 23:03:14 +02:00
2 changed files with 45 additions and 16 deletions

View file

@ -14,15 +14,21 @@ Ce wiki appartient à toute la communauté Alpinux. Si vous repérez une faute,
## Vue d'ensemble du processus ## Vue d'ensemble du processus
``` ```
Vous → AlpID → Gitea → Mainteneurs → Wiki en ligne Compte AlpID → Bifurcation → Branche → Pull request → Mainteneurs → Wiki
Créez un compte Vous connecte Vous éditez Relisent et MkDocs publie Vous connecte Votre copie Vos Vous la Relisent et MkDocs
sur AlpID à Gitea la page acceptent automatiquement à la forge personnelle modifs proposez fusionnent publie
+ ouvrez une votre du wiki y sont au wiki la fusion
pull request contribution isolées
``` ```
En résumé : vous proposez une modification, un mainteneur la valide, et le wiki se met à Le point important : **vous n'écrivez jamais dans le dépôt du wiki**. Vous écrivez dans
jour tout seul — en quelques secondes, sans intervention de personne. votre bifurcation — votre copie personnelle, où vous ne risquez rien — puis vous
proposez ce travail par une pull request. Un mainteneur relit, fusionne, et le site se
met à jour tout seul dans les secondes qui suivent.
!!! note "Et si j'ai les droits d'écriture sur le dépôt ?"
La règle reste la même : une branche, puis une pull request, même pour les
mainteneurs. La bifurcation devient alors facultative, rien d'autre ne change.
!!! note "Deux façons de contribuer" !!! note "Deux façons de contribuer"
Ce guide décrit la voie **depuis le navigateur**, celle qui ne demande aucune Ce guide décrit la voie **depuis le navigateur**, celle qui ne demande aucune
@ -110,6 +116,29 @@ C'est la façon la plus simple de contribuer : corriger une faute, compléter un
Vous avez rédigé un guide ou un compte-rendu et souhaitez l'ajouter au wiki. Vous avez rédigé un guide ou un compte-rendu et souhaitez l'ajouter au wiki.
### Partir de sa bifurcation
Un nouvel article ne se crée pas dans le dépôt du wiki, mais dans **votre bifurcation**.
Si vous n'en avez pas encore, créez-la : sur
[le dépôt du wiki](https://gitea.alpinux.org/alpinux.cedrica5l/alpinux-wiki), bouton
**« Bifurcation »** (*Fork*) en haut à droite. Vous obtenez une copie complète du wiki
dans votre espace personnel sur la forge, sur laquelle vous avez tous les droits.
!!! warning "Une bifurcation vieillit"
Votre copie ne se met pas à jour toute seule : elle reste figée au jour où vous
l'avez créée. **Avant d'écrire, récupérez l'état actuel du wiki**, sinon votre
article partira d'une version dépassée et la pull request risque le conflit.
- **Depuis la forge** : sur votre bifurcation, le bandeau
*« Cette branche est en retard de N commits »* propose un bouton de
synchronisation — cliquez-le.
- **Depuis votre ordinateur** : `git pull upstream main`, après avoir déclaré le
dépôt du wiki comme `upstream`. La marche à suivre complète est dans
[Rédiger en ligne de commande](ligne-de-commande.md#1-bifurquer-puis-cloner).
Pour un article un peu long, travailler depuis son ordinateur est nettement plus
confortable que l'éditeur du navigateur — et c'est la même pull request au bout.
### Choisir le bon dossier ### Choisir le bon dossier
Avant de créer votre fichier, identifiez dans quelle section il a sa place : Avant de créer votre fichier, identifiez dans quelle section il a sa place :
@ -123,7 +152,8 @@ Avant de créer votre fichier, identifiez dans quelle section il a sa place :
### Créer le fichier ### Créer le fichier
1. Naviguez dans le dépôt vers le bon dossier (ex. `docs/guides/`). 1. Dans **votre bifurcation** (et non dans le dépôt du wiki), naviguez vers le bon
dossier (ex. `docs/guides/`).
2. Cliquez sur le bouton **« + »** ou **« Nouveau fichier »** en haut à droite de la liste des fichiers. 2. Cliquez sur le bouton **« + »** ou **« Nouveau fichier »** en haut à droite de la liste des fichiers.

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
{ {