feat: run 5 profile gateways in same container (ashley, claire, finn, matt, paul) #47

Closed
Hermes wants to merge 1 commits from feat/multi-profile-gateways into master
Collaborator

Summary

Run 5 profile gateways (Ashley, Claire, Finn, Matt, Paul) as background processes inside the same container — no separate services needed.

Changes

ai/compose.yml — Modified entrypoint to:

  • Activate venv and install Matrix deps (moved from inline to entrypoint)
  • Launch each profile's gateway with API_SERVER_ENABLED=false to avoid port conflicts
  • Each logs to /opt/data/logs/gateway-<name>.log
  • Main gateway (gateway run) continues as the foreground PID managed by tini

How it works

for p in ashley claire finn matt paul; do
  API_SERVER_ENABLED=false nohup hermes --profile $p gateway run \
    >> /opt/data/logs/gateway-$p.log 2>&1 &
done
exec /usr/bin/tini -g -- /opt/hermes/docker/entrypoint.sh "gateway run"

Background processes are re-parented to tini (PID 1) when the shell is replaced by exec. Logs persist to the Docker volume at /opt/data/logs/.

Required setup per profile

Each profile needs in its .env:

  • DISCORD_BOT_TOKEN=<unique token>
  • DISCORD_ALLOWED_USERS=<user ID>
  • GATEWAY_ALLOW_ALL_USERS=false
  • OPENCODE_GO_API_KEY=<key>
## Summary Run 5 profile gateways (Ashley, Claire, Finn, Matt, Paul) as background processes inside the same container — no separate services needed. ## Changes **`ai/compose.yml`** — Modified entrypoint to: - Activate venv and install Matrix deps (moved from inline to entrypoint) - Launch each profile's gateway with `API_SERVER_ENABLED=false` to avoid port conflicts - Each logs to `/opt/data/logs/gateway-<name>.log` - Main gateway (`gateway run`) continues as the foreground PID managed by tini ## How it works ```bash for p in ashley claire finn matt paul; do API_SERVER_ENABLED=false nohup hermes --profile $p gateway run \ >> /opt/data/logs/gateway-$p.log 2>&1 & done exec /usr/bin/tini -g -- /opt/hermes/docker/entrypoint.sh "gateway run" ``` Background processes are re-parented to tini (PID 1) when the shell is replaced by exec. Logs persist to the Docker volume at `/opt/data/logs/`. ## Required setup per profile Each profile needs in its `.env`: - `DISCORD_BOT_TOKEN=<unique token>` - `DISCORD_ALLOWED_USERS=<user ID>` - `GATEWAY_ALLOW_ALL_USERS=false` - `OPENCODE_GO_API_KEY=<key>`
Hermes added 1 commit 2026-05-22 14:10:22 +00:00
feat: run 5 profile gateways in same container (ashley, claire, finn, matt, paul)
Some checks failed
Build Hermes agent / build (pull_request) Has been cancelled
Build ollama (gfx906) / build (pull_request) Has been cancelled
ab555aad84
Launches each profile's Discord gateway as a background process
before the main gateway starts. Each logs to /opt/data/logs/gateway-<name>.log
with API server disabled to avoid port conflicts.
Hermes closed this pull request 2026-05-22 16:25:47 +00:00
Some checks failed
Build Hermes agent / build (pull_request) Has been cancelled
Build ollama (gfx906) / build (pull_request) Has been cancelled

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gortium/compose#47
No description provided.