version: "3.7"

services:
  app_proxy:
    environment:
      APP_HOST: hermes-agent_web_1
      APP_PORT: 18789

  # Веб-терминал + прокси-сервер панели управления
  web:
    image: ghcr.io/getumbrel/hermes-agent-umbrel:v2026.4.23-1@sha256:1101da395b9d800a03fbdbe16b9753e872180507608c932e83d9e94e524f7b9a
    # В командной строке отображается "dfwebos@hermes" вместо "dfwebos@<container-id>".
    hostname: hermes
    init: true
    user: "1000:1000"
    restart: on-failure
    depends_on:
      - gateway
    volumes:
      - ${APP_DATA_DIR}/data/hermes:/opt/data
    environment:
      APP_SEED: ${APP_SEED}
      # Указывает панели мониторинга проверять шлюз через HTTP вместо локального обнаружения PID.
      GATEWAY_HEALTH_URL: http://hermes-agent_gateway_1:8642

  # Шлюз обмена сообщениями Гермес
  gateway:
    image: nousresearch/hermes-agent:v2026.4.23@sha256:d4ee57f254aabbe10e41c49533bbf3eb98e6b026463c42843a07588e45ddd338
    # Восходящая версия v2026.4.23 начинается с адреса UID 10000, который не может получить доступ к DFWebOS.
    # 1000:1000 каталог данных приложения. Запускайте от имени пользователя root, чтобы точка входа восходящего потока могла
    # соблюдайте HERMES_UID/HERMES_GID, исправьте право собственности на /opt/data, затем откажитесь от привилегий.
    # Удалите, как только основной выпуск будет включать исправление Docker UID/GID.
    # например NousResearch/hermes-agent#12696.
    user: "0:0"
    command: gateway run
    stop_grace_period: 1m
    restart: on-failure
    volumes:
      - ${APP_DATA_DIR}/data/hermes:/opt/data
    environment:
      HERMES_UID: "1000"
      HERMES_GID: "1000"
      # Сервер API предоставляет конечную точку работоспособности, которую панель мониторинга проверяет через GATEWAY_HEALTH_URL.
      # Должен быть привязан к 0.0.0.0 (не к 127.0.0.1 по умолчанию), чтобы быть доступным из веб-контейнера.
      # Для привязки к 0.0.0.0 требуется ключ API — мы повторно используем APP_SEED, поскольку порт
      # Только внутренний (не доступен хосту).
      API_SERVER_ENABLED: "true"
      API_SERVER_HOST: "0.0.0.0"
      API_SERVER_KEY: ${APP_SEED}
