5.4 KiB
5.4 KiB
Guide de déploiement et mise à jour - zapwall.fr
État actuel
- Service: zapwall.service (systemd)
- Répertoire:
/var/www/zapwall.fr - Port application: 3001
- Nginx: Conteneur Docker
lecoffre_nginx_test - HTTPS: Configuré avec redirection automatique HTTP → HTTPS
Mise à jour du site depuis Git
Méthode 1 : Si le dépôt Git est déjà cloné sur le serveur
# Se connecter au serveur
ssh debian@92.243.27.35
# Aller dans le répertoire de l'application
cd /var/www/zapwall.fr
# Récupérer les dernières modifications
git fetch origin
# Basculer sur la branche souhaitée (par défaut: main)
git checkout main # ou master, ou une autre branche
# Récupérer les modifications
git pull origin main
# Installer les dépendances
npm ci
# Construire l'application
npm run build
# Redémarrer le service
sudo systemctl restart zapwall
# Vérifier que le service fonctionne
sudo systemctl status zapwall
Méthode 2 : Utiliser le script de mise à jour
Depuis votre machine locale :
# Mise à jour depuis la branche main
./update-from-git.sh main
# Ou depuis une autre branche
./update-from-git.sh master
Le script :
- Se connecte au serveur
- Récupère les modifications depuis Git
- Installe les dépendances
- Construit l'application
- Redémarre le service
- Vérifie que tout fonctionne
Méthode 3 : Transfert manuel depuis le dépôt local
Si le dépôt Git n'est pas sur le serveur :
# Depuis votre machine locale, dans le répertoire du projet
tar --exclude='node_modules' \
--exclude='.next' \
--exclude='.git' \
--exclude='*.tsbuildinfo' \
--exclude='.env*.local' \
--exclude='.cursor' \
-czf - . | ssh debian@92.243.27.35 "cd /var/www/zapwall.fr && tar -xzf -"
# Puis sur le serveur
ssh debian@92.243.27.35
cd /var/www/zapwall.fr
npm ci
npm run build
sudo systemctl restart zapwall
Commandes utiles
Voir les logs du service
ssh debian@92.243.27.35 'sudo journalctl -u zapwall -f'
Vérifier le statut du service
ssh debian@92.243.27.35 'sudo systemctl status zapwall'
Redémarrer le service
ssh debian@92.243.27.35 'sudo systemctl restart zapwall'
Vérifier que le port 3001 est en écoute
ssh debian@92.243.27.35 'sudo ss -tuln | grep 3001'
Vérifier la configuration nginx
ssh debian@92.243.27.35 'sudo docker exec lecoffre_nginx_test nginx -t'
Recharger nginx après modification
ssh debian@92.243.27.35 'sudo docker exec lecoffre_nginx_test nginx -s reload'
Configuration HTTPS
Actuellement, HTTPS est configuré avec des certificats auto-signés. Pour obtenir des certificats Let's Encrypt valides :
Option 1 : Utiliser certbot via snap (recommandé)
ssh debian@92.243.27.35
sudo snap install certbot --classic
sudo docker stop lecoffre_nginx_test
sudo certbot certonly --standalone -d zapwall.fr --non-interactive --agree-tos --email admin@zapwall.fr
sudo docker start lecoffre_nginx_test
# Copier les certificats dans le conteneur
sudo docker cp /etc/letsencrypt/live/zapwall.fr/fullchain.pem lecoffre_nginx_test:/etc/letsencrypt/live/zapwall.fr/fullchain.pem
sudo docker cp /etc/letsencrypt/live/zapwall.fr/privkey.pem lecoffre_nginx_test:/etc/letsencrypt/live/zapwall.fr/privkey.pem
# Mettre à jour la configuration nginx pour utiliser les certificats Let's Encrypt
# (modifier ssl_certificate et ssl_certificate_key dans /etc/nginx/conf.d/zapwall.fr.conf)
sudo docker exec lecoffre_nginx_test nginx -s reload
Option 2 : Utiliser acme.sh
ssh debian@92.243.27.35
curl https://get.acme.sh | sh
~/.acme.sh/acme.sh --issue -d zapwall.fr --standalone
Structure des fichiers
/var/www/zapwall.fr/ # Répertoire de l'application
├── .next/ # Build de production Next.js
├── node_modules/ # Dépendances npm
├── pages/ # Pages Next.js
├── components/ # Composants React
├── lib/ # Bibliothèques
└── package.json # Configuration npm
/etc/systemd/system/zapwall.service # Service systemd
/etc/nginx/conf.d/zapwall.fr.conf # Configuration nginx (dans le conteneur)
Dépannage
Le service ne démarre pas
# Voir les logs
ssh debian@92.243.27.35 'sudo journalctl -u zapwall -n 50'
# Vérifier que le répertoire existe
ssh debian@92.243.27.35 'ls -la /var/www/zapwall.fr'
# Vérifier que l'application est construite
ssh debian@92.243.27.35 'ls -la /var/www/zapwall.fr/.next'
Le port 3001 n'est pas en écoute
# Vérifier que le service est actif
ssh debian@92.243.27.35 'sudo systemctl status zapwall'
# Redémarrer le service
ssh debian@92.243.27.35 'sudo systemctl restart zapwall'
Nginx ne sert pas le bon site
# Vérifier la configuration
ssh debian@92.243.35 'sudo docker exec lecoffre_nginx_test cat /etc/nginx/conf.d/zapwall.fr.conf'
# Vérifier que proxy_pass pointe vers 172.17.0.1:3001
# Vérifier que server_name contient zapwall.fr
Notes importantes
- Le service zapwall doit être actif pour que l'application soit accessible
- Nginx fait un reverse proxy vers le port 3001
- Les modifications de code nécessitent un rebuild (
npm run build) et un redémarrage du service - Les certificats Let's Encrypt doivent être renouvelés tous les 90 jours