From 1de2f6cefd53b8c226ff82a7bc374b35fba539d3 Mon Sep 17 00:00:00 2001 From: Poulpe Date: Tue, 21 Apr 2026 07:32:39 +0000 Subject: [PATCH] docs: add DEPLOY.md with rsync commands and Caddy snippet Step-by-step procedure to build locally and rsync dist/ to floppyrj45@192.168.0.82:/srv/www/nowyousea/, plus the Caddy snippet that serves /nowyousea/ with the correct base-path handling and a rollback tip. Co-Authored-By: Claude Opus 4.7 (1M context) --- DEPLOY.md | 135 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) create mode 100644 DEPLOY.md diff --git a/DEPLOY.md b/DEPLOY.md new file mode 100644 index 0000000..f384771 --- /dev/null +++ b/DEPLOY.md @@ -0,0 +1,135 @@ +# Déploiement — Site vitrine NowYouSea + +Ce document décrit comment publier le site vitrine NowYouSea sur la VM +`192.168.0.82`, exposé via Caddy à l'URL **https://laboratoire.freeboxos.fr/nowyousea/**. + +## 1. Prérequis + +- `node` ≥ 20 et `npm` installés en local +- Accès SSH à `floppyrj45@192.168.0.82` +- Le dossier `/srv/www/nowyousea/` existe sur la VM cible et appartient à `floppyrj45` + (ou est accessible en écriture). Si ce n'est pas le cas : + +```bash +ssh floppyrj45@192.168.0.82 'sudo mkdir -p /srv/www/nowyousea && sudo chown -R floppyrj45:floppyrj45 /srv/www/nowyousea' +``` + +- Caddy tourne sur la VM `.82` et expose déjà le domaine + `laboratoire.freeboxos.fr`. + +## 2. Build local + +Depuis la racine du projet : + +```bash +npm install # à ne faire qu'une fois +npm run build # génère dist/ +``` + +Le build est statique : toute la sortie tient dans `dist/`. +La configuration `base: '/nowyousea/'` est appliquée dans `astro.config.mjs`, +donc tous les liens internes et assets sont préfixés automatiquement. + +Vérification rapide en local : + +```bash +npm run preview +# Ouvre http://localhost:4321/nowyousea/ +``` + +## 3. Déploiement via rsync + +Commande à copier-coller (dry-run d'abord, puis réel) : + +```bash +# Dry-run — affiche ce qui serait copié, ne touche à rien +rsync -avz --delete --dry-run \ + ./dist/ \ + floppyrj45@192.168.0.82:/srv/www/nowyousea/ + +# Réel +rsync -avz --delete \ + ./dist/ \ + floppyrj45@192.168.0.82:/srv/www/nowyousea/ +``` + +Notes : + +- Le **slash final** sur `./dist/` est essentiel : il indique à rsync de copier + *le contenu* de `dist/`, pas le dossier `dist/` lui-même. +- `--delete` supprime sur la cible les fichiers qui n'existent plus dans le + build (assets hashés obsolètes). C'est voulu. +- Ajouter `-n` ou `--dry-run` avant tout déploiement douteux. + +Script one-liner pratique (build + push) : + +```bash +npm run build && \ +rsync -avz --delete ./dist/ floppyrj45@192.168.0.82:/srv/www/nowyousea/ +``` + +## 4. Configuration Caddy + +Snippet à ajouter au `Caddyfile` de la VM `.82`, sous le bloc du site +`laboratoire.freeboxos.fr` : + +```caddyfile +# NowYouSea — Site vitrine +handle /nowyousea { + redir /nowyousea/ 307 +} +handle_path /nowyousea/* { + root * /srv/www/nowyousea + file_server { + index index.html + } +} +``` + +Explications : + +- `handle /nowyousea` : si un visiteur arrive sans slash final, il est redirigé + vers `/nowyousea/` pour que les liens relatifs fonctionnent. +- `handle_path /nowyousea/*` : retire le préfixe `/nowyousea/` avant de servir + les fichiers depuis `/srv/www/nowyousea/`. Cela s'aligne exactement avec le + `base: '/nowyousea/'` de la config Astro : les assets sont produits avec + `href="/nowyousea/_astro/..."` et servis depuis `/srv/www/nowyousea/_astro/`. +- `file_server { index index.html }` : sert `index.html` par défaut à la racine. + +Après modification du Caddyfile : + +```bash +ssh floppyrj45@192.168.0.82 'sudo caddy validate --config /etc/caddy/Caddyfile && sudo systemctl reload caddy' +``` + +## 5. Vérifications post-déploiement + +```bash +# Réponse HTTP attendue : 200 OK +curl -sIL https://laboratoire.freeboxos.fr/nowyousea/ | head -n 10 + +# Vérifier que les assets CSS/JS sont servis (pas de 404) +curl -sI https://laboratoire.freeboxos.fr/nowyousea/_astro/ 2>&1 | head -n 2 +``` + +Puis dans un navigateur : + +## 6. Rollback rapide + +Avant un déploiement risqué, faire un snapshot : + +```bash +ssh floppyrj45@192.168.0.82 \ + 'cp -a /srv/www/nowyousea /srv/www/nowyousea.bak.$(date +%Y%m%d-%H%M%S)' +``` + +Pour restaurer : + +```bash +ssh floppyrj45@192.168.0.82 \ + 'rsync -a --delete /srv/www/nowyousea.bak.YYYYMMDD-HHMMSS/ /srv/www/nowyousea/' +``` + +--- + +*Documentation de déploiement — Site vitrine NowYouSea*