AI Frontier

Hermes Agent Docker sur VPS pas cher + bot Telegram en 2026 : passerelle, appairage et runbook sécurité

MacHTML Lab2026.05.29 ~16 min
Hermes Agent Docker sur VPS pas cher + bot Telegram en 2026 : passerelle, appairage et runbook sécurité

Hermes Agent (NousResearch/hermes-agent) est conçu pour tourner sur un VPS à 5 $/mois, pas seulement sur un portable. L’image Docker officielle nousresearch/hermes-agent stocke tout l’état dans ~/.hermes:/opt/data monté sur l’hôte, et le processus gateway connecte Telegram, Discord, Slack et d’autres plateformes depuis un seul service en arrière-plan. Ce guide couvre l’installation Docker sur un VPS économique, la création d’un bot Telegram, la sécurité par liste blanche et un déploiement persistant via docker compose. Références officielles : guide Docker, passerelle messaging, guide assistant Telegram d’équipe.

Pour comparer les harnesses d’agents sur matériel Apple, lisez Hermes Agent vs OpenClaw sur macOS et Mac mini M4. Après de longues sessions Telegram qui gonflent le contexte, ajustez mémoire et tokens avec Hermes trajectory_compressor sur Mac mini M4. Ces articles traitent du staging local ; cette page vise Linux VPS + Docker pour Telegram 24 h/24.

Divulgation : MacHTML propose en option la location cloud d’un Mac mini pour le staging ; ce guide se concentre sur Linux VPS et Docker sans exiger de Mac.

Pourquoi Docker sur un VPS pas cher

Hermes a besoin d’un processus en ligne pendant votre sommeil. Un portable se ferme ; un VPS économique (souvent 1–2 vCPU, 2–4 Go RAM, 4–6 $/mois) peut exécuter gateway run en continu.

Docker apporte trois avantages concrets aux opérateurs qui déploient chaque semaine. D’abord des installations reproductibles : pull nousresearch/hermes-agent:latest au lieu de déboguer Python 3.11, Node et paquets distro sur chaque VPS neuf. Ensuite des mises à niveau isolées : remplacez l’image tout en gardant ~/.hermes sur l’hôte. Enfin un bac à sable optionnel : TERMINAL_BACKEND=docker pour exécuter les outils shell dans un conteneur séparé.

Telegram est le canal le plus rapide pour valider la pile. Créez un bot via @BotFather, mettez le token dans ~/.hermes/.env, ajoutez votre ID numérique à TELEGRAM_ALLOWED_USERS. La politique par défaut refuse les utilisateurs inconnus ; n’activez pas GATEWAY_ALLOW_ALL_USERS=true sur un bot avec accès terminal.

Un VPS offre aussi une IP publique stable et une disponibilité prévisible pour cron. Hermes déclenche cron toutes les 60 secondes dans le gateway ; après reboot, restart: unless-stopped dans Compose relance le service.

Par rapport à un NAS domestique ou un Raspberry Pi, une petite VM cloud a souvent une meilleure sortie vers Telegram et les LLM, plus des snapshots fournisseur. Snapshottez ~/.hermes avant les grosses mises à niveau.

Depuis l’Europe, choisissez une région avec une sortie stable vers Telegram et vos endpoints LLM. L’image officielle vient de Docker Hub ; avec un miroir, vérifiez le digest.

Docker Compose facilite la passation : un fichier compose, un répertoire de données, un flux pairing documenté pour reproduire la prod sur un VPS de staging.

Pour Telegram seul sans Dashboard, le profil Minimum suffit souvent ; avec terminal.backend: docker ou plusieurs admins, passez à Recommended et surveillez la RAM entre sandbox et gateway.

Architecture : gateway dans un conteneur

Internet → Telegram API → VPS:hermes container (gateway run)
                                              ↳ /opt/data  (bind-mount ~/.hermes)
                                                   ├─ .env          (TELEGRAM_BOT_TOKEN, API keys)
                                                   ├─ config.yaml   (terminal, models, cron)
                                                   ├─ sessions/     (per-chat history)
                                                   └─ memories/     (curated long-term memory)

Le gateway est un processus longue durée qui multiplexe les plateformes. Chaque chat Telegram passe par /opt/data/sessions/, travail vers la boucle agent, mémoire long terme dans /opt/data/memories/. Tout vit sur l’hôte via ~/.hermes:/opt/data.

Ne montez jamais le même /opt/data dans deux conteneurs gateway. Les fichiers de session ne supportent pas l’écriture concurrente ; deux gateways corrompent et dupliquent. En production : un service hermes, command: gateway run.

Le port 8642 expose optionnellement une API compatible OpenAI et un health check. Omettez-le si vous n’utilisez que Telegram. Si activé : API_SERVER_ENABLED=true, liaison prudente, API_SERVER_KEY fort et pare-feu.

Dimensionnement VPS et coût

Une fois le trafic Telegram stable, la RAM du gateway est le goulot. Le conteneur agent garde le contexte modèle ; les sandboxes ajoutent de la charge avec terminal.backend: docker. Le disque grossit avec sessions, skills et mémoires — prévoyez de la marge avant l’accumulation des logs cron.

Le tableau ci-dessous résume quatre profils. Commencez par Recommended si vous avez des outils shell ou plusieurs admins ; Budget lab uniquement pour des tests pairing courts.

ProfilvCPURAMDisqueMensuel typiqueUsage
Minimum12 Go20 Go~4–5 $Gateway Telegram seul, pas de dashboard, un utilisateur
Recommandé24 Go40 Go~6–8 $Gateway + sandbox TERMINAL_BACKEND=docker pour shell
Lourd2+8 Go60 Go~12+ $Dashboard, cron, grand arbre skills, plusieurs admins
Labo budget11 Go15 Go~3–4 $Tests fumée et pairing uniquement — pas la prod

Procédure pas à pas

  1. Installer Docker sur le VPS — Sur Ubuntu 22.04+, installez docker.io et docker-compose-v2 via apt, ajoutez l’utilisateur au groupe docker pour compose sans sudo.
    sudo apt update && sudo apt install -y docker.io docker-compose-v2
                    sudo usermod -aG docker $USER
                    newgrp docker
  2. Créer le répertoire de données persistant — Secrets, sessions et config vivent dans ~/.hermes sur l’hôte ; sauvegardez avant mise à niveau d’image.
    mkdir -p ~/.hermes
  3. Lancer l’assistant setup une fois — Pull nousresearch/hermes-agent et montez ~/.hermes:/opt/data pour que l’assistant écrive .env et config.yaml.
    docker run -it --rm                   -v ~/.hermes:/opt/data                   nousresearch/hermes-agent setup
  4. Créer le bot Telegram et la liste blanche — @BotFather pour le token, @userinfobot pour l’ID utilisateur. Par défaut les inconnus sont refusés — pas de GATEWAY_ALLOW_ALL_USERS=true avec terminal.
    TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
                    TELEGRAM_ALLOWED_USERS=987654321
  5. Approuver les codes pairing DM (optionnel) — Sans pré-liste, les inconnus reçoivent un code d’une heure ; approuvez avec pairing approve depuis l’hôte.
    docker run --rm -v ~/.hermes:/opt/data nousresearch/hermes-agent pairing approve telegram XKGH5N7P
  6. Smoke-test gateway run au premier plan — Démarrez gateway run en interactif, envoyez /help, vérifiez /model et /compress avant la prod.
    docker run --rm -it                   -v ~/.hermes:/opt/data                   nousresearch/hermes-agent gateway run
  7. Déployer avec Docker Compose (prod) — restart: unless-stopped, bind-mount ~/.hermes:/opt/data, limites mémoire/CPU pour éviter qu’un agent fou épuise le VPS.
    services:
                      hermes:
                        image: nousresearch/hermes-agent:latest
                        container_name: hermes
                        restart: unless-stopped
                        command: gateway run
                        volumes:
                          - ~/.hermes:/opt/data
                        deploy:
                          resources:
                            limits:
                              memory: 4G
                              cpus: "2.0"
    docker compose up -d
                    docker logs -f hermes
  8. Durcir l’accès terminal pour bots d’équipe — Dans config.yaml, terminal.backend: docker pour exécuter le shell dans un sandbox, pas sur le noyau hôte.
    # ~/.hermes/config.yaml excerpt
                    terminal:
                      backend: docker
                      container_cpu: 1
                      container_memory: 5120
                      container_persistent: true

Dépannage

Le bot ne répond pas ; logs Telegram 401

Régénérez le token dans @BotFather, mettez à jour TELEGRAM_BOT_TOKEN dans ~/.hermes/.env, puis docker compose restart hermes. Cause la plus fréquente après renommage ou révocation.

Message non autorisé ou pairing sans fin

Ajoutez votre ID numérique personnel — pas l’ID du bot — à TELEGRAM_ALLOWED_USERS, ou pairing approve telegram <code>. Un seul conteneur gateway doit monter ~/.hermes.

Besoin de lecture repo limitée, npm test et auto-correction gardée ? Lisez Hermes Agent MCP pour Claude Opus 4.8 : sandbox code local 2026.

FAQ

Puis-je exécuter Hermes Docker sur un Mac mini plutôt qu’un VPS ?

Oui — les mêmes modèles docker run et compose fonctionnent sur Docker Desktop ou Colima. Un VPS est souvent moins cher pour Telegram 24 h/24 seul ; Mac mini M4 pour les toolchains Apple.

Dois-je exposer le port 8642 ?

Non pour Telegram seul. Activez 8642 seulement pour l’API compatible OpenAI ou des health checks externes, avec API_SERVER_ENABLED=true et une API_SERVER_KEY forte.

En quoi diffère-t-il des guides OpenClaw Telegram du site ?

Les articles OpenClaw ciblent des gateways Node.js sur Mac cloud. Hermes utilise hermes gateway avec adaptateurs Telegram natifs et la doc Docker Nous Research.

Quelles commandes slash tester en premier ?

Après la première réponse : /status, /model, /compress, /new. Commandes admin restreintes ; utilisateurs sur la liste blanche.

Préparer Hermes sur un Mac mini cloud

Louez un Mac mini M4 toujours actif pour valider Docker, l’appairage Telegram et les commandes slash avant de promouvoir le même ~/.hermes sur un VPS de production.

Agent sur Mac
Staging toujours actif