Files
folio/CLAUDE.md
T
cedricAbonnel 6d159e7dda fix : ordre require config→bootstrap dans login et logout, data/site/ hors git
- 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>
2026-05-15 12:52:06 +02:00

4.0 KiB

CLAUDE.md

Ce qu'est ce dépôt

Folio est un moteur de blog PHP. Ce répertoire est la copie locale du dépôt Git (https://git.abonnel.fr/cedricAbonnel/folio), branche DEV. Il contient uniquement le code du moteur — pas de données, pas de credentials.

Architecture

Répertoire local Site distant Rôle
~/Projects/folio/ Copie du dépôt Folio (branche DEV). On code ici.
~/Projects/varlog/ varlog.a5l.fr Workspace varlog (scripts de déploiement/sync). Sert de site de test pour le moteur.
~/Projects/varlog-data/ varlog.a5l.fr Articles de varlog. Sync bidirectionnelle.
~/Projects/fr.abonnel.www/ www.abonnel.fr Workspace abonnel.fr (scripts de déploiement/sync).
~/Projects/fr.abonnel.www-data/ www.abonnel.fr Articles de abonnel.fr. Sync bidirectionnelle.

abonnel.fr utilise Folio mais se met à jour seul via son UpdateChecker interne (vérifie version.txt sur Gitea). Aucune action manuelle nécessaire côté serveur.

Articles (data/)

Les articles ne sont pas versionnés dans ce dépôt. Ils ont leur propre dépôt git (~/Projects/varlog-data/, ~/Projects/fr.abonnel.www-data/), synchronisé de façon bidirectionnelle avec le serveur distant.

Modifier le moteur

Branches

Branche Rôle
dev Branche d'intégration permanente. Tout le développement courant se fait ici.
main Branche de production. Jamais de commit direct.
feat/* Branches feature optionnelles pour du travail isolé, mergées dans dev.

Workflow

  1. Toujours travailler sur dev (ou une branche feature mergée dans dev) :
    git checkout dev
    
  2. Tester sur varlog.a5l.fr à chaque itération (rsync des fichiers locaux, DB persistante) :
    ~/Projects/varlog/scripts/sync.sh
    # puis tester sur http://varlog.acegrp.lan
    
  3. Quand dev est stable et prête pour la production :
    • Bumper public/version.txt (semver)
    • Ajouter une entrée CHANGELOG.md (### Ajouté / Corrigé / Modifié)
    • Ouvrir une PR devmain sur Gitea
  4. Merger la PR → abonnel.fr se met à jour automatiquement.

Règle absolue : ne jamais commiter directement sur main. Le script scripts/push.sh bloque cette action.

Pourquoi dev et non des branches feature à la volée

  • La DB de varlog (test) accumule les migrations au fil du temps — changer de branche ne fait pas reculer les migrations.
  • Travailler toujours sur dev évite toute désynchronisation entre le code rsyncé et la DB.

Données articles (DATA_PATH)

Les articles sont stockés dans un répertoire hors du dépôt Folio, configurable via DATA_PATH dans .env (défaut production : /srv/data/folio).

Environnement Dépôt local articles Dépôt Gitea Serveur
varlog ~/Projects/varlog-data/ cedricAbonnel/varlog varlog:/srv/data/folio
abonnel.fr ~/Projects/fr.abonnel.www-data/ cedricAbonnel/abonnel-www abonnel-wiki:/srv/data/folio

Sync bidirectionnelle via git (pas rsync). Scripts dans ~/Projects/varlog/scripts/ et ~/Projects/fr.abonnel.www/scripts/ :

  • pull-data.sh : commit auto serveur + git pull local
  • push-data.sh : git commit local + git push + git pull serveur
  • sync.sh : moteur (rsync) + articles (git bidirectionnel)

Asymétrie de déploiement moteur

Site Mécanisme Raison
varlog (test) rsync depuis ~/Projects/folio/ Itération rapide, pas de contrainte de stabilité
abonnel.fr (prod) git pull origin main sur le serveur Contrôle via PR/merge, UpdateChecker autonome

Pour initialiser git sur un serveur abonnel.fr déployé via rsync : scripts/git-init-remote.sh

Ne pas mettre ici

  • .env (credentials → dans chaque workspace site)
  • data/ (articles → dans chaque workspace site)
  • vendor/ (non versionné)