--- description: MS1 Reader — playbook Git/deploy + subtilités (ops) alwaysApply: true --- # Playbook Git / deploy — MS1 Reader ## Layout critique (≠ CRM) - Sur le serveur, le dépôt Git est à **`/home/ms1reader`**, pas dans `public_html` seul. - `ci4app/` et `public_html/` sont **frères** ; `index.php` charge `../ci4app/...`. - `www` est un **symlink** vers `public_html` — ne jamais versionner un dossier `www/` réel (casse le symlink). ## Fichiers deploy (obligatoires) 1. **`/home/ms1reader/deploy/deploy_dev.sh`** (hors git applicatif ou non tracké OK) - `REPO_DIR="/home/ms1reader"` (absolu — PHP n'a pas `HOME`) - `git fetch origin dev` → `reset --hard` → `git clean -fd -- ci4app public_html` - Réparer symlink `www` si besoin 2. **`public_html/deploy_dev.php`** (versionné) appelle le `.sh` 3. Exemple dans le repo : `deploy/deploy_dev.sh.example` ## Subtilités apprises - Terminal cPanel ≠ PowerShell Windows (`[ms1reader@serveur-prod ~]$`). - Premier `git checkout` sur fichiers existants : souvent besoin de `-f`. - `git clean` sur `public_html` peut enlever `.well-known` / favicon non versionnés. - Auth Gitea : Credential Manager ; éviter OAuth HTTP (`login/oauth/grant` Bad Request) → provider generic + token. - Ne pas tester `git@bitbucket.org` **depuis le serveur** (pas de clé) — Bitbucket = miroir depuis Gitea seulement. - Bitbucket créé avec `main` vide : aligner avec `git push --force … dev:dev` puis default branch `dev`, supprimer `main`. ## Test bout en bout 1. Push `dev` → Gitea 2. `git -C ~ log -1 --oneline` sur serveur = même SHA 3. `git ls-remote --heads git@bitbucket.org:progiwebinc/ms1readerv4.git` (depuis Windows) = même SHA