Auto-heberger Hermes Agent sur un VPS

14 min de lecture·Matthieu·hermes-agentai-agentself-hostingdockertelegramsystemd|

Deployez Hermes Agent de Nous Research sur votre propre VPS avec sandboxing Docker, messagerie Telegram et persistance systemd. Chaque commande testee sur un serveur reel.

Hermes Agent tourne en local sur la plupart des machines de dev. Mais local signifie hors ligne quand votre laptop se met en veille, pas d'acces depuis le telephone, et pas d'espace de travail persistant. Le deplacer sur un VPS resout ces trois problemes : l'agent tourne 24h/24, vous lui ecrivez depuis Telegram, et il conserve sa memoire et ses competences entre les sessions.

Ce guide vous accompagne dans le deploiement de Hermes Agent sur un VPS depuis zero. Vous allez l'installer, connecter un fournisseur LLM, isoler les commandes terminal dans Docker, relier Telegram, et faire tourner le tout en service systemd qui survit aux redemarrages. Chaque commande a ete testee sur un VPS Ubuntu 24.04 avec 4 vCPU et 8 Go de RAM.

Auto-heberger des agents IA sur un VPS

Qu'est-ce que Hermes Agent et pourquoi l'auto-heberger ?

Hermes Agent est un agent IA open-source cree par Nous Research. Il se connecte a des fournisseurs LLM (OpenRouter, Anthropic, Ollama et d'autres), execute des commandes terminal, navigue sur le web et retient ce qu'il apprend entre les sessions. Il stocke des memoires persistantes, cree des competences reutilisables a partir des taches accomplies, et supporte les passerelles de messagerie pour communiquer via Telegram, Discord, Slack, WhatsApp ou Signal.

L'auto-hebergement signifie que vos prompts et vos donnees restent sur votre serveur. Aucune plateforme d'agents tierce ne voit vos conversations. L'agent tourne en continu, accumule du contexte au fil du temps, et ne coute que l'hebergement VPS plus les appels API LLM que vous effectuez. Sur un VPS a 5-10 $/mois avec OpenRouter, la plupart des developpeurs depensent moins de 20 $/mois au total.

De quoi Hermes Agent a-t-il besoin pour tourner sur un VPS ?

Hermes Agent necessite un serveur Linux avec au moins 2 Go de RAM, 10 Go d'espace disque libre et Git installe. Docker est requis si vous voulez une execution terminal isolee (et vous le voulez). L'installeur gere Python 3.11+ et Node.js automatiquement.

Prerequis Minimum Recommande
OS Ubuntu 22.04 / Debian 12 Ubuntu 24.04
RAM 2 Go 4 Go+
Disque 10 Go libres 20 Go+ (images Docker)
CPU 1 vCPU 2+ vCPU
Prerequis Git Git, Docker
Reseau HTTPS sortant HTTPS sortant

L'agent en lui-meme est leger. La majeure partie de la RAM est consommee par les conteneurs Docker lors de l'execution des commandes. Si vous prevoyez plusieurs sessions simultanees via la passerelle de messagerie, visez 4 Go ou plus.

Prerequis

Avant d'installer Hermes Agent, configurez un utilisateur non-root et un pare-feu de base. Si vous avez deja un VPS securise, passez directement a la section installation.

Creer un utilisateur dedie

Connectez-vous en SSH sur votre serveur en root et creez un utilisateur pour Hermes :

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

Donnez a cet utilisateur le sudo sans mot de passe (necessaire pour Docker et la gestion des services) :

echo "hermes ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/hermes
chmod 440 /etc/sudoers.d/hermes

Copiez votre cle SSH pour pouvoir vous connecter avec cet utilisateur :

mkdir -p /home/hermes/.ssh
cp ~/.ssh/authorized_keys /home/hermes/.ssh/
chown -R hermes:hermes /home/hermes/.ssh
chmod 700 /home/hermes/.ssh
chmod 600 /home/hermes/.ssh/authorized_keys

A partir de maintenant, travaillez en tant qu'utilisateur hermes :

su - hermes

Installer Docker

Hermes Agent utilise Docker pour isoler les commandes terminal. Installez-le depuis le depot officiel Docker :

sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin

Ajoutez l'utilisateur hermes au groupe docker pour lancer des conteneurs sans sudo :

sudo usermod -aG docker hermes
newgrp docker

Verifiez que Docker fonctionne :

docker run --rm hello-world

Vous devriez voir « Hello from Docker! » dans la sortie. Cela confirme que Docker peut telecharger des images et lancer des conteneurs.

Configurer le pare-feu

Installez UFW et configurez-le pour n'autoriser que SSH et bloquer tout le reste par defaut :

sudo apt-get install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw --force enable

Verifiez les regles :

sudo ufw status verbose

La sortie devrait afficher SSH autorise et tout autre trafic entrant refuse. La passerelle Hermes etablit des connexions sortantes vers l'API Telegram, donc aucun port entrant n'a besoin d'etre ouvert pour la messagerie.

Comment installer Hermes Agent sur Ubuntu ?

Hermes Agent s'installe avec une seule commande qui gere Python, Node.js et toutes les dependances. Executez-la en tant qu'utilisateur hermes, pas en root.

D'abord, verifiez le script d'installation avant de le piper vers bash. Telechargez-le, examinez-le, puis executez-le :

curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh -o /tmp/hermes-install.sh
less /tmp/hermes-install.sh

Lisez le script. Il installe Python 3.11+ via uv, Node.js et la CLI hermes. Quand vous etes satisfait :

bash /tmp/hermes-install.sh

Rechargez votre shell pour rendre la commande hermes disponible :

source ~/.bashrc

Verifiez l'installation :

hermes --version

Vous devriez voir la version et les infos d'environnement :

Hermes Agent v0.4.0 (2026.3.18)
Project: /home/hermes/.hermes/hermes-agent
Python: 3.11.15
...

Lancez l'outil de diagnostic pour verifier les dependances manquantes :

hermes doctor

Cherchez les coches vertes dans la sortie. Les avertissements sur des cles API non configurees (OpenRouter, Browserbase, etc.) sont normaux a ce stade. Vous configurerez votre fournisseur LLM ensuite. Les elements en rouge concernant Python, Git ou Docker doivent etre corriges avant de continuer.

Comment configurer le fournisseur LLM ?

Hermes Agent a besoin d'un fournisseur LLM pour fonctionner. Il n'inclut pas de modele. Vous le connectez a l'API d'un fournisseur et payez au token. OpenRouter donne acces a plus de 200 modeles via une seule cle API et c'est le moyen le plus rapide pour demarrer.

Option 1 : OpenRouter (recommande pour demarrer)

Creez un compte sur openrouter.ai et generez une cle API.

L'installeur a cree ~/.hermes/.env avec un template complet. D'abord, verrouillez ses permissions :

chmod 600 ~/.hermes/.env

Ouvrez le fichier et renseignez votre cle API sur la ligne OPENROUTER_API_KEY= :

nano ~/.hermes/.env

Trouvez la ligne OPENROUTER_API_KEY= et ajoutez votre cle apres le signe =. Sauvegardez et quittez (Ctrl+X, puis Y, puis Enter).

Definissez le modele par defaut :

hermes config set model.provider openrouter
hermes config set model.default anthropic/claude-sonnet-4

Verifiez que le fichier n'est pas lisible par les autres utilisateurs :

ls -la ~/.hermes/.env

Les permissions devraient afficher -rw------- (600). Seul l'utilisateur hermes peut lire ce fichier.

Option 2 : Endpoint compatible OpenAI personnalise

Si vous faites tourner votre propre serveur d'inference (Ollama, vLLM, llama.cpp) ou utilisez un autre fournisseur :

echo 'OPENAI_BASE_URL=http://localhost:11434/v1' >> ~/.hermes/.env
echo 'OPENAI_API_KEY=ollama' >> ~/.hermes/.env
echo 'LLM_MODEL=llama3.1:70b' >> ~/.hermes/.env

Comparaison des fournisseurs LLM

Fournisseur Variable d'environnement Cout Notes
OpenRouter OPENROUTER_API_KEY Au token, varie selon le modele 200+ modeles, une seule cle
Anthropic ANTHROPIC_API_KEY Au token Acces direct a Claude
Ollama (local) OPENAI_BASE_URL + OPENAI_API_KEY Gratuit (auto-heberge) Necessite un VPS GPU pour de bonnes performances
vLLM OPENAI_BASE_URL + OPENAI_API_KEY Gratuit (auto-heberge) GPU requis

Testez que la connexion LLM fonctionne :

hermes -m "What is 2+2? Reply with just the number."

Si vous recevez une reponse, le fournisseur est correctement configure. Si vous voyez une erreur d'authentification, verifiez votre cle API dans ~/.hermes/.env.

Comment isoler Hermes Agent avec Docker ?

Par defaut, Hermes Agent execute les commandes terminal directement sur l'hote. Sur un VPS, c'est un risque de securite. Si le LLM genere une commande destructrice, elle s'execute sur votre vrai serveur. L'isolation Docker enferme toute execution de commande dans un conteneur.

Definissez Docker comme backend terminal :

hermes config set terminal.backend docker

Configurez l'image Docker et les limites de ressources dans ~/.hermes/config.yaml :

hermes config set terminal.docker_image "nikolaik/python-nodejs:python3.11-nodejs20"
hermes config set terminal.container_cpu 1
hermes config set terminal.container_memory 2048
hermes config set terminal.container_persistent true

Ce que font ces parametres :

  • docker_image : L'image de base pour le sandbox. Celle-ci inclut Python et Node.js, couvrant la plupart des taches de developpement.
  • container_cpu : Limite le conteneur a 1 coeur CPU. Empeche un processus emballe de priver votre VPS de ressources.
  • container_memory : Limite de 2048 Mo de RAM pour le conteneur. Augmentez si vous travaillez avec de gros jeux de donnees.
  • container_persistent : Garde le conteneur entre les commandes. Execution plus rapide car le demarrage du conteneur est evite a chaque fois.

Verifiez que le backend est defini :

hermes config

Dans la section Terminal, vous devriez voir Backend: docker.

Comparaison des backends terminal

Backend Securite Vitesse Cas d'usage
local Aucune. Commandes executees sur l'hote Le plus rapide Dev local uniquement. Jamais sur un VPS
docker Isolation par conteneur Leger surcout au demarrage Deploiements VPS (recommande)
ssh Isolation reseau Latence reseau Executer sur un autre serveur

Configurer le mode d'approbation

Hermes Agent dispose d'un systeme d'approbation integre qui demande confirmation avant d'executer des commandes potentiellement dangereuses. Sur un serveur, gardez-le active :

hermes config set approval_mode ask

Les trois modes :

  • ask : Demande confirmation avant toute commande qui modifie des fichiers, installe des paquets ou touche au reseau. Utilisez celui-ci.
  • smart : Un modele IA evalue le risque et ne demande confirmation que pour les commandes reellement dangereuses. Plus rapide, mais depend du jugement de l'IA.
  • off : Aucune verification. Chaque commande s'execute immediatement. Ne pas utiliser sur un serveur.

Comment connecter Hermes Agent a Telegram ?

La passerelle de messagerie vous permet de discuter avec Hermes depuis votre telephone. Telegram est la configuration la plus courante. La passerelle etablit des connexions sortantes vers l'API Telegram, donc vous n'avez pas besoin d'ouvrir de ports entrants sur votre pare-feu.

Etape 1 : Creer un bot Telegram

Ouvrez Telegram et envoyez un message a @BotFather. Envoyez ces commandes :

  1. /newbot
  2. Entrez un nom pour votre bot (ex : « My Hermes Agent »)
  3. Entrez un nom d'utilisateur (doit finir par bot, ex : myhermes_agent_bot)

BotFather repond avec un token de bot. Il ressemble a 7123456789:AAHx.... Copiez-le.

Etape 2 : Obtenir votre identifiant utilisateur Telegram

Envoyez un message a @userinfobot sur Telegram. Il repond avec votre identifiant utilisateur numerique. Copiez ce nombre.

Etape 3 : Configurer la passerelle

Ajoutez le token du bot et votre identifiant utilisateur au fichier d'environnement :

echo 'TELEGRAM_BOT_TOKEN=7123456789:AAHxYourTokenHere' >> ~/.hermes/.env
echo 'TELEGRAM_ALLOWED_USERS=your_numeric_user_id' >> ~/.hermes/.env

La variable TELEGRAM_ALLOWED_USERS est un controle de securite. Seuls les identifiants utilisateurs listes ici peuvent interagir avec votre bot. Sans elle, n'importe qui trouvant votre bot peut lui envoyer des commandes. Separez les identifiants multiples par des virgules.

Etape 4 : Tester la passerelle

Demarrez la passerelle au premier plan pour verifier la connexion :

hermes gateway

Envoyez un message a votre bot dans Telegram. Vous devriez voir le message apparaitre dans le terminal et une reponse renvoyee. Appuyez sur Ctrl+C pour arreter la passerelle une fois que vous avez confirme que ca fonctionne.

Si le bot ne repond pas, verifiez :

  • Le token du bot est correct dans ~/.hermes/.env
  • Votre identifiant utilisateur est dans TELEGRAM_ALLOWED_USERS
  • Le VPS peut atteindre api.telegram.org sur le port 443 (HTTPS sortant)

Les autres plateformes supportees incluent Discord, Slack, WhatsApp, Signal et Email. Lancez hermes gateway setup pour un assistant interactif qui configure n'importe laquelle d'entre elles.

Comment faire tourner Hermes Agent en service systemd ?

Executer hermes gateway dans une session terminal signifie qu'il s'arrete quand vous vous deconnectez. Un service utilisateur systemd maintient la passerelle en fonctionnement apres la deconnexion et la redemarre automatiquement en cas de crash ou de redemarrage du serveur.

Installer le service

Hermes fournit une commande integree pour installer la passerelle en tant que service utilisateur systemd :

hermes gateway install

Cela cree un fichier de service a ~/.config/systemd/user/hermes-gateway.service et active le lingering automatiquement. Le lingering maintient les services utilisateur en fonctionnement apres votre deconnexion SSH. Sans lui, systemd tuerait la passerelle a la fin de votre session.

Demarrez le service et activez-le au demarrage :

systemctl --user enable --now hermes-gateway

enable le fait demarrer au boot. Le flag --now le demarre immediatement. Utilisez toujours les deux ensemble.

Verifiez que le service tourne :

systemctl --user status hermes-gateway

Cherchez Active: active (running) dans la sortie. S'il indique failed, consultez les logs.

Consulter les logs

Affichez les logs de la passerelle en temps reel :

journalctl --user -u hermes-gateway -f

Appuyez sur Ctrl+C pour arreter le suivi. Les logs de la passerelle affichent chaque message entrant, appel LLM et execution d'outil.

Definir le repertoire de travail

Par defaut, la passerelle utilise le repertoire home comme espace de travail. Definissez un repertoire projet dedie :

echo 'MESSAGING_CWD=/home/hermes/projects' >> ~/.hermes/.env
mkdir -p /home/hermes/projects

Redemarrez le service pour appliquer :

systemctl --user restart hermes-gateway

Comment sauvegarder les donnees de Hermes Agent ?

Hermes stocke tout son etat dans ~/.hermes/. Ce repertoire contient les memoires, les competences apprises, l'historique des sessions, la configuration et les taches cron. Le perdre signifie que l'agent oublie tout.

Chemins principaux :

Chemin Contenu
~/.hermes/config.yaml Configuration
~/.hermes/.env Cles API et secrets
~/.hermes/memories/ Memoires persistantes de l'agent
~/.hermes/skills/ Competences reutilisables creees par l'agent
~/.hermes/sessions/ Historique des sessions de la passerelle
~/.hermes/cron/ Taches planifiees
~/.hermes/SOUL.md Identite/persona de l'agent

Creez un script de sauvegarde :

cat > /home/hermes/backup-hermes.sh << 'SCRIPT'
#!/bin/bash
BACKUP_DIR="/home/hermes/backups"
TIMESTAMP=$(date +%Y%m%d-%H%M%S)
mkdir -p "$BACKUP_DIR"
tar czf "$BACKUP_DIR/hermes-$TIMESTAMP.tar.gz" \
  --exclude='*.log' \
  -C /home/hermes .hermes/
# Keep only the last 7 backups
ls -t "$BACKUP_DIR"/hermes-*.tar.gz | tail -n +8 | xargs -r rm
echo "Backup saved: $BACKUP_DIR/hermes-$TIMESTAMP.tar.gz"
SCRIPT
chmod 700 /home/hermes/backup-hermes.sh

Lancez-le quotidiennement avec une tache cron :

(crontab -l 2>/dev/null; echo "0 3 * * * /home/hermes/backup-hermes.sh") | crontab -

Verifiez l'entree cron :

crontab -l

Vous devriez voir la tache de sauvegarde planifiee a 03h00 quotidiennement. Le script conserve 7 jours de sauvegardes et supprime les plus anciennes.

Pour des sauvegardes hors serveur, synchronisez le repertoire de sauvegardes vers une autre machine ou du stockage objet avec rsync. Garder les sauvegardes uniquement sur le meme VPS ne protege pas contre une defaillance disque.

Comment mettre a jour Hermes Agent ?

Hermes Agent inclut une commande de mise a jour integree. Avant de mettre a jour, sauvegardez vos donnees.

/home/hermes/backup-hermes.sh
hermes update

Verifiez la nouvelle version :

hermes --version

Verifiez si des changements de configuration sont necessaires apres la mise a jour :

hermes config migrate
hermes doctor

config migrate ajoute les nouvelles options de configuration avec leurs valeurs par defaut. hermes doctor verifie que tout fonctionne encore apres la mise a jour.

Redemarrez le service de passerelle pour executer la nouvelle version :

systemctl --user restart hermes-gateway
systemctl --user status hermes-gateway

Si quelque chose casse apres une mise a jour, restaurez depuis la sauvegarde :

systemctl --user stop hermes-gateway
tar xzf /home/hermes/backups/hermes-YYYYMMDD-HHMMSS.tar.gz -C /home/hermes/
systemctl --user start hermes-gateway

Checklist de securisation

Un agent IA heberge sur VPS qui execute des commandes terminal necessite une attention particuliere a la securite. Voici un resume de ce que ce guide a deja configure et quelques etapes supplementaires.

Deja configure dans ce guide :

  • Utilisateur non-root (hermes) avec repertoire home dedie
  • Sandboxing Docker pour toute execution de commande terminal
  • Pare-feu UFW refusant tout trafic entrant sauf SSH
  • Cles API dans ~/.hermes/.env avec permissions 600
  • TELEGRAM_ALLOWED_USERS restreignant l'acces du bot a votre identifiant utilisateur
  • approval_mode: ask exigeant confirmation pour les commandes dangereuses

Securisation supplementaire :

Desactivez entierement le backend terminal local en verifiant votre configuration :

hermes config

Dans la section Terminal, confirmez que Backend indique docker, pas local.

Definissez des limites de ressources sur les conteneurs Docker pour empecher un processus emballe de consommer toutes les ressources du serveur. Cela a ete configure plus tot avec container_cpu et container_memory.

Passez en revue les competences apprises par l'agent periodiquement :

ls -la ~/.hermes/skills/

Les competences sont des scripts que l'agent ecrit et reutilise. Auditez-les comme vous le feriez pour tout code tournant sur votre serveur.

Surveillez les logs de la passerelle pour detecter des utilisateurs inattendus ou une activite inhabituelle :

journalctl --user -u hermes-gateway --since "1 hour ago" --no-pager

Depannage

La passerelle ne demarre pas :

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

Causes frequentes : token de bot invalide, cle API manquante, Docker non demarre. Verifiez que Docker est actif avec systemctl status docker.

Le bot Telegram ne repond pas :

Verifiez que le token du bot et les utilisateurs autorises sont definis :

grep TELEGRAM ~/.hermes/.env

Testez la connectivite sortante :

curl -s https://api.telegram.org/bot<YOUR_TOKEN>/getMe

Une reponse valide avec les informations de votre bot confirme que le token et le reseau fonctionnent.

Permission Docker refusee :

groups

La sortie doit inclure docker. Sinon, relancez sudo usermod -aG docker hermes et deconnectez-vous/reconnectez-vous.

Commande hermes introuvable apres l'installation :

source ~/.bashrc

Si toujours absente, verifiez que ~/.local/bin est dans votre PATH :

echo $PATH | tr ':' '\n' | grep local

Utilisation memoire elevee :

Verifiez la consommation de ressources des conteneurs Docker :

docker stats --no-stream

Diminuez le parametre container_memory si les conteneurs utilisent trop de RAM.

Estimation des couts

Auto-heberger Hermes Agent sur un VPS coute le serveur plus l'utilisation API LLM. Voici une estimation realiste pour un developpeur solo.

Element Cout mensuel
VPS (2 vCPU, 4 Go RAM) 5-10 $
API OpenRouter (usage modere, ~500K tokens/jour) 5-15 $
Surcout Docker Inclus dans le VPS
Passerelle Telegram Gratuit
Total 10-25 $/mois

Les abonnements d'assistants IA geres coutent 20-200 $/mois. L'auto-hebergement coute moins cher et garde vos donnees sur votre propre serveur.

Executer Claude Code sur un VPS


Copyright 2026 Virtua.Cloud. Tous droits reserves. Ce contenu est une creation originale de l'equipe Virtua.Cloud. Toute reproduction, republication ou redistribution sans autorisation ecrite est interdite.

Prêt à essayer ?

Déployez votre serveur en quelques secondes. Linux, Windows ou FreeBSD.

Voir les offres VPS
Auto-heberger Hermes Agent sur un VPS