Deploy hermes-all-in-one
Hermes Agent with WebUI and Control Plane
hermes-all-in-one
Just deployed
/data
Deploy and Host hermes-all-in-one on Railway
hermes-all-in-one packages Hermes Agent and Hermes WebUI into one Docker image: a browser chat UI at /, an admin control plane at /admin for providers and channels (no terminal required), and optional gateway autostart so Telegram, Discord, Slack, and the WebUI share one Hermes identity, config, and data directory.
About Hosting hermes-all-in-one
Hosting means running a single Railway service built from this repo’s Dockerfile. The build is multi-stage: it copies Hermes Agent and WebUI source from their official container images, installs Python dependencies with uv, then starts /app/start.sh, which launches the control plane. The public service exposes the control plane (including a reverse proxy to the internal WebUI). You should attach a persistent volume mounted at /data so HERMES_HOME, WebUI state, workspace, and credentials survive redeploys. Set strong passwords (HERMES_ADMIN_PASSWORD, HERMES_WEBUI_PASSWORD) and complete first-time setup at /admin (providers, optional channels) before relying on the chat UI at /. Health checks use GET /health.
Common Use Cases
- Personal AI assistant — Chat in the browser with memory and tools, without running Hermes on your laptop.
- Messaging + browser in one — Connect Telegram, Discord, or Slack from
/adminand use the same agent and memory as the WebUI. - Low-ops team demo — Share one deployed instance with a small group using env-based auth and the admin panel for keys and gateway controls.
Dependencies for hermes-all-in-one Hosting
- Persistent disk — Railway volume (or equivalent) mounted at
/datafor long-lived Hermes and WebUI state. - Container registry access at build time — The Docker build pulls
nousresearch/hermes-agentandghcr.io/nesquena/hermes-webui(seeDockerfile); the build environment must reach those registries.
Deployment Dependencies
Implementation Details
Railway reads railway.toml for the Docker build, start command, and health check:
[build]
builder = "DOCKERFILE"
dockerfilePath = "Dockerfile"
[deploy]
startCommand = "/app/start.sh"
healthcheckPath = "/health"
restartPolicyType = "ON_FAILURE"
restartPolicyMaxRetries = 10
To pin upstream versions, pass Docker build arguments HERMES_AGENT_VERSION and HERMES_WEBUI_VERSION (image tags used in the FROM … AS hermes_*_src stages). See .env.example for runtime variables such as HERMES_HOME, HERMES_WEBUI_PASSWORD, and HERMES_GATEWAY_AUTOSTART.
Why Deploy hermes-all-in-one on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying hermes-all-in-one on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
hermes-all-in-one
saenyakorn/hermes-all-in-one