One-click deploy
Deploy on Railway1
Deploy the template
Click Deploy on Railway above.
2
Add a volume
Attach a volume mounted at
/data (required for persistent state).3
Set variables
Set the required Variables on the service:
OPENCLAW_GATEWAY_PORT=8080(required — must match the port in Public Networking)OPENCLAW_GATEWAY_TOKEN(required; treat as an admin secret)OPENCLAW_STATE_DIR=/data/.openclaw(recommended)OPENCLAW_WORKSPACE_DIR=/data/workspace(recommended)
4
Enable public networking
Under Public Networking, enable HTTP Proxy for the service on port
8080.5
Connect
Find your public URL in Railway -> your service -> Settings -> Domains — either a generated domain (often
https://<something>.up.railway.app) or your attached custom domain.Open https://<your-railway-domain>/openclaw and connect using the configured shared secret. The template uses OPENCLAW_GATEWAY_TOKEN by default; if you replace it with password auth, use that password instead.What you get
- Hosted OpenClaw Gateway + Control UI
- Persistent storage via the Railway Volume (
/data), soopenclaw.json, per-agentauth-profiles.json, channel/provider state, sessions, and workspace survive redeploys
Connect a channel
Use the Control UI at/openclaw or run openclaw onboard via Railway’s shell for channel setup instructions:
- Discord
- Telegram (fastest — just a bot token)
- All channels
Backups and migration
Export your state, config, auth profiles, and workspace:Next steps
- Set up messaging channels: Channels
- Configure the Gateway: Gateway configuration
- Keep OpenClaw up to date: Updating