services: hermes-agent: image: nousresearch/hermes-agent:latest restart: unless-stopped command: gateway run environment: - HERMES_HOME=/home/hermes/.hermes - HERMES_UID=1000 - HERMES_GID=1000 - OPENROUTER_API_KEY=${OPENROUTER_API_KEY:-} # - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-} # - OPENAI_API_KEY=${OPENAI_API_KEY:-} # - GOOGLE_API_KEY=${GOOGLE_API_KEY:-} volumes: - hermes-home:/home/hermes/.hermes - hermes-agent-src:/opt/hermes healthcheck: test: ["CMD-SHELL", "test -d /home/hermes/.hermes || exit 1"] interval: 10s timeout: 5s retries: 5 # Web chat UI, sharing the agent's home and source. hermes-webui: image: ghcr.io/nesquena/hermes-webui:latest restart: unless-stopped depends_on: - hermes-agent environment: - HERMES_WEBUI_PASSWORD=${HERMES_WEBUI_PASSWORD:?required} - WANTED_UID=1000 - WANTED_GID=1000 - HERMES_WEBUI_HOST=0.0.0.0 - HERMES_WEBUI_PORT=8787 - HERMES_WEBUI_STATE_DIR=/home/hermeswebui/.hermes/webui volumes: - hermes-home:/home/hermeswebui/.hermes - hermes-agent-src:/home/hermeswebui/.hermes/hermes-agent:ro - hermes-workspace:/workspace healthcheck: test: ["CMD", "curl", "-f", "http://127.0.0.1:8787/health"] interval: 30s timeout: 5s retries: 3 volumes: hermes-home: hermes-agent-src: hermes-workspace: