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) <noreply@anthropic.com>
3.7 KiB
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 etnpminstallé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 :
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
.82et expose déjà le domainelaboratoire.freeboxos.fr.
2. Build local
Depuis la racine du projet :
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 :
npm run preview
# Ouvre http://localhost:4321/nowyousea/
3. Déploiement via rsync
Commande à copier-coller (dry-run d'abord, puis réel) :
# 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 dedist/, pas le dossierdist/lui-même. --deletesupprime sur la cible les fichiers qui n'existent plus dans le build (assets hashés obsolètes). C'est voulu.- Ajouter
-nou--dry-runavant tout déploiement douteux.
Script one-liner pratique (build + push) :
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 :
# 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 lebase: '/nowyousea/'de la config Astro : les assets sont produits avechref="/nowyousea/_astro/..."et servis depuis/srv/www/nowyousea/_astro/.file_server { index index.html }: sertindex.htmlpar défaut à la racine.
Après modification du Caddyfile :
ssh floppyrj45@192.168.0.82 'sudo caddy validate --config /etc/caddy/Caddyfile && sudo systemctl reload caddy'
5. Vérifications post-déploiement
# 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 : https://laboratoire.freeboxos.fr/nowyousea/
6. Rollback rapide
Avant un déploiement risqué, faire un snapshot :
ssh floppyrj45@192.168.0.82 \
'cp -a /srv/www/nowyousea /srv/www/nowyousea.bak.$(date +%Y%m%d-%H%M%S)'
Pour restaurer :
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