---
title: "Deploy Everruns"
description: "Deploy the Everruns OSS agent platform on Railway."
category: "AI/ML"
url: https://railway.com/deploy/everruns
---

# Deploy Everruns

Deploy the Everruns OSS agent platform on Railway.

**[Deploy Everruns on Railway](https://railway.com/template/everruns)**

- **Creator:** Mykhailo Chalyi Projects
- **Category:** AI/ML

## Template content

### ui

- **Image:** ghcr.io/everruns/everruns-ui:latest

### redis https://cdn.sanity.io/images/sy1jschh/production/0ce0bfdcfbdbf69662b1116671f97c2dd788b655-157x157.svg

- **Image:** redis:8.2.1
- **Start command:** `/bin/sh -c "rm -rf $RAILWAY_VOLUME_MOUNT_PATH/lost+found/ && exec docker-entrypoint.sh redis-server --requirepass $REDIS_PASSWORD --save 60 1 --dir $RAILWAY_VOLUME_MOUNT_PATH"`

### postgres https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:18

### nats

- **Image:** nats:2-alpine
- **Start command:** `nats-server --jetstream --store_dir /data -m 8222`

### worker

- **Image:** ghcr.io/everruns/everruns-worker:latest

### caddy

- **Image:** caddy:2-alpine
- **Start command:** `/bin/sh -c 'cat > /etc/caddy/Caddyfile <<'"'"'CADDYFILE'"'"'
:{$PORT:8080} {
	handle /api/* {
		reverse_proxy {$SERVER_HOST}:9000 {
			flush_interval -1
		}
	}
	handle /oauth/* {
		reverse_proxy {$SERVER_HOST}:9000
	}
	handle /mcp {
		reverse_proxy {$SERVER_HOST}:9000
	}
	handle /.well-known/* {
		reverse_proxy {$SERVER_HOST}:9000
	}
	handle /api-doc/* {
		reverse_proxy {$SERVER_HOST}:9000
	}
	handle /health {
		reverse_proxy {$SERVER_HOST}:9000
	}
	handle {
		reverse_proxy {$UI_HOST}:9100
	}
}
CADDYFILE
exec caddy run --config /etc/caddy/Caddyfile --adapter caddyfile'`
- **Health check:** /health
- **Public domain:** Yes

### server

- **Image:** ghcr.io/everruns/everruns-server:latest
- **Health check:** /health

## Documentation

# Deploy and Host Everruns

Everruns is an OSS durable agent platform for running AI agents with a control plane, worker pool, browser UI, and persistent storage.

## About Hosting Everruns

This template deploys a complete test stack on Railway. Caddy is the only public service and routes browser traffic, API traffic, OAuth/MCP endpoints, well-known endpoints, API docs, and health checks to the correct internal service. The server, worker, UI, Postgres, Redis, and NATS services stay on Railway private networking.

## Why Deploy Everruns

Use this template when you want a fast test environment for Everruns without hand-translating the Docker Compose topology into Railway services.

## Common Use Cases

- Test Everruns from a public HTTPS URL
- Run durable agent sessions with a worker process
- Exercise API, UI, MCP, and OAuth routes behind one ingress
- Validate Railway deployment behavior before building a production setup

## Dependencies for Everruns

This template provisions the required backing services and runtime processes.

### Deployment Dependencies

- PostgreSQL for durable storage
- Redis for distributed rate limiting
- NATS with JetStream for event delivery and worker notifications
- Everruns server/control plane
- Everruns worker
- Everruns UI
- Caddy public ingress

Required variables during deployment:

- AUTH_ADMIN_EMAIL: email for the single admin account
- AUTH_ADMIN_PASSWORD: password for the admin account
- AUTH_JWT_SECRET: random signing secret, 32+ characters
- WORKER_GRPC_AUTH_TOKEN: shared random token for server-to-worker gRPC auth
- SECRETS_ENCRYPTION_KEY: kek-v1: plus 32 random bytes encoded as standard base64

## Similar templates

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [stella](https://railway.com/deploy/stella) — Self-host stella with web, API, Postgres, Redis, and object storage.
- [Hermes Agent | OpenClaw Alternative with Dashboard](https://railway.com/deploy/hermes-agent-or-openclaw-alternative-wit) — Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

Open this page in a browser: https://railway.com/deploy/everruns
