AI Frontier

2026年 低価格 VPS で Hermes Agent Docker + Telegram ボット:ゲートウェイ・ペアリング・セキュリティ手順

MacHTML Lab2026.05.29 約16分
2026年 低価格 VPS で Hermes Agent Docker + Telegram ボット:ゲートウェイ・ペアリング・セキュリティ手順

Hermes AgentNousResearch/hermes-agent)は月額約 5 ドルの VPS向けに設計されており、ノート PC だけに限りません。公式 Docker イメージ nousresearch/hermes-agent はホストにマウントした ~/.hermes:/opt/data にすべての状態を保存し、gateway プロセスが Telegram、Discord、Slack などを 1 つのバックグラウンドサービスから接続します。本記事では低価格 VPS への Docker 導入、Telegram ボット作成、許可リストのセキュリティ、docker compose による常駐運用を順に説明します。公式ドキュメント:Docker ユーザーガイドメッセージングゲートウェイチーム Telegram アシスタントガイド

Apple ハードウェア上でエージェント基盤を比較する場合は、macOS と Mac mini M4 上の Hermes Agent と OpenClaw の比較を参照してください。長い Telegram セッションでコンテキストが膨らんだ後は、Mac mini M4 上の Hermes trajectory_compressor によるメモリとトークン調整が有効です。これらはローカル検証向けです。本ページは Linux VPS + Docker で Telegram を 24/7 稼働させることに焦点を当てます。

開示:MacHTML は設定のステージング用に任意のクラウド Mac mini レンタルを提供します。本ガイドは Linux VPS と Docker が中心で、Mac は必須ではありません。

低価格 VPS で Docker を使う理由

Hermes は就寝中もオンラインのまま動くプロセスが必要です。ノート PC は蓋を閉じると停止しますが、低価格 VPS(多くは 1–2 vCPU2–4 GB RAM月額約 4–6 ドル)なら gateway run を 24 時間稼働させられます。

週次デプロイする運用者にとって Docker の利点は 3 つです。第一に 再現可能なインストール:各 VPS で Python 3.11 や Node を毎回直す代わりに nousresearch/hermes-agent:latest を pull。第二に 分離されたアップグレード:イメージを差し替えてもホストの ~/.hermes にセッション・メモリ・API キーが残る。第三に任意の コマンドサンドボックスTERMINAL_BACKEND=docker でシェルツールをホストカーネルではなく別コンテナで実行。

Telegram はエンドツーエンド検証に最速のチャネルです。@BotFather でボットを作成し、トークンを ~/.hermes/.env に入れ、数値ユーザー ID を TELEGRAM_ALLOWED_USERS に追加すれば数秒でメッセージテストできます。ゲートウェイは既定で 未知ユーザーを拒否します。ターミナル権限のあるボットで GATEWAY_ALLOW_ALL_USERS=true は有効にしないでください。

VPS は安定したグローバル IP と cron 向けの予測可能な稼働時間を提供します。Hermes は gateway 内で 60 秒ごとに cron を実行し、ホスト再起動後は Compose の restart: unless-stopped で gateway が自動復帰します。

自宅 NAS や Raspberry Pi と比べ、小さなクラウド VM は Telegram API や LLM プロバイダへのアウトバウンドが安定し、スナップショットで災害復旧しやすいです。bind-mount した ~/.hermes をメジャーアップグレード前にスナップショットしてください。

日本から運用する場合は、Telegram と LLM エンドポイントへの安定した出口を持つリージョンを選ぶか、プロキシを計画してください。公式イメージは Docker Hub から pull します。ミラー利用時は digest を必ず確認してください。

Docker Compose は引き継ぎを容易にします:compose ファイル 1 つ、データディレクトリ 1 つ、pairing 手順を文書化し、本番設定をステージング VPS で再現してから昇格させます。

Telegram のみで Dashboard 不要の個人なら Minimum で足りることが多いです。terminal.backend: docker や複数管理者が必要なら Recommended に上げ、sandbox と gateway の RAM 競合を監視してください。

アーキテクチャ:コンテナ内の gateway

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)

gateway は単一の長寿命プロセスで複数メッセージングを多重化します。各 Telegram チャットは /opt/data/sessions/ に保存され、エージェントループへディスパッチ、長期メモリは /opt/data/memories/ に保存されます。bind-mount ~/.hermes:/opt/data により状態はすべてホスト側です。

同じ /opt/data を 2 つの gateway コンテナにマウントしないでください。セッションファイルは同時書き込みに非対応で、二重 gateway は破損と重複処理を招きます。本番は hermes サービス 1 つ、command: gateway run が定石です。

ポート 8642 は任意の OpenAI 互換 API とヘルスエンドポイントです。Telegram のみなら公開不要。有効化時は API_SERVER_ENABLED=true、慎重なバインド、強力な API_SERVER_KEY とファイアウォールで保護してください。

VPS サイジングとコスト

Telegram トラフィックが安定すると gateway の RAM が主な制約になります。エージェントコンテナはモデルコンテキストを保持し、terminal.backend: docker では sandbox が追加オーバーヘッドになります。ディスクはセッション履歴・スキル・メモリで増えるため、cron ログが溜まる前に余裕を確保してください。

下表は 4 つの代表的プロファイルです。シェルツールや複数管理者が必要なら Recommended から始め、Budget lab は短い pairing 検証のみに留めてください。

プロファイルvCPURAMディスク月額目安用途
最小12 GB20 GB約 $4–5Telegram のみ、Dashboard なし、単一ユーザー
推奨24 GB40 GB約 $6–8Gateway + TERMINAL_BACKEND=docker で shell サンドボックス
高負荷2+8 GB60 GB約 $12+Dashboard、cron、大きな skills ツリー、複数管理者
予算ラボ11 GB15 GB約 $3–4スモークテストと pairing のみ(本番不可)

ステップバイステップ手順

  1. VPS に Docker をインストール — Ubuntu 22.04 以降で docker.io と docker-compose-v2 を apt インストールし、ユーザーを docker グループに追加して sudo なしで compose を実行できるようにします。
    sudo apt update && sudo apt install -y docker.io docker-compose-v2
                    sudo usermod -aG docker $USER
                    newgrp docker
  2. 永続データディレクトリを作成 — 秘密情報・セッション・設定はすべてホストの ~/.hermes にあります。イメージ更新前にこのフォルダをバックアップしてください。
    mkdir -p ~/.hermes
  3. 対話式 setup を一度実行 — nousresearch/hermes-agent を pull し ~/.hermes:/opt/data をマウントして、ウィザードが .env と config.yaml を書き込むようにします。
    docker run -it --rm                   -v ~/.hermes:/opt/data                   nousresearch/hermes-agent setup
  4. Telegram ボットと許可リストを作成 — @BotFather で bot token、@userinfobot で数値ユーザー ID。既定は未知ユーザーを拒否——ターミナル権限があるボットで GATEWAY_ALLOW_ALL_USERS=true は設定しないでください。
    TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
                    TELEGRAM_ALLOWED_USERS=987654321
  5. DM pairing コードを承認(任意) — 事前許可リストを省略した場合、未知ユーザーに 1 時間有効の pairing コードが届きます。ホストから pairing approve で承認します。
    docker run --rm -v ~/.hermes:/opt/data nousresearch/hermes-agent pairing approve telegram XKGH5N7P
  6. 前景で gateway run をスモークテスト — 対話的に gateway run を起動し、ボットに /help を送り、/model や /compress を確認してから本番へ。
    docker run --rm -it                   -v ~/.hermes:/opt/data                   nousresearch/hermes-agent gateway run
  7. Docker Compose で本番デプロイ — restart: unless-stopped、bind-mount ~/.hermes:/opt/data、メモリ/CPU 上限で暴走エージェントが 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. チームボットのターミナルアクセスを強化 — config.yaml で terminal.backend: docker とし、shell ツールをホストカーネルではなくサンドボックスコンテナで実行します。
    # ~/.hermes/config.yaml excerpt
                    terminal:
                      backend: docker
                      container_cpu: 1
                      container_memory: 5120
                      container_persistent: true

トラブルシューティング

ボットが応答せず、ログに Telegram 401

@BotFather でトークンを再生成し、~/.hermes/.envTELEGRAM_BOT_TOKEN を更新して docker compose restart hermes。ボット名変更やトークン失効後の更新漏れが最も多い原因です。

未認可メッセージや pairing プロンプトが終わらない

ボット ID ではなく個人の数値 ID を TELEGRAM_ALLOWED_USERS に追加するか、pairing approve telegram <code> を実行。~/.hermes をマウントする gateway は 1 つだけにしてください。

スコープ付きリポ読取・npm test・ガード付き自動修正が必要なら、2026 Hermes Agent MCP + Claude Opus 4.8:ローカルコードサンドボックス を参照してください。

よくある質問

VPS の代わりに Mac mini で Hermes Docker を動かせますか?

はい——同じ docker run と compose パターンが Docker Desktop や Colima で動きます。Telegram のみ 24/7 なら VPS の方が安いことが多く、Apple ツールチェーンが必要なら Mac mini M4 が適しています。

ポート 8642 を公開する必要はありますか?

Telegram のみなら不要。OpenAI 互換 API や外部ヘルスチェックが必要なときだけ 8642 を有効化し、API_SERVER_ENABLED=true と強力な API_SERVER_KEY、ファイアウォールを設定してください。

サイト内の OpenClaw Telegram ガイドとの違いは?

OpenClaw 記事はクラウド Mac 上の Node.js gateway 向けです。Hermes は hermes gateway とネイティブ Telegram アダプター、Nous Research の Docker 文書が中心です。

最初に試すべきスラッシュコマンドは?

初回応答後に /status/model/compress/new を送信。管理者コマンドは制限され、一般ユーザーは許可リストに従います。

クラウド Mac mini で Hermes を検証

常時稼働の Mac mini M4 を借りて Docker 設定・Telegram ペアリング・スラッシュコマンドを試し、同じ ~/.hermes を本番 VPS に昇格させます。

Mac 上の Agent ステージング
常時稼働の検証環境