Требует проверки
Промт для 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
Если на любом шаге ошибка — покажи ошибку и предложи решение. Не пропускай ошибки молча.