Deploy Hermes Agent

One-click Hermes Agent on Railway with gateway + web dashboard

Deploy Hermes Agent

railway-hermes-agent-template

TheGreatAxios/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.

Deploy on Railway

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-agent Docker 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

  1. Log in to the dashboard at your Railway service URL.
    • If you set HERMES_DASHBOARD_BASIC_AUTH_PASSWORD, that's your password (username admin).
    • If not, a strong password was auto-generated and printed once in the deploy logs. Set the variable afterwards to control it.
  2. Add a provider key if you didn't set one — dashboard → API Keys.
  3. Connect a messaging channel — dashboard → Channels (or set TELEGRAM_BOT_TOKEN etc. as Railway variables).
  4. Always use allowlists — set TELEGRAM_ALLOWED_USERS, DISCORD_ALLOWED_USERS, or SLACK_ALLOWED_USERS to 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.

VariableDescription
OPENROUTER_API_KEYLLM provider (recommended, 200+ models)
ANTHROPIC_API_KEY / OPENAI_API_KEY / GLM_API_KEY / KIMI_API_KEY / MINIMAX_API_KEY / DEEPSEEK_API_KEYOther LLM providers
TELEGRAM_BOT_TOKEN + TELEGRAM_ALLOWED_USERSTelegram bot (@BotFather, user IDs via @userinfobot)
DISCORD_BOT_TOKEN + DISCORD_ALLOWED_USERSDiscord bot (enable Message Content Intent)
SLACK_BOT_TOKEN + SLACK_APP_TOKEN + SLACK_ALLOWED_USERSSlack (Socket Mode)
WHATSAPP_ENABLEDSet true for the WhatsApp bridge
HERMES_DASHBOARD_BASIC_AUTH_PASSWORDDashboard login password (auto-generated if unset)
API_SERVER_ENABLED / API_SERVER_HOST / API_SERVER_KEYOptional 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-template

More templates in this category

View Template
Telegram JavaScript Bot
A template for Telegram bot in JavaScript using grammY

Agampreet Singh
294
View Template
Cobalt Tools [Updated Sep ’26]
Cobalt Tools [Sep ’26] (Media Downloader, Converter & Automation) Self Host

shinyduo
293
View Template
Telegram Gateway
Multi-bot Telegram webhook gateway with WebSocket event streaming

INAPP
6