One-click deploy
Deploy on RailwaySet 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)
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