Rechercher

Commence à saisir pour chercher.

    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 :

    Commande ou exempleNGINX
    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/Connection headers) 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/ :

    Commande ou exempleBASH
    # 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 :

    1. Reinstaller Hermes Agent : suivez le guide d'installation standard
    2. Restaurer le repertoire : tar -xzf hermes-backup-YYYYMMDD.tar.gz -C ~/
    3. Verifier la configuration : hermes config check
    4. Verifier les cles API : hermes doctor
    5. Redemarrer le gateway : hermes gateway restart
    6. Tester : envoyez un message de test via hermes send ou 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 :

    Commande ou exempleBASH
    hermes gateway install

    Cela cree un service utilisateur (~/.config/systemd/user/hermes-gateway.service). Commandes de gestion :

    Commande ou exempleBASH
    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 direct

    Pour une installation system-wide :

    Commande ou exempleBASH
    sudo hermes gateway install --system
    sudo systemctl status hermes-gateway

    Le 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/ :

    Commande ou exempleBASH
    # 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.log

    Les 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)

    Commande ou exempleBASH
    hermes profile create staging --clone
    hermes profile create production --clone

    Configurez des cles API et des plateformes differentes pour chaque profil. Les crons, la memoire et les sessions sont isoles.

    Approche 2 : Installations separees (recommandee)

    Commande ou exempleBASH
    # Installation production
    HERMES_HOME=/opt/hermes-prod hermes gateway install --system
    
    # Installation staging
    HERMES_HOME=/opt/hermes-staging hermes gateway install --system

    Deux 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 :

    1. Sauvegarder : tar -czf pre-update-$(date +%Y%m%d-%H%M).tar.gz ~/.hermes/
    2. Noter la version actuelle : hermes --version
    3. Verifier la configuration : hermes config check
    4. Arreter le gateway : systemctl --user stop hermes-gateway
    5. Mettre a jour : hermes update
    6. Verifier : hermes doctor
    7. Redemarrer : systemctl --user start hermes-gateway
    8. Tester : envoyer un message de test

    En cas de probleme, rollback :

    Commande ou exempleBASH
    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-gateway

    q-150: Comment verifier Hermes Agent de bout en bout apres un deploiement ?

    Checklist de verification post-deploiement :

    1. Installation : hermes --version et hermes doctor
    2. Configuration : hermes config check
    3. Modele : hermes chat -q "Reponds 'OK' si tu fonctionnes" (test one-shot)
    4. Gateway : hermes gateway status
    5. Plateformes : envoyez un message depuis chaque plateforme configuree
    6. Crons : hermes cron list et hermes cron run <nom> pour un test
    7. Webhooks : curl http://localhost:8644/health
    8. Dashboard : curl http://localhost:8642/health
    9. Logs : tail -20 ~/.hermes/logs/gateway.log (verifier absence d'erreurs)
    10. Sauvegarde : verifier que la sauvegarde automatique fonctionne

    Sources

    Liens internes proposes

    Sources structurées

    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.