
Deploy Hermes Agent
One-click Hermes Agent on Railway with gateway + web dashboard
railway-hermes-agent-template
Just deployed
/opt/data
Deploy and Host Hermes Agent on Railway
One-click deploy of Hermes Agent — the self-improving AI agent by Nous Research — on Railway, using the official nousresearch/hermes-agent image with the built-in web dashboard enabled.
About Hosting
Hosting Hermes Agent means running a persistent gateway process that connects your messaging platforms (Telegram, Discord, Slack, WhatsApp) to an LLM-powered agent, alongside a web dashboard for configuration and monitoring.
The template deploys a single Railway service:
- Gateway — supervised by s6-overlay inside the container; if it crashes, it restarts automatically
- Web dashboard — config editor, API keys, messaging channels, sessions, logs, cron jobs, and browser chat
- Volume at
/opt/data— all agent state (config, keys, skills, memories, sessions) persists across restarts and upgrades
Resource sizing: at least 2 GB of RAM (4 GB recommended with browser tools); the image is ~1 GB.
Why Deploy Hermes Agent on Railway?
- Zero server maintenance — no VPS to provision, patch, or back up. Railway runs it, restarts it on failure, and gives you logs and metrics out of the box.
- Always current — builds from the official
nousresearch/hermes-agentDocker image, so you run exactly what Nous Research ships. - Configurable in the browser — add API keys, connect channels, edit
config.yaml, and chat with the agent from the dashboard; no SSH required. - Persistent by default — a volume keeps your agent's memory, skills, and sessions across restarts and upgrades.
- Secure by default — dashboard authentication is mandatory on public URLs and fails closed without credentials.
Common Use Cases
- A personal AI assistant in Telegram, Discord, or Slack with allowlisted users
- A persistent, self-improving agent with skills, memory, and cron-scheduled jobs
- A team's shared agent that monitors channels and responds to prompts
- An OpenAI-compatible agent API for your own applications (optional API server on port 8642)
Dependencies for Hermes Agent
- An LLM provider API key (at least one): OpenRouter (recommended), Anthropic, OpenAI, GLM, Kimi, MiniMax, DeepSeek, and more
- A messaging platform token (at least one, to chat with the agent): Telegram, Discord, Slack, or WhatsApp
- A Railway volume mounted at
/opt/data(the template creates this for you)
Deployment Dependencies
- nousresearch/hermes-agent — the official Hermes Agent Docker image (pinned release tag)
- Railway volume — persistent storage for agent state
- Railway HTTP domain — serves the dashboard with automatic TLS
After Deploying
- Log in to the dashboard at your Railway service URL.
- If you set
HERMES_DASHBOARD_BASIC_AUTH_PASSWORD, that's your password (usernameadmin). - If not, a strong password was auto-generated and printed once in the deploy logs. Set the variable afterwards to control it.
- If you set
- Add a provider key if you didn't set one — dashboard → API Keys.
- Connect a messaging channel — dashboard → Channels (or set
TELEGRAM_BOT_TOKENetc. as Railway variables). - Always use allowlists — set
TELEGRAM_ALLOWED_USERS,DISCORD_ALLOWED_USERS, orSLACK_ALLOWED_USERSto your own user IDs. Anyone who can message the agent can spend your tokens and run commands in the container.
Configuration
Hermes reads variables from the process environment and from /opt/data/.env (manageable via the dashboard's API Keys page). Full reference: official env docs.
| Variable | Description |
|---|---|
OPENROUTER_API_KEY | LLM provider (recommended, 200+ models) |
ANTHROPIC_API_KEY / OPENAI_API_KEY / GLM_API_KEY / KIMI_API_KEY / MINIMAX_API_KEY / DEEPSEEK_API_KEY | Other LLM providers |
TELEGRAM_BOT_TOKEN + TELEGRAM_ALLOWED_USERS | Telegram bot (@BotFather, user IDs via @userinfobot) |
DISCORD_BOT_TOKEN + DISCORD_ALLOWED_USERS | Discord bot (enable Message Content Intent) |
SLACK_BOT_TOKEN + SLACK_APP_TOKEN + SLACK_ALLOWED_USERS | Slack (Socket Mode) |
WHATSAPP_ENABLED | Set true for the WhatsApp bridge |
HERMES_DASHBOARD_BASIC_AUTH_PASSWORD | Dashboard login password (auto-generated if unset) |
API_SERVER_ENABLED / API_SERVER_HOST / API_SERVER_KEY | Optional OpenAI-compatible API server (port 8642) |
Updating
The Hermes version is pinned in the template's Dockerfile. Template updates are published by the template maintainer; agent state on the volume survives updates.
Troubleshooting
- Dashboard won't load — confirm the volume is mounted at
/opt/data; check deploy logs for the auth-gate error. - Gateway up, no replies — check the platform token, your user ID in
*_ALLOWED_USERS, and that a provider key exists (dashboard → API Keys). - First message fails — no LLM provider configured yet; add one via Railway variables or the API Keys page.
Resources
License
MIT. Template by TheGreatAxios · Agent by Nous Research
Template Content
railway-hermes-agent-template
TheGreatAxios/railway-hermes-agent-templatePORT
