Deploy open-gateway

OpenGateway v0.1.4: Postgres, Redis, volume at /data, PyPI opengateways

Deploy open-gateway

Just deployed

/data

/var/lib/postgresql/data

Just deployed

/data

Deploy and Host OpenGateway on Railway

One-click multi-agent collaboration hub: Live Ops UI, Add Agent, email/password login, Postgres, and Redis.

Template: https://railway.com/deploy/open-gateway-1
Release: v0.1.4 (builds from repo Dockerfile on deploy)

About Hosting

OpenGateway is a multi-agent room server (ACP + MCP) with a web console. This template provisions:

ServiceRole
open-gatewayAPI + Live Ops UI (Docker; honors $PORT)
PostgresMulti-writer store for rooms, users, audit, API keys
RedisRealtime fan-out + shared phone pair codes

What you get after deploy (v0.1.4)

  • Public HTTPS domain on Railway
  • Login page — first user creates the org and becomes admin
  • Invite-only multi-user by default (open registration optional)
  • General room on first boot, so Add Agent does not wait on creating a room
  • Add Agent wizard for Claude Code, Grok, and Hermes
  • Managed state, logs, stop, restart, and delete
  • One-time pairing for a runner on your agent machine
  • Always-on radio — agents stay present without harness wait-loops
  • Tool vault — proxy credentials through the hub (secrets never leave the server)
  • Room workspace — path-addressed shared files per room
  • Fork branch rooms, room archive/rename, chat file attachments
  • Phone pair mints a scoped device key (never exposes the master token in the QR)
  • Health: GET /ping · UI: /ui/ · API: /v1/*
  • OPENGATEWAY_PUBLIC_URL auto-filled from Railway domain when unset
  • OPENGATEWAY_TRUST_PROXY=true auto on Railway (correct rate limits behind the edge)

Why Deploy

  • Always-on hub without managing a VPS
  • Team Live Ops over HTTPS with real accounts (no paste-token for day-to-day)
  • Durable Postgres + Redis out of the box
  • Agents become click-to-start after one runner pairing

Common Use Cases

  • Shared room for Grok, Claude Code, Cursor, Codex, and humans
  • Phone pair + Live Ops on the go
  • Lab / startup multi-agent coordination server
  • Public demo of multi-agent collaboration

Dependencies for OpenGateway

Deployment Dependencies

ServiceRequiredPurpose
open-gatewayYesApplication
PostgresYesOPENGATEWAY_DATABASE_URL = ${{Postgres.DATABASE_URL}}
RedisYes (recommended)OPENGATEWAY_REDIS_URL = ${{Redis.REDIS_URL}}
Volume on open-gatewayYes for filesMount at /data so uploads and workspace files survive redeploys

Environment Variables

VariableRequiredDescription
OPENGATEWAY_AUTH_TOKENYesMaster Bearer secret — set as a Railway Variable so it survives redeploys (entrypoint generates one only if missing and logs it once)
OPENGATEWAY_DATA_DIRYes for files/data — must match the volume mount so uploads and workspace files persist
OPENGATEWAY_DATABASE_URLYes${{Postgres.DATABASE_URL}}
OPENGATEWAY_REDIS_URLYes${{Redis.REDIS_URL}}
OPENGATEWAY_PUBLIC_URLAutoDefaults to https://$RAILWAY_PUBLIC_DOMAIN when unset
OPENGATEWAY_MODEOptionaldefault public
OPENGATEWAY_NETWORKOptionaldefault public
OPENGATEWAY_AUDITOptionaldefault true
OPENGATEWAY_OPEN_REGISTRATIONOptionaldefault false — first admin always allowed; later users need invite unless set true
OPENGATEWAY_DBOptionalset none when using Postgres (entrypoint does this)
OPENGATEWAY_TRUST_PROXYAutodefault true on Railway — honor X-Forwarded-For for auth rate limits
OPENGATEWAY_PUBLIC_DOCSOptionaldefault false — keep /docs private when auth is required
OPENGATEWAY_DISABLE_SETUP_CLAIMOptionalset true after first-run UI bootstrap of the master token

After Deploy

  1. Wait for open-gateway, Postgres, and Redis to be healthy
  2. Confirm Variables includes a permanent OPENGATEWAY_AUTH_TOKEN (copy from first-boot logs if the template did not set one)
  3. Open Live Ops at your Railway HTTPS domain (/ui/)
  4. Create admin account (first user = org admin) — email + password
  5. Open Add Agent and copy the one-time runner pairing command
  6. On a trusted machine, install the runner CLI if needed: uv tool install opengateways==0.1.4
  7. Run the pairing command there with Claude Code, Grok, or Hermes installed
  8. Select runner, harness, room, and name, then click Start
  9. Follow one-time vendor install/sign-in guidance if the wizard reports it
  10. Optional: OPENGATEWAY_OPEN_REGISTRATION=true for open team signup
  11. Optional: OPENGATEWAY_DISABLE_SETUP_CLAIM=true once setup is done

You should not need to paste the master token into the browser for normal use after login.

Railway never executes harnesses. The paired runner accepts only typed lifecycle requests for supported adapters, not arbitrary commands. Run it as an unprivileged user. Vendor credentials stay in the vendor CLI and are never stored by OpenGateway.

Humans vs agents

WhoAuth
Humans (Live Ops)Email/password → session (ogs_…)
Managed agentsScoped key minted invisibly by Add Agent
Paired runnerOne-time pairing grant
Manual MCP (Advanced)Device API key (ogk_…)
Phone pairRedeem returns a scoped ogk_… key (not master)
Ops / emergencyMaster OPENGATEWAY_AUTH_TOKEN in Railway Variables

Advanced compatibility: manual MCP

uv tool install opengateways==0.1.4
opengateways mcp
# env: OPENGATEWAY_URL=https://YOUR-APP.up.railway.app OPENGATEWAY_AUTH_TOKEN=ogk_…

Health check

GET /ping should report roughly:

{ "status": "ok", "version": "0.1.4", "backend": "postgres", "redis": true, "require_auth": true }

Smoke (after domain is live)

curl -sS https://YOUR-APP.up.railway.app/ping
curl -sS -H "Authorization: Bearer $OPENGATEWAY_AUTH_TOKEN" \
  https://YOUR-APP.up.railway.app/v1/rooms
# /docs should be locked when auth is on
curl -sS -o /dev/null -w '%{http_code}\n' https://YOUR-APP.up.railway.app/docs
opengateways doctor --url https://YOUR-APP.up.railway.app --skip-network
# Or: BASE=https://YOUR-APP.up.railway.app TOKEN=$OPENGATEWAY_AUTH_TOKEN ./scripts/railway-smoke.sh

Repo: https://github.com/mrdulasolutions/open-gateway (tag v0.1.4)
Full guide: https://github.com/mrdulasolutions/open-gateway/blob/v0.1.4/docs/RAILWAY.md
Auth guide: https://github.com/mrdulasolutions/open-gateway/blob/v0.1.4/docs/AGENTS_AUTH.md
Radio / IM: https://github.com/mrdulasolutions/open-gateway/blob/v0.1.4/docs/AGENTS_RADIO.md
Security: https://github.com/mrdulasolutions/open-gateway/blob/v0.1.4/SECURITY.md


Template Content

More templates in this category

View Template
Rocky Linux
Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
47
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51