Dossier
Deploiement et operations Hermes Agent : VPS, reverse proxy, sauvegarde, supervision
Deployer et operer Hermes Agent en production : VPS, reverse proxy, sauvegarde, restauration, supervision systemd, logs, dimensionnement et bonnes pratiques. Guide independant, structure et verifiable.
Sur cette page
Introduction
Une fois Hermes Agent configure et operationnel en local, vient le moment de le deployer en production : sur un VPS, derriere un reverse proxy, avec des sauvegardes, une supervision et des procedures de restauration. Cette page couvre l'ensemble du cycle de vie operationnel.
Hermes Agent est concu pour un deploiement simple : un binaire Python, un repertoire de donnees (~/.hermes/), et un gateway qui s'installe comme service systemd. Pas de base de donnees externe, pas de dependances lourdes.
Questions couvertes
q-142: Comment faire fonctionner Hermes Agent derriere un reverse proxy ?
Pour exposer le dashboard, l'API ou le gateway derriere un reverse proxy, utilisez Nginx ou Caddy. Exemple avec Nginx :
server {
listen 443 ssl;
server_name hermes.mon-domaine.com;
ssl_certificate /etc/letsencrypt/live/hermes.mon-domaine.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/hermes.mon-domaine.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:8642;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}Points d'attention :
- Le support WebSocket (
Upgrade/Connectionheaders) est necessaire pour le dashboard et Desktop - Augmentez les timeouts proxy pour les reponses longues de l'agent :
proxy_read_timeout 300s; - Pour le gateway, le port par defaut est 8642 ; pour les webhooks, 8644
q-143: Comment sauvegarder tout le repertoire Hermes Agent ?
Une sauvegarde complete de Hermes Agent consiste a sauvegarder le repertoire ~/.hermes/ :
# Sauvegarde avec tar
tar -czf hermes-backup-$(date +%Y%m%d).tar.gz ~/.hermes/
# Sauvegarde avec rsync
rsync -av ~/.hermes/ /backup/hermes/Ce qui est sauvegarde :
| Donnee | Emplacement | Critique ? |
|---|---|---|
| Configuration | config.yaml |
Oui |
| Secrets | .env |
Oui (chiffrer separement) |
| Sessions | sessions/, state.db |
Moyen |
| Memoire | MEMORY.md, USER.md |
Oui |
| Skills | skills/ |
Oui (peut etre reinstalle) |
| Crons | cron/ |
Oui |
| Kanban | kanban.db |
Oui |
| Logs | logs/ |
Non (volumineux) |
| Cache | cache/ |
Non |
Recommandation : sauvegardez ~/.hermes/ quotidiennement, en excluant logs/ et cache/. Chiffrez le .env separement ou utilisez un gestionnaire de secrets.
q-144: Comment restaurer Hermes Agent apres une panne ?
Procedure de restauration :
- Reinstaller Hermes Agent : suivez le guide d'installation standard
- Restaurer le repertoire :
tar -xzf hermes-backup-YYYYMMDD.tar.gz -C ~/ - Verifier la configuration :
hermes config check - Verifier les cles API :
hermes doctor - Redemarrer le gateway :
hermes gateway restart - Tester : envoyez un message de test via
hermes sendou une plateforme de messagerie
Si vous utilisez Docker, restaurez le volume ou le bind mount de ~/.hermes/.
q-145: Comment superviser le gateway avec systemd ou un gestionnaire de services ?
Le gateway s'installe comme service systemd :
hermes gateway installCela cree un service utilisateur (~/.config/systemd/user/hermes-gateway.service). Commandes de gestion :
systemctl --user status hermes-gateway # Statut
systemctl --user restart hermes-gateway # Redemarrer
systemctl --user stop hermes-gateway # Arreter
journalctl --user -u hermes-gateway -f # Logs en directPour une installation system-wide :
sudo hermes gateway install --system
sudo systemctl status hermes-gatewayLe service est configure avec Restart=on-failure et RestartSec=10 par defaut.
q-146: Comment consulter et filtrer les logs Hermes Agent ?
Les logs sont dans ~/.hermes/logs/ :
# Logs du gateway
tail -f ~/.hermes/logs/gateway.log
# Logs des sessions
ls ~/.hermes/logs/sessions/
# Filtrer les erreurs
grep -i error ~/.hermes/logs/gateway.log | tail -20
# Filtrer par cron
grep cron ~/.hermes/logs/gateway.log | tail -20
# Logs du dashboard
tail -f ~/.hermes/logs/dashboard.logLes logs beneficient de la redaction automatique des secrets (security.redact_secrets: true par defaut). Les cles API, tokens et mots de passe sont masques.
q-147: Comment dimensionner CPU, memoire et disque pour Hermes Agent ?
Hermes Agent lui-meme est leger. Les ressources dependent principalement du modele utilise :
| Ressource | Minimum | Recommande | Remarque |
|---|---|---|---|
| CPU | 1 coeur | 2 coeurs | Pour le gateway + crons + webhooks |
| RAM | 512 Mo | 1-2 Go | Hermes + Python + gateway |
| Disque | 1 Go | 5-10 Go | Sessions, logs, cache, skills |
| Bande passante | 1 Mbps | 10 Mbps | Appels API aux providers |
Facteurs qui augmentent les besoins :
- Plusieurs profils avec des skills volumineuses
- Sessions longues avec beaucoup d'outils (cache de contexte)
- Crons frequents generant des logs
- Gateway avec beaucoup d'utilisateurs simultanes
- Modele local (Ollama) : ajouter les ressources du modele
Le cout principal est celui du provider IA, pas de l'infrastructure Hermes.
q-148: Comment separer staging et production pour un agent public ?
Deux approches :
Approche 1 : Profils distincts (meme installation)
hermes profile create staging --clone
hermes profile create production --cloneConfigurez des cles API et des plateformes differentes pour chaque profil. Les crons, la memoire et les sessions sont isoles.
Approche 2 : Installations separees (recommandee)
# Installation production
HERMES_HOME=/opt/hermes-prod hermes gateway install --system
# Installation staging
HERMES_HOME=/opt/hermes-staging hermes gateway install --systemDeux installations completement independantes, avec des repertoires de donnees, des services systemd et des configurations distincts.
q-149: Comment documenter un rollback avant une mise a jour ?
Avant chaque mise a jour de Hermes Agent :
- Sauvegarder :
tar -czf pre-update-$(date +%Y%m%d-%H%M).tar.gz ~/.hermes/ - Noter la version actuelle :
hermes --version - Verifier la configuration :
hermes config check - Arreter le gateway :
systemctl --user stop hermes-gateway - Mettre a jour :
hermes update - Verifier :
hermes doctor - Redemarrer :
systemctl --user start hermes-gateway - Tester : envoyer un message de test
En cas de probleme, rollback :
systemctl --user stop hermes-gateway
tar -xzf pre-update-YYYYMMDD-HHMM.tar.gz -C ~/
hermes update --force # Reinstaller la version precedente si necessaire
systemctl --user start hermes-gatewayq-150: Comment verifier Hermes Agent de bout en bout apres un deploiement ?
Checklist de verification post-deploiement :
- Installation :
hermes --versionethermes doctor - Configuration :
hermes config check - Modele :
hermes chat -q "Reponds 'OK' si tu fonctionnes"(test one-shot) - Gateway :
hermes gateway status - Plateformes : envoyez un message depuis chaque plateforme configuree
- Crons :
hermes cron listethermes cron run <nom>pour un test - Webhooks :
curl http://localhost:8644/health - Dashboard :
curl http://localhost:8642/health - Logs :
tail -20 ~/.hermes/logs/gateway.log(verifier absence d'erreurs) - Sauvegarde : verifier que la sauvegarde automatique fonctionne
Sources
- Documentation officielle Hermes Agent (https://hermes-agent.nousresearch.com/docs/)
- Guide Docker (https://hermes-agent.nousresearch.com/docs/user-guide/docker)
- Guide de securite (https://hermes-agent.nousresearch.com/docs/user-guide/security)
- Guide Nix/NixOS Setup (https://hermes-agent.nousresearch.com/docs/getting-started/nix-setup)
- CLI commands reference (https://hermes-agent.nousresearch.com/docs/reference/cli-commands)
- Depot NousResearch/hermes-agent, commit b4f8c491
Liens internes proposes
Preuves et limites
Architecture, corpus officiel et observations publiques sont ingérés au build. Une validation humaine reste nécessaire pour les affirmations publiées.