AI Frontier

Hermes Agent Docker на дешёвом VPS + Telegram-бот в 2026: шлюз, pairing и безопасность

MacHTML Lab2026.05.29 ~16 мин
Hermes Agent Docker на дешёвом VPS + Telegram-бот в 2026: шлюз, pairing и безопасность

Hermes Agent (NousResearch/hermes-agent) рассчитан на VPS за ~5 $/мес, а не только на ноутбук. Официальный образ Docker nousresearch/hermes-agent хранит всё состояние в смонтированном на хосте ~/.hermes:/opt/data, а процесс gateway подключает Telegram, Discord, Slack и другие платформы из одного фонового сервиса. В этом руководстве — установка Docker на недорогом VPS, создание Telegram-бота, безопасность по белому списку и постоянный деплой через docker compose. Официальные материалы: руководство по Docker, шлюз сообщений, гайд по командному Telegram-ассистенту.

Если сравниваете агентные harness на Apple-железе, читайте Hermes Agent vs OpenClaw на macOS и Mac mini M4. После длинных сессий Telegram, раздувающих контекст, настройте память и токены через Hermes trajectory_compressor на Mac mini M4. Те статьи про локальный staging; эта страница — Linux VPS + Docker для Telegram 24/7.

Раскрытие: MacHTML предлагает опциональную аренду облачного Mac mini для staging конфигов; этот гайд про Linux VPS и Docker, Mac не обязателен.

Зачем Docker на дешёвом VPS

Hermes нужен процесс, который остаётся онлайн, пока вы спите. Ноутбук закрывается; дешёвый VPS (часто 1–2 vCPU, 2–4 ГБ RAM, ~4–6 $/мес) может круглосуточно выполнять gateway run.

Docker даёт три практических плюса при еженедельных деплоях. Во-первых воспроизводимые установки: pull nousresearch/hermes-agent:latest вместо отладки Python 3.11, Node и пакетов дистрибутива на каждом новом VPS. Во-вторых изолированные обновления: меняете образ, ~/.hermes на хосте сохраняется. В-третьих опциональная песочница команд: TERMINAL_BACKEND=docker для shell-инструментов в отдельном контейнере, не на ядре хоста.

Telegram — самый быстрый канал для сквозной проверки. Создайте бота через @BotFather, положите токен в ~/.hermes/.env, добавьте числовой user id в TELEGRAM_ALLOWED_USERS. Политика по умолчанию отклоняет неизвестных; не включайте GATEWAY_ALLOW_ALL_USERS=true на боте с доступом к терминалу.

VPS даёт стабильный публичный IP и предсказуемый аптайм для cron. Hermes тикает cron каждые 60 секунд в gateway; после перезагрузки хоста restart: unless-stopped в Compose поднимает сервис без ручного вмешательства.

По сравнению с домашним NAS или Raspberry Pi, небольшая облачная VM обычно лучше ходит к Telegram API и LLM-провайдерам, плюс снапшоты. Делайте снапшот ~/.hermes перед крупными апгрейдами.

Из РФ/СНГ выбирайте регион со стабильным egress к Telegram и LLM или планируйте прокси. Официальный образ тянется с Docker Hub; при зеркалах проверяйте digest.

Docker Compose упрощает передачу дел: один compose-файл, одна директория данных, документированный pairing для воспроизведения prod на staging VPS.

Только Telegram без Dashboard — часто хватает Minimum; при terminal.backend: docker или нескольких админах переходите на Recommended и следите за RAM между sandbox и gateway.

Перед обновлением сделайте снимок ~/.hermes и зафиксируйте digest образа для отката и аудита.

Архитектура: 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 в два контейнера gateway. Файлы сессий не безопасны для параллельной записи; два gateway — порча и дубли. Продакшен: один сервис hermes, command: gateway run.

Порт 8642 опционально для OpenAI-совместимого API и health. Только Telegram — можно не публиковать. При включении: API_SERVER_ENABLED=true, осторожный bind, сильный API_SERVER_KEY и firewall.

В продакшене настройте ежедневные бэкапы ~/.hermes и оповещения об изменениях, чтобы каталоги сессий не заполняли диск незаметно.

Размер VPS и стоимость

При стабильном трафике Telegram узкое место — RAM gateway. Контейнер агента держит контекст модели; sandbox добавляют нагрузку при terminal.backend: docker. Диск растёт с сессиями, skills и memories — закладывайте запас до накопления логов cron.

Таблица ниже — четыре профиля. Начинайте с Recommended при shell-инструментах или нескольких админах; Budget lab только для коротких pairing-тестов.

Следите за docker stats hermes: при постоянном превышении лимита RAM в Compose сначала увеличьте RAM, затем добавляйте sandbox-навыки.

ПрофильvCPURAMДискПримерно в месяцНазначение
Минимум12 ГБ20 ГБ~$4–5Только Telegram gateway, без dashboard, один пользователь
Рекомендуемый24 ГБ40 ГБ~$6–8Gateway + sandbox TERMINAL_BACKEND=docker для shell
Тяжёлый2+8 ГБ60 ГБ~$12+Dashboard, cron, большое дерево skills, несколько админов
Бюджетная лаба11 ГБ15 ГБ~$3–4Только smoke и pairing — не продакшен

Пошаговый runbook

  1. Установить Docker на VPS — На Ubuntu 22.04+ установите docker.io и docker-compose-v2 через apt, добавьте пользователя в группу docker для compose без sudo.
    sudo apt update && sudo apt install -y docker.io docker-compose-v2
                    sudo usermod -aG docker $USER
                    newgrp docker
  2. Создать каталог постоянных данных — Секреты, сессии и config в ~/.hermes на хосте — бэкап перед обновлением образа.
    mkdir -p ~/.hermes
  3. Один раз запустить интерактивный setup — Pull nousresearch/hermes-agent и mount ~/.hermes:/opt/data, чтобы мастер записал .env и config.yaml.
    docker run -it --rm                   -v ~/.hermes:/opt/data                   nousresearch/hermes-agent setup
  4. Создать Telegram-бота и белый список — @BotFather для token, @userinfobot для числового user id. По умолчанию неизвестные отклоняются — не ставьте GATEWAY_ALLOW_ALL_USERS=true с терминалом.
    TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrsTUVwxyz
                    TELEGRAM_ALLOWED_USERS=987654321
  5. Одобрить DM pairing-коды (опционально) — Без предварительного списка неизвестные получают часовой код; одобрите pairing approve с хоста.
    docker run --rm -v ~/.hermes:/opt/data nousresearch/hermes-agent pairing approve telegram XKGH5N7P
  6. Smoke-test 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 от разгона агента.
    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 работал в sandbox, а не на ядре хоста.
    # ~/.hermes/config.yaml excerpt
                    terminal:
                      backend: docker
                      container_cpu: 1
                      container_memory: 5120
                      container_persistent: true

Устранение неполадок

Бот не отвечает; в логах Telegram 401

Перевыпустите token в @BotFather, обновите TELEGRAM_BOT_TOKEN в ~/.hermes/.env, затем docker compose restart hermes. Чаще всего после переименования или отзыва token.

Неавторизованное сообщение или бесконечный pairing

Добавьте личный числовой id — не id бота — в TELEGRAM_ALLOWED_USERS или pairing approve telegram <code>. Только один gateway должен монтировать ~/.hermes.

Нужны чтение repo в scope, npm test и guarded auto-fix? Читайте Hermes Agent MCP для Claude Opus 4.8: локальная песочница кода 2026.

FAQ

Можно ли Hermes Docker на Mac mini вместо VPS?

Да — те же docker run и compose работают в Docker Desktop или Colima. Для Telegram-only 24/7 VPS обычно дешевле; Mac mini M4 — для Apple-инструментов.

Нужно ли открывать порт 8642?

Нет для только Telegram. Включайте 8642 для OpenAI-совместимого API или внешних health-check с API_SERVER_ENABLED=true и сильным API_SERVER_KEY.

Чем отличается от гайдов OpenClaw Telegram на сайте?

Статьи OpenClaw про Node.js gateway на облачном Mac. Hermes использует hermes gateway с нативными адаптерами Telegram и Docker-доку Nous Research.

Какие slash-команды проверить первыми?

После первого ответа: /status, /model, /compress, /new. Команды админов ограничены; пользователи — по белому списку.

Проверка Hermes на облачном Mac mini

Арендуйте Mac mini M4 для проверки Docker, Telegram pairing и slash-команд перед переносом ~/.hermes на боевой VPS.

Agent на Mac
Постоянный staging