HgHermesGrass
Черновик. Материалы проходят проверку на Hermes Agent v0.19.0. Непроверенные и устаревшие блоки помечены отдельно.
Требует проверки

Промт для Docker

Промт для разворачивания Hermes в Docker. Шаблон показан полностью прямо на сайте.

Важно: не вставляй реальные API-ключи, пароли и токены в публичные шаблоны или Telegram-чат.
Статус: сверено с документацией Hermes v0.19.0, но runtime-тест Docker/VPS на этой машине не выполнен.
Промт для Docker
Ты — системный администратор. Твоя задача — развернуть Hermes Agent в Docker безопасным beginner-путём. Делай всё по порядку, не пропускай ошибки.

Статус этого сценария: требует runtime-проверки на Docker Compose v2.

1. Проверь Docker и Docker Compose v2:
   docker --version
   docker compose version

2. Создай директорию данных Hermes:
   mkdir -p ~/.hermes
   chmod 700 ~/.hermes
   cd ~/.hermes

3. Создай .env локально на сервере:
   touch ~/.hermes/.env
   chmod 600 ~/.hermes/.env

   Спроси у пользователя значения, но не выводи их обратно:
   - OPENROUTER_API_KEY или другой ключ провайдера модели
   - TELEGRAM_BOT_TOKEN
   - TELEGRAM_ALLOWED_USERS
   - TAVILY_API_KEY, если нужен web search

   Важно: правильная allowlist-переменная Telegram — TELEGRAM_ALLOWED_USERS.
   TELEGRAM_ALLOWED_IDS не использовать; правильная переменная — TELEGRAM_ALLOWED_USERS.

4. Добавь секреты в .gitignore, если ~/.hermes или рабочая папка попадёт в Git:
   printf "\n.env\ncredentials.txt\ncredentials*.txt\n" >> ~/.hermes/.gitignore

5. До постоянного gateway-контейнера выполни официальный одноразовый setup-контейнер:
   docker run -it --rm \
     -v ~/.hermes:/opt/data \
     nousresearch/hermes-agent setup

6. Создай docker-compose.yml:

services:
  hermes:
    image: nousresearch/hermes-agent:latest
    restart: unless-stopped
    command: gateway run
    ports:
      - "127.0.0.1:9119:9119"
    volumes:
      - ~/.hermes:/opt/data
    env_file:
      - .env
    environment:
      - HERMES_DASHBOARD=1

7. Запусти gateway-контейнер:
   docker compose pull
   docker compose up -d
   docker compose logs --tail=80

8. Проверь, что переменные из .env реально доступны контейнеру, но НЕ выводи сами ключи:
   docker compose exec hermes sh -lc 'test -n "$OPENROUTER_API_KEY" && echo "OPENROUTER_API_KEY: OK" || echo "OPENROUTER_API_KEY: MISSING"'
   docker compose exec hermes sh -lc 'test -n "$TELEGRAM_BOT_TOKEN" && echo "TELEGRAM_BOT_TOKEN: OK" || echo "TELEGRAM_BOT_TOKEN: MISSING"'
   docker compose exec hermes sh -lc 'test -n "$TELEGRAM_ALLOWED_USERS" && echo "TELEGRAM_ALLOWED_USERS: OK" || echo "TELEGRAM_ALLOWED_USERS: MISSING"'

9. Проверь Hermes внутри контейнера:
   docker compose exec hermes hermes --version
   docker compose exec hermes hermes doctor

   Если образ использует отдельного пользователя hermes и обычный exec создаёт файлы от root, повтори команды с пользователем образа после runtime-подтверждения:
   docker compose exec -u hermes hermes hermes doctor

10. Dashboard не открыт наружу. Открывай через SSH-туннель:
    ssh -L 9119:127.0.0.1:9119 user@SERVER_IP
    Затем локально: http://127.0.0.1:9119

11. OpenAI-compatible API server не включён в базовом шаблоне.
    Если он нужен — создай отдельный advanced-блок с API_SERVER_ENABLED=true и API_SERVER_KEY.
    Не открывай порт 8642 наружу без auth/firewall/reverse proxy.

12. Финальный отчёт без секретов:
    - docker compose ps
    - dashboard доступен через 127.0.0.1:9119
    - env-переменные: OK/MISSING без значений
    - hermes doctor summary
    - путь к данным: ~/.hermes

Если на любом шаге ошибка — покажи ошибку и предложи решение. Не пропускай ошибки молча.