6d159e7dda
- public/login/index.php, login/magic.php, logout.php : config/config.php chargé avant bootstrap.php pour que SESSION_NAME soit défini avant session_start() - data/site/ retiré du suivi git (.gitignore corrigé) : contenu site-spécifique déjà présent dans varlog-data/site/ et fr.abonnel.www-data/site/ - CLAUDE.md : chemins articles corrigés (varlog-data/, fr.abonnel.www-data/) - consignes.md : ajouté (architecture, workflow, règles, procédures déploiement) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.0 KiB
4.0 KiB
Consignes — Folio
Architecture
Folio est un moteur de blog PHP.
Dépôts et rôles
| Répertoire local | Rôle | Remote Gitea |
|---|---|---|
~/Projects/folio/ |
Copie du moteur Folio, branche dev. Tout le développement se fait ici. |
git.abonnel.fr/cedricAbonnel/folio |
~/Projects/varlog/ |
Workspace du site varlog (scripts, config). | — |
~/Projects/varlog-data/ |
Articles de varlog.a5l.fr. Sync bidirectionnelle. | cedricAbonnel/varlog |
~/Projects/fr.abonnel.www/ |
Workspace du site abonnel.fr (scripts, config). | — |
~/Projects/fr.abonnel.www-data/ |
Articles de www.abonnel.fr. Sync bidirectionnelle. | cedricAbonnel/abonnel-www |
Environnements
| Site | Rôle | Mise à jour moteur | Articles |
|---|---|---|---|
| varlog.a5l.fr | Test | rsync depuis ~/Projects/folio/ |
varlog-data/ ↔ varlog:/srv/data/folio |
| www.abonnel.fr | Production | Auto (UpdateChecker vérifie version.txt sur Gitea) |
fr.abonnel.www-data/ ↔ abonnel-wiki:/srv/data/folio |
Articles (DATA_PATH)
Les articles ne sont jamais dans le dépôt folio. Ils vivent dans un répertoire séparé, configurable via DATA_PATH dans le .env de chaque instance.
- Serveur varlog :
DATA_PATH=/srv/data/folio - Serveur abonnel.fr :
DATA_PATH=/srv/data/folio - En local pour tester : pointer
DATA_PATHvers~/Projects/varlog-data/
La sync des articles se fait via git (pas rsync) avec les scripts pull-data.sh et push-data.sh.
Workflow moteur
- Travailler sur
devdans~/Projects/folio/ - Tester sur varlog.a5l.fr :
~/Projects/varlog/scripts/sync.sh # puis vérifier sur http://varlog.acegrp.lan (ou varlog.a5l.fr) - Quand
devest stable :- Bumper
public/version.txt(semver) - Ajouter une entrée dans
CHANGELOG.md - Ouvrir une PR
dev→mainsur Gitea
- Bumper
- Merger la PR → abonnel.fr se met à jour automatiquement.
Règle absolue : jamais de commit direct sur main.
Mise à jour du moteur (varlog)
Le poste local n'a pas de base de données. Tout ce qui touche à la DB ou au contenu s'exécute sur le serveur varlog via SSH — les scripts locaux ne font qu'ouvrir une connexion SSH et lancer le PHP distant.
Cycle de développement :
- Modifier le code dans
~/Projects/folio/(local) - Déployer et tester :
# Rsync moteur (folio → varlog) + sync articles bidirectionnel
~/Projects/varlog/scripts/sync.sh
# puis tester sur http://varlog.acegrp.lan
- Si des migrations de schéma BDD sont nécessaires :
~/Projects/varlog/scripts/db-migrate.sh # exécute le PHP sur varlog via SSH
- Si des migrations de contenu sont nécessaires :
~/Projects/varlog/scripts/content-migrate.sh # exécute le PHP sur varlog via SSH
Déploiement complet en une commande (lint + rsync + DB + contenu + commit serveur) :
~/Projects/varlog/scripts/deploy.sh "message de commit"
Chemin serveur : varlog:/var/www/lan.acegrp.varlog/
Mise à jour manuelle du moteur (abonnel.fr)
À utiliser uniquement si l'UpdateChecker échoue :
cp /var/www/lan.acegrp.abonnel-www/.env /tmp/.env.bak
rm -rf /var/www/lan.acegrp.abonnel-www
git clone --depth=1 https://cedricAbonnel:TOKEN@git.abonnel.fr/cedricAbonnel/folio.git /var/www/lan.acegrp.abonnel-www
cp /tmp/.env.bak /var/www/lan.acegrp.abonnel-www/.env
cd /var/www/lan.acegrp.abonnel-www && composer install --no-dev --optimize-autoloader
php database/migrate.php
git -C /var/www/lan.acegrp.abonnel-www config user.email 'cedric@abonnel.fr'
git -C /var/www/lan.acegrp.abonnel-www config user.name 'Cédrix'
Règles à respecter
- Ne jamais écraser le
.envserveur (ni scp, ni réécriture). Indiquer les variables à l'utilisateur pour qu'il les saisisse lui-même. - Ne jamais versionner
data/,.env, ouvendor/dans le dépôt folio. - Toujours bumper la version et mettre à jour le changelog dans le même commit que la PR.