---
title: "Deploy Hermes Agent"
description: "One-click Hermes Agent on Railway with gateway + web dashboard"
category: "Bots"
url: https://railway.com/deploy/hermes-agent-8
---

# Deploy Hermes Agent

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

**[Deploy Hermes Agent on Railway](https://railway.com/template/hermes-agent-8)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/hermes-agent-8/manifest.json

- **Creator:** Dirt Road
- **Category:** Bots

## Template content

### railway-hermes-agent-template

- **Source:** https://github.com/TheGreatAxios/railway-hermes-agent-template
- **Public domain:** Yes

## Documentation

# Deploy and Host Hermes Agent on Railway

One-click deploy of [Hermes Agent](https://github.com/NousResearch/hermes-agent) — the self-improving AI agent by [Nous Research](https://nousresearch.com) — on [Railway](https://railway.app), using the official `nousresearch/hermes-agent` image with the built-in web dashboard enabled.

[![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/hermes-agent-8)

## 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](https://hub.docker.com/r/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](https://hermes-agent.nousresearch.com/docs/reference/environment-variables).

| 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](https://t.me/botfather), user IDs via [@userinfobot](https://t.me/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

- [Hermes Agent documentation](https://hermes-agent.nousresearch.com/docs/)
- [Hermes Agent GitHub](https://github.com/NousResearch/hermes-agent)
- [Railway documentation](https://docs.railway.com/)

## License

MIT. Template by [TheGreatAxios](https://github.com/thegreataxios) · Agent by [Nous Research](https://nousresearch.com)


## Similar templates

- [Telegram JavaScript Bot](https://railway.com/deploy/5lRkWa) — A template for Telegram bot in JavaScript using grammY
- [Cobalt Tools [Updated Sep ’26]](https://railway.com/deploy/cobalt) — Cobalt Tools [Sep ’26] (Media Downloader, Converter & Automation) Self Host
- [Telegram Gateway](https://railway.com/deploy/railway-telegram-gateway) — Multi-bot Telegram webhook gateway with WebSocket event streaming

Open this page in a browser: https://railway.com/deploy/hermes-agent-8
