Files
vps-docs/hestiacp/chapitres/14-maintenance.md
Zana 2e18724685 Ajout du guide PDF HestiaCP réutilisable (HestiaCP 1.10.4)
- 14 chapitres + annexe en Markdown (chapitres/), 99 étapes
- Générateur WeasyPrint (build/build.py) : PDF générique ou
  personnalisé via --vars fichier.conf
- PDF générique + PDF personnalisé srv1.skglobalinstitute.com
- Commandes v-* vérifiées contre le code source HestiaCP 1.10.4
- 03-bis-hestiacp.md pointe vers le nouveau guide

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018J2PsVQ28oW4xEkWJpcU9G
2026-09-10 20:01:59 +02:00

4.6 KiB

Maintenance et dépannage

Faire les mises à jour mensuelles

HestiaCP et les correctifs de sécurité d'Ubuntu s'installent seuls. Une fois par mois, mettez aussi à jour le reste (PHP, Nginx, MariaDB, Docker) :

sudo apt update && sudo apt upgrade
[ -f /var/run/reboot-required ] && echo "Redémarrage nécessaire"
sudo v-list-sys-hestia-updates

Warning

Si apt demande quoi faire d'un fichier de configuration modifié, répondez N (garder la version actuelle). HestiaCP gère lui-même ces fichiers.

Mettez à jour les conteneurs de la même façon : docker compose pull && docker compose up -d dans chaque dossier /opt/<appli>, ou le bouton de mise à jour de Portainer.

Mémo des commandes utiles

Besoin Commande
État des services sudo v-list-sys-services
Redémarrer un service sudo v-restart-service nginx (ou apache2, php-fpm, exim4, dovecot, mariadb, bind9)
Lister les utilisateurs / sites sudo v-list-users · sudo v-list-web-domains {{CLIENT}}
Reconstruire la config des sites sudo v-rebuild-web-domains {{CLIENT}}
Reconstruire tout un utilisateur sudo v-rebuild-user {{CLIENT}}
Pare-feu, IP bannies sudo v-list-firewall · sudo v-list-firewall-ban
Débannir une IP sudo v-delete-firewall-ban <IP> ALL
Renouveler un certificat sudo v-add-letsencrypt-domain {{CLIENT}} <domaine> www.<domaine>
Aide d'une commande ouvrir le script, ex. head -12 /usr/local/hestia/bin/v-add-web-domain

Où trouver les journaux

Journal Emplacement
Actions HestiaCP /var/log/hestia/system.log, /var/log/hestia/error.log
Connexions au panel /var/log/hestia/auth.log
Let's Encrypt /var/log/hestia/LE-<utilisateur>-<domaine>.log
Sites (Nginx / Apache) /var/log/nginx/domains/, /var/log/apache2/domains/
Mail envoyé et reçu /var/log/exim4/mainlog
IMAP / POP3 /var/log/dovecot.log
Fail2ban /var/log/fail2ban.log
SSH /var/log/auth.log
Installation /root/hst_install_backups/

Résoudre les problèmes fréquents

Le certificat Let's Encrypt échoue

  1. dig +short <domaine> doit répondre {{IP}}, et dig +short AAAA <domaine> ne doit rien répondre (chapitre 1).
  2. Le port 80 doit être ouvert (sudo v-list-firewall | grep WEB).
  3. Lisez le journal /var/log/hestia/LE-{{CLIENT}}-<domaine>.log.
  4. Après trop d'échecs, Let's Encrypt bloque le domaine pendant une heure : attendez avant de réessayer.

Erreur 502 ou 503 sur un site

PHP-FPM est arrêté ou saturé :

sudo v-restart-service php-fpm
sudo tail -n 50 /var/log/apache2/domains/{{SITE}}.error.log

Erreur 500 sur une application Symfony

Connecté en {{CLIENT}} :

tail -n 50 ~/web/{{SITE}}/public_html/var/log/prod.log
cd ~/web/{{SITE}}/public_html && php bin/console cache:clear

Les mails arrivent en spam

  1. Testez sur https://www.mail-tester.com et suivez ses indications.
  2. Vérifiez le PTR : dig +short -x {{IP}} doit répondre {{FQDN}}..
  3. Vérifiez que l'IP n'est pas sur liste noire : https://check.spamhaus.org.
  4. Vérifiez SPF, DKIM et DMARC : sudo v-list-dns-records {{CLIENT}} {{DOMAINE}}.

Vous êtes bloqué dehors (SSH refusé)

Votre IP a sans doute été bannie par Fail2ban. Connectez-vous par la console VNC du panel Contabo, puis :

sudo v-list-firewall-ban
sudo v-delete-firewall-ban VOTRE_IP ALL

Le disque se remplit

df -h /
sudo du -sh /backup /home/* /var/lib/docker /var/log 2>/dev/null | sort -h
docker system prune

Réduisez si besoin le nombre de sauvegardes locales dans le forfait (BACKUPS), puisqu'une copie existe sur le serveur distant.

Vérifier que tout est en place

✓ Vérification
☐ Panel accessible en HTTPS avec certificat valide et double authentification
☐ SSH uniquement par clé, sur le port {{SSH_PORT}}, root interdit
☐ IPv6 entrante bloquée (sudo ip6tables -S INPUT)
☐ UFW absent, pare-feu HestiaCP et Fail2ban actifs
☐ dig NS {{DOMAINE}} renvoie ns1 et ns2.{{DOMAINE}}
☐ PTR de {{IP}} = {{FQDN}}
☐ Sites en HTTPS forcé, sans enregistrement AAAA
☐ mail-tester.com : 10/10 ; Gmail : SPF, DKIM et DMARC en PASS
☐ Conteneurs Docker publiés uniquement sur 127.0.0.1 (ss -tlnp)
☐ Sauvegarde HestiaCP présente sur {{BACKUP_HOST}}
☐ Sauvegarde système (/var/log/backup-systeme.log sans erreur)
☐ Uptime Kuma et une surveillance externe actifs
☐ Une restauration de test réussie