- 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
4.6 KiB
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
dig +short <domaine>doit répondre {{IP}}, etdig +short AAAA <domaine>ne doit rien répondre (chapitre 1).- Le port 80 doit être ouvert (
sudo v-list-firewall | grep WEB). - Lisez le journal
/var/log/hestia/LE-{{CLIENT}}-<domaine>.log. - 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
- Testez sur https://www.mail-tester.com et suivez ses indications.
- Vérifiez le PTR :
dig +short -x {{IP}}doit répondre{{FQDN}}.. - Vérifiez que l'IP n'est pas sur liste noire : https://check.spamhaus.org.
- 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 |