Linux•21 septembre 2026• 113 vues

Installer Hermes Agent sur un VPS Linux : déploiement sécurisé et fonctionnement 24/7

Installer Hermes Agent sur un VPS Linux : déploiement sécurisé et fonctionnement 24/7

Hermes Agent est un agent d'intelligence artificielle open source développé par Nous Research. Contrairement à une simple interface de chat, il peut utiliser des outils, exécuter des commandes, conserver une mémoire, planifier des tâches et répondre depuis des plateformes comme Telegram ou Discord. Installé sur un VPS, il reste disponible en permanence, même lorsque votre ordinateur personnel est éteint.

Cette souplesse implique un niveau de risque supérieur à celui d'un chatbot classique. Un agent capable d'exécuter des commandes ne doit pas tourner en tant que root, accepter les messages de tout Internet ni conserver ses clés API dans un fichier lisible par tous. Ce guide propose donc une installation pensée pour un serveur, avec un compte Linux dédié, un script contrôlé avant exécution, un service systemd, un accès restreint, des sauvegardes et une procédure de mise à jour.

Ce guide a été vérifié le 17 septembre 2026 sur Debian et Ubuntu. Hermes Agent évolue rapidement. Prévisualisez toujours une mise à jour et relisez les notes officielles avant de l'appliquer sur une instance de production.

Ce guide concerne le projet Hermes Agent de Nous Research, distribué sous licence MIT. Il ne faut pas le confondre avec d'autres produits portant le nom Hermes.

Ce que vous allez mettre en place

À la fin de l'installation, vous aurez l'architecture suivante.

  • Hermes Agent s'exécute avec un utilisateur Linux non privilégié nommé hermes.
  • Les fichiers de configuration, les sessions et les secrets restent dans /home/hermes/.hermes/.
  • Le modèle d'IA est fourni par le service que vous choisissez, ou par un endpoint compatible que vous exploitez vous-même.
  • La passerelle Hermes fonctionne comme un service utilisateur systemd et redémarre au boot.
  • Seuls les comptes Telegram, Discord ou autres que vous avez autorisés peuvent dialoguer avec l'agent.
  • Aucun port d'administration Hermes n'est exposé publiquement par défaut.

Hermes Agent est gratuit et open source, mais l'usage d'un fournisseur de modèles peut être facturé. Le projet n'embarque pas de grand modèle de langage capable de fonctionner confortablement sur un petit VPS. La consommation et le traitement des requêtes dépendent donc du fournisseur choisi.

Prérequis et dimensionnement du VPS

La documentation d'installation officielle prend en charge Linux et demande essentiellement Git, curl et xz-utils. L'installateur se charge ensuite de son environnement Python, de Node.js et des autres composants nécessaires.

Pour suivre ce guide, prévoyez les éléments suivants.

  • Un VPS récent sous Debian ou Ubuntu, par exemple un VPS Linux OuiHeberg.
  • Un compte d'administration avec sudo.
  • Un accès SSH par clé.
  • Une sortie Internet HTTPS et une résolution DNS fonctionnelles.
  • Une clé API ou un abonnement auprès du fournisseur de modèle choisi.
  • Éventuellement un jeton Telegram, Discord ou d'une autre plateforme prise en charge.

Hermes ne publie pas de minimum matériel universel, car les besoins changent selon les outils activés. Les valeurs ci-dessous sont des recommandations d'exploitation, pas des exigences officielles.

UsagevCPUMémoireStockageRemarque
CLI et passerelle avec modèle distant24 Go25 Go NVMeBase raisonnable pour un usage personnel
Navigation, audio ou plusieurs sessions48 Go50 Go NVMePlus de marge pour Chromium et les traitements concurrents
Modèle exécuté localementVariableVariableVariableDépend entièrement du modèle, souvent avec GPU dédié

Un petit VPS convient lorsque le calcul du modèle est déporté vers une API. Il peut devenir insuffisant si l'agent lance un navigateur, traite des fichiers volumineux ou exécute plusieurs tâches simultanément. Surveillez la mémoire, l'espace disque et les processus après quelques jours d'utilisation réelle.

Notre page VPS Hermes Agent présente les offres adaptées à cet usage. Le VPS Linux 04G et ses 4 Go de RAM y sont conseillés comme point de départ.

Avant d'installer un agent autonome, appliquez également les bases de sécurité du serveur (mises à jour, SSH par clé, pare-feu, sauvegardes et journalisation). Notre checklist de sécurisation d'un VPS Linux détaille ces prérequis.

1. Mettre le système à jour

Connectez-vous au VPS avec votre compte d'administration, puis mettez à jour l'index des paquets et les paquets déjà installés.

sudo apt update
sudo apt upgrade

Installez ensuite les prérequis annoncés par le projet.

sudo apt install ca-certificates curl git xz-utils

Contrôlez que les commandes sont disponibles.

git --version
curl --version
xz --version

Si une mise à jour du noyau ou d'un composant système important demande un redémarrage, effectuez-le avant de poursuivre. Vous éviterez ainsi de diagnostiquer Hermes alors que le serveur utilise encore des bibliothèques anciennes.

2. Créer un compte Linux dédié

N'installez pas Hermes dans /root et ne faites pas fonctionner sa passerelle en tant que superutilisateur. La checklist de production officielle recommande explicitement un compte non-root.

Créez un utilisateur nommé hermes.

sudo adduser --disabled-password --gecos "" hermes

Ne l'ajoutez pas au groupe sudo. Ne l'ajoutez pas non plus au groupe docker sans avoir analysé les conséquences, car un accès direct au socket Docker permet généralement d'obtenir des privilèges équivalents à root sur l'hôte.

Pour administrer ce compte par SSH, installez uniquement la clé publique voulue. Si le fichier ~/.ssh/authorized_keys de votre compte actuel contient bien la clé qui doit aussi accéder au compte hermes, vous pouvez le copier ainsi.

sudo install -d -m 0700 -o hermes -g hermes /home/hermes/.ssh
sudo install -m 0600 -o hermes -g hermes \
  ~/.ssh/authorized_keys /home/hermes/.ssh/authorized_keys

Vérifiez les permissions.

sudo ls -ld /home/hermes /home/hermes/.ssh
sudo ls -l /home/hermes/.ssh/authorized_keys

Activez ensuite le maintien des services utilisateur après déconnexion. Cette option permet au service systemd d'Hermes de démarrer au boot sans laisser une session SSH ouverte.

sudo loginctl enable-linger hermes

Contrôlez le résultat.

loginctl show-user hermes -p Linger

La sortie attendue est Linger=yes.

Ouvrez maintenant une nouvelle connexion SSH directement avec ce compte.

ssh hermes@ADRESSE_IP_DU_VPS

Sauf mention contraire, toutes les commandes qui suivent s'exécutent depuis cette session et sans sudo.

3. Télécharger et examiner l'installateur officiel

Hermes publie une commande d'installation rapide.

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

Elle est pratique, mais transmet immédiatement le contenu reçu à l'interpréteur. Sur un serveur, mieux vaut séparer le téléchargement de l'exécution afin de pouvoir lire le script et conserver l'empreinte exacte du fichier utilisé.

Téléchargez l'installateur depuis le domaine officiel.

curl --proto '=https' --tlsv1.2 -fsSLo /tmp/hermes-install.sh \
  https://hermes-agent.nousresearch.com/install.sh

Affichez son empreinte SHA-256 et lisez son contenu.

sha256sum /tmp/hermes-install.sh
less /tmp/hermes-install.sh

L'empreinte sert à identifier le fichier que vous avez examiné et à documenter votre déploiement. Elle ne constitue pas, à elle seule, une signature de l'éditeur. Vérifiez au minimum que le script provient bien du domaine officiel, qu'il ne contient pas de destination inattendue et que les chemins d'installation correspondent à la documentation.

Installation minimale pour un VPS sans navigateur

Si l'agent n'a pas besoin de piloter Chromium ni d'utiliser les fonctions de contrôle visuel, réduisez la surface logicielle installée.

bash /tmp/hermes-install.sh --skip-browser --skip-computer-use

Cette option convient à un bot qui utilise principalement un modèle distant, des API et des outils textuels. Les composants concernés pourront être ajoutés plus tard.

Installation avec automatisation du navigateur

Pour utiliser les outils de navigation locale, exécutez simplement le script sans ces options.

bash /tmp/hermes-install.sh

L'installation des bibliothèques système de Chromium nécessite des privilèges administrateur. Comme le compte hermes n'a volontairement pas sudo, l'installateur installe ce qu'il peut dans son espace utilisateur puis affiche la commande exacte qu'un administrateur doit exécuter. Lancez-la depuis votre compte d'administration. La documentation officielle cite aussi sudo npx playwright install-deps chromium pour Debian et Ubuntu, mais il vaut mieux reprendre la commande affichée par la version réellement installée.

L'installateur place normalement les éléments aux emplacements suivants.

ÉlémentEmplacement par utilisateur
Code du projet~/.hermes/hermes-agent/
Commande hermes~/.local/bin/hermes
Configuration et données~/.hermes/

Ce mode isole l'installation dans /home/hermes. Une installation lancée avec sudo utiliserait une autre disposition et risquerait surtout de placer les secrets dans /root/.hermes, ce que nous évitons ici.

4. Vérifier l'installation

Rechargez l'environnement du shell.

source ~/.bashrc

Vérifiez ensuite le chemin de la commande, la version et l'état général.

command -v hermes
hermes --version
hermes doctor

Le premier résultat doit normalement pointer vers /home/hermes/.local/bin/hermes. La commande hermes doctor contrôle notamment l'environnement, la configuration et les dépendances.

Si hermes reste introuvable, ajoutez le répertoire utilisateur au PATH, puis rechargez le shell.

echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

N'exécutez pas directement le fichier source ~/.hermes/hermes-agent/hermes avec le Python système. La documentation signale que cela contourne l'environnement virtuel et peut provoquer des erreurs de modules absents.

5. Configurer le fournisseur de modèle

Hermes orchestre un modèle, mais le VPS ne fournit pas le service d'inférence. Lancez l'assistant de sélection.

hermes model

Vous pouvez aussi passer par l'assistant global.

hermes setup

Le projet prend en charge plusieurs fournisseurs et des endpoints personnalisés. Choisissez selon vos besoins de confidentialité, de coût, de localisation des données et de compatibilité des outils. Avec un fournisseur externe, les requêtes envoyées au modèle quittent votre VPS. La FAQ officielle indique qu'Hermes ne collecte pas de télémétrie et conserve localement conversations, mémoire et compétences, mais les appels sont tout de même transmis au fournisseur que vous configurez.

Saisissez les clés dans l'assistant interactif. Évitez de placer un secret directement dans une commande, car il pourrait rester dans l'historique du shell, les journaux d'un outil d'automatisation ou la liste des processus.

Protégez ensuite les fichiers sensibles éventuellement créés.

chmod 700 ~/.hermes
find ~/.hermes -maxdepth 1 -type f \
  \( -name '.env' -o -name 'auth.json' \) \
  -exec chmod 600 {} +

Les secrets appartiennent au compte hermes et ne doivent jamais être copiés dans un dépôt Git. Pour une exploitation en entreprise, la documentation des secrets décrit aussi le chargement depuis des gestionnaires externes comme 1Password ou Bitwarden Secrets Manager.

Testez enfin une requête simple.

hermes chat -q "Réponds uniquement par : installation opérationnelle"

Si l'appel échoue, vérifiez la clé, le nom du modèle, les crédits du compte fournisseur, la date du serveur et la connectivité HTTPS avant de poursuivre.

6. Comprendre les données stockées

Le répertoire ~/.hermes/ est l'élément à protéger et à sauvegarder en priorité. Selon les fonctions utilisées, il contient notamment les fichiers suivants.

CheminRôleSensibilité
config.yamlConfiguration non secrète de l'agent et de ses outilsMoyenne
.envClés API, jetons et paramètres secretsCritique
auth.jsonInformations d'authentificationCritique
state.dbÉtat persistant de la passerelle et des sessionsÉlevée
SOUL.mdInstructions et identité de l'agentMoyenne
memories/Mémoire conservée par l'agentÉlevée
sessions/Historique et contexte des sessionsÉlevée
skills/Compétences ajoutéesVariable
cron/Tâches planifiéesÉlevée
logs/Journaux de fonctionnementVariable

Un fichier sans clé API n'est pas pour autant public. Les conversations, mémoires et journaux peuvent contenir des données métier, des chemins internes ou des fragments de documents. Limitez les accès au compte hermes et chiffrez les sauvegardes hors serveur.

7. Durcir la configuration avant le fonctionnement 24/7

Ouvrez l'éditeur de configuration intégré.

hermes config edit

Les réglages suivants rendent explicite une politique prudente.

approvals:
  mode: smart
  timeout: 300
  cron_mode: deny
  single_query_mode: deny
  unattended_mode: deny

security:
  allow_private_urls: false

Validez ensuite la configuration.

hermes config check

Le mode smart analyse les commandes considérées comme dangereuses et demande une confirmation lorsqu'une décision humaine est nécessaire. Le mode off, aussi présenté comme mode --yolo, supprime ces demandes. Il ne convient pas à un agent exposé par messagerie sur un VPS.

Les trois valeurs deny empêchent une tâche planifiée, une requête unique ou une API sans opérateur présent d'approuver automatiquement une commande dangereuse. Le réglage allow_private_urls: false, valeur par défaut, conserve la protection contre les requêtes vers les plages privées, le loopback et les adresses de métadonnées cloud. Ne l'activez que si l'accès au réseau interne est indispensable et si vous acceptez ce changement de frontière de confiance.

Ces mécanismes réduisent le risque, mais ne transforment pas l'exécution locale en bac à sable. Un prompt malveillant, un outil compromis ou une erreur du modèle peut encore modifier tous les fichiers accessibles à l'utilisateur hermes.

Isoler les commandes avec un conteneur

Pour une passerelle de production autorisée à exécuter du code, la documentation recommande un backend isolé, notamment Docker.

terminal:
  backend: docker
  docker_forward_env: []
  container_cpu: 1
  container_memory: 2048
  container_disk: 10240
  container_persistent: false

Ces limites sont un exemple à adapter à la mémoire et au stockage du VPS. Une liste docker_forward_env vide évite de transmettre les variables du serveur aux commandes lancées dans le conteneur.

Cette option suppose une installation Docker correctement durcie. Elle ne doit pas conduire à donner aveuglément au compte hermes un accès illimité au socket Docker. Pour comprendre le modèle de permissions, consultez Installer Docker sur un VPS Linux et notre guide Docker Compose sur un VPS Linux. Dans un environnement sensible, le backend SSH vers une machine de travail séparée isole encore mieux la passerelle et les secrets de messagerie des commandes produites par le modèle.

8. Relier Telegram, Discord ou une autre messagerie

Hermes propose une passerelle unique pour plusieurs plateformes. Lancez son assistant.

hermes gateway setup

L'assistant demande les identifiants propres à la plateforme, par exemple le jeton d'un bot Telegram ou Discord. Créez un bot dédié, accordez uniquement les permissions nécessaires et ne réutilisez pas un jeton déjà employé par une autre application.

Restreindre les personnes autorisées

Un jeton de bot valide ne suffit pas. Vous devez aussi décider qui peut envoyer des instructions à l'agent. Hermes refuse les utilisateurs inconnus tant qu'aucune liste d'autorisation n'est définie et que l'accès global n'est pas activé. Conservez ce comportement fermé par défaut.

Deux méthodes sont possibles.

  1. Utiliser l'appairage par code, puis approuver uniquement la demande attendue.
  2. Déclarer explicitement les identifiants autorisés pour chaque plateforme.

Pour consulter les appairages en attente, utilisez la commande suivante.

hermes pairing list

Pour approuver un code Telegram reçu par le canal prévu, indiquez-le ainsi.

hermes pairing approve telegram CODE_RECU

Si vous préférez une liste explicite, ajoutez uniquement les identifiants nécessaires dans ~/.hermes/.env.

TELEGRAM_ALLOWED_USERS=123456789
DISCORD_ALLOWED_USERS=111222333444555666

Ne mettez pas GATEWAY_ALLOW_ALL_USERS=true en production. Cette option permettrait à tout utilisateur capable de joindre le bot de solliciter l'agent, de consommer votre budget de modèle et potentiellement de déclencher ses outils.

Après une modification de .env, contrôlez à nouveau ses permissions.

chmod 600 ~/.hermes/.env

9. Installer la passerelle comme service systemd

Installez le service utilisateur fourni par Hermes.

hermes gateway install
hermes gateway start
hermes gateway status

Comme loginctl enable-linger hermes a été exécuté précédemment, le service continue après la fermeture de la session SSH et redémarre avec le VPS. Vérifiez son activation.

systemctl --user is-enabled hermes-gateway
systemctl --user is-active hermes-gateway

Consultez les dernières entrées du journal.

journalctl --user -u hermes-gateway -n 100 --no-pager

Pour suivre les événements en direct, ajoutez l'option -f.

journalctl --user -u hermes-gateway -f

La documentation propose aussi un service système installé avec sudo hermes gateway install --system. Sur un VPS mono-utilisateur, le service utilisateur avec lingering est généralement plus simple et conserve clairement l'identité non privilégiée. N'installez pas en même temps une unité utilisateur et une unité système pour le même profil, sous peine de lancer deux passerelles concurrentes.

Ajouter un watchdog facultatif

Systemd peut redémarrer la passerelle si sa boucle d'événements se bloque. Ajoutez ce réglage dans ~/.hermes/config.yaml.

gateway:
  systemd_watchdog_seconds: 120

Régénérez ensuite l'unité et redémarrez-la.

hermes gateway install --force
hermes gateway stop
hermes gateway start
hermes gateway status

Ce watchdog détecte un processus bloqué. Il ne remplace pas la surveillance de la connectivité avec Telegram, Discord ou le fournisseur de modèle.

10. Faut-il ouvrir un port dans le pare-feu ?

Pour un bot Telegram ou Discord classique, la passerelle établit elle-même les connexions sortantes nécessaires. Vous n'avez normalement aucun port Hermes à publier sur Internet. Le pare-feu peut donc continuer à n'autoriser que les services voulus, en particulier SSH et les éventuels services web déjà administrés.

N'ouvrez pas un port simplement parce qu'il apparaît dans un exemple Docker ou dans une documentation d'API. Les interfaces serveur et tableau de bord augmentent la surface d'attaque. Si vous devez utiliser une interface web, suivez ces règles.

  • Liez-la à 127.0.0.1 plutôt qu'à 0.0.0.0.
  • Accédez-y avec un tunnel SSH ou un VPN.
  • Ou placez-la derrière un reverse proxy HTTPS avec une authentification forte.
  • Ne considérez jamais un numéro de port secret comme un contrôle d'accès.

Un tunnel SSH local suit ce principe.

ssh -L 9119:127.0.0.1:9119 hermes@ADRESSE_IP_DU_VPS

Cette commande ne démarre pas le tableau de bord. Elle rend seulement un service déjà lié au loopback accessible depuis votre machine locale. Si vous publiez une application par Nginx ou Apache, protégez également le transport avec TLS en suivant notre guide Certbot et Let's Encrypt sur un VPS.

11. Sauvegarder Hermes sans oublier les secrets

Une sauvegarde du VPS est utile, mais une exportation applicative facilite aussi une restauration sur une autre machine. Hermes fournit une commande dédiée.

hermes backup

D'après la procédure de migration officielle, cette commande crée dans le dossier personnel une archive hermes-backup-<timestamp>.zip contenant l'ensemble de ~/.hermes/, notamment la configuration, les clés API, les mémoires, les sessions, les compétences et les profils.

Cette archive est donc un secret critique. Après sa création, suivez ces étapes.

  1. Vérifiez qu'elle existe et que sa taille est cohérente.
  2. Testez son intégrité avec unzip -t.
  3. Transférez-la vers un stockage hors du VPS.
  4. Chiffrez-la au repos.
  5. Appliquez une politique de rétention.
  6. Supprimez la copie locale lorsqu'elle n'est plus nécessaire.

Voici un exemple de contrôle.

ls -lh ~/hermes-backup-*.zip
unzip -t ~/hermes-backup-AAAA-MM-JJ_HH-MM-SS.zip

Remplacez le nom par celui réellement généré. Ne mettez pas de joker dans une commande de restauration si plusieurs archives sont présentes.

La restauration s'effectue sur une installation Hermes existante.

hermes import ~/hermes-backup-AAAA-MM-JJ_HH-MM-SS.zip
hermes setup
hermes doctor

Testez régulièrement cette procédure sur un VPS temporaire ou un environnement isolé. Une sauvegarde non testée reste une hypothèse.

hermes profile export n'est pas équivalent à hermes backup. L'export d'un profil exclut volontairement les identifiants, alors que la sauvegarde complète les inclut. Le premier sert à partager un profil assaini, le second à repartir après un incident.

12. Mettre Hermes à jour proprement

Hermes évolue rapidement. Évitez pourtant une mise à jour automatique et aveugle sur une passerelle qui exécute des outils. Prévisualisez d'abord la disponibilité et le plan.

hermes update --check
hermes update --plan

La première commande vérifie si une mise à jour existe sans modifier les fichiers ni redémarrer la passerelle. La seconde inventorie l'installation et les services qui seraient concernés.

Pour un déploiement important, demandez une sauvegarde complète avant la mise à jour.

hermes update --backup

La documentation de mise à jour indique que cette opération met à jour le code et les dépendances, traite les migrations de configuration et redémarre les passerelles détectées. Les journaux sont conservés dans ~/.hermes/logs/update.log, avec des reçus détaillés dans ~/.hermes/logs/update_receipts/.

Contrôlez ensuite l'état de l'installation.

cd ~/.hermes/hermes-agent
git status --short
hermes doctor
hermes --version
hermes gateway status

Une sortie vide de git status --short indique que l'arbre de travail n'a pas de modification locale. Si des fichiers apparaissent alors que vous n'avez jamais modifié le code, examinez-les avant toute autre mise à jour.

Pour imposer une sauvegarde complète à chaque mise à jour, ajoutez ce réglage.

updates:
  pre_update_backup: full

Gardez tout de même une copie externe. Une archive laissée uniquement sur le VPS ne protège ni contre la perte du serveur ni contre la compromission du compte.

13. Surveiller et diagnostiquer l'installation

Gardez sous la main cette courte séquence de diagnostic.

hermes doctor
hermes config check
hermes gateway status
journalctl --user -u hermes-gateway -n 200 --no-pager
df -h
free -h

Elle couvre la majorité des incidents, qu'il s'agisse d'une configuration invalide, d'un service arrêté, d'une erreur de plateforme, d'un disque plein ou d'un manque de mémoire.

La commande hermes est introuvable

Rechargez ~/.bashrc et contrôlez le chemin.

source ~/.bashrc
printf '%s\n' "$PATH"
ls -l ~/.local/bin/hermes

La passerelle s'arrête après la déconnexion SSH

Vérifiez le lingering depuis le compte administrateur.

loginctl show-user hermes -p Linger

Réactivez-le si nécessaire.

sudo loginctl enable-linger hermes

Le bot répond aux mauvaises personnes ou à personne

Contrôlez les listes d'utilisateurs et les appairages.

hermes pairing list
grep -E '^(TELEGRAM|DISCORD|GATEWAY).*ALLOWED_USERS' ~/.hermes/.env

La commande grep n'affiche ici que les identifiants autorisés, pas les lignes de jetons. Relisez malgré tout votre terminal avant de copier sa sortie dans un ticket d'assistance.

La configuration ne correspond plus après une mise à jour

Utilisez les outils de validation et de migration intégrés.

hermes config check
hermes config migrate

Lisez les changements proposés avant de les accepter, puis relancez hermes doctor.

L'appel au modèle échoue

Les causes fréquentes sont une clé invalide, un modèle non autorisé, un solde épuisé, un endpoint erroné ou un problème DNS. Testez la résolution et HTTPS sans afficher la clé.

getent hosts hermes-agent.nousresearch.com
curl -I https://hermes-agent.nousresearch.com/

Reconfigurez ensuite le fournisseur avec hermes model plutôt que d'éditer un secret à l'aveugle.

Le navigateur ne démarre pas

Exécutez hermes doctor et reprenez la commande de dépendances système affichée par l'installateur. Les bibliothèques Chromium doivent être installées par un administrateur, alors que le navigateur et le profil restent associés au compte hermes. N'accordez pas sudo au compte de service uniquement pour résoudre ce problème.

14. Checklist avant la mise en production

Avant de laisser l'agent fonctionner en permanence, confirmez chaque point.

  • Hermes fonctionne avec l'utilisateur non privilégié hermes, jamais avec root.
  • Le compte hermes n'appartient ni au groupe sudo ni, sans justification, au groupe docker.
  • Le script d'installation a été téléchargé depuis le domaine officiel et examiné avant exécution.
  • hermes doctor ne remonte pas d'erreur non comprise.
  • Les fichiers .env et auth.json sont limités à leur propriétaire.
  • Les comptes de messagerie sont contrôlés par appairage ou liste explicite.
  • GATEWAY_ALLOW_ALL_USERS n'est pas activé.
  • Le mode d'approbation n'est pas réglé sur off.
  • Les tâches sans opérateur refusent les commandes dangereuses.
  • Les URL privées restent bloquées sauf besoin documenté.
  • Aucun tableau de bord ni port API n'est exposé directement à Internet.
  • Les sauvegardes complètes sont chiffrées, externalisées et testées.
  • Les mises à jour sont prévisualisées, sauvegardées et validées.
  • Les journaux, l'espace disque et la mémoire sont surveillés.

Conclusion

Installer Hermes Agent sur un VPS ne se résume pas à exécuter une ligne curl | bash. Le vrai travail consiste à définir une frontière de confiance durable, avec un utilisateur Linux dédié, un accès de messagerie limité, des secrets protégés, des commandes isolées, aucun port public inutile et des sauvegardes restaurables.

Le chemin recommandé est volontairement sobre. Commencez sans navigateur ni interface publique, validez le fonctionnement du modèle en ligne de commande, puis ajoutez une seule intégration à la fois. Cette progression facilite le diagnostic et évite d'accorder des permissions avant d'en avoir réellement besoin.

Sources et documentation officielle