{
  "title": "Deploy on Railway",
  "content": "Source: https://docs.openclaw.ai/railway\n\nDeploy OpenClaw on Railway with a one-click template and finish setup in your browser.\nThis is the easiest “no terminal on the server” path: Railway runs the Gateway for you,\nand you configure everything via the `/setup` web wizard.\n\n## Quick checklist (new users)\n\n1. Click **Deploy on Railway** (below).\n2. Add a **Volume** mounted at `/data`.\n3. Set the required **Variables** (at least `SETUP_PASSWORD`).\n4. Enable **HTTP Proxy** on port `8080`.\n5. Open `https://<your-railway-domain>/setup` and finish the wizard.\n\n<a href=\"https://railway.com/deploy/clawdbot-railway-template\">\n  Deploy on Railway\n</a>\n\nAfter deploy, find your public URL in **Railway → your service → Settings → Domains**.\n\n* give you a generated domain (often `https://<something>.up.railway.app`), or\n* use your custom domain if you attached one.\n\n* `https://<your-railway-domain>/setup` — setup wizard (password protected)\n* `https://<your-railway-domain>/openclaw` — Control UI\n\n* Hosted OpenClaw Gateway + Control UI\n* Web setup wizard at `/setup` (no terminal commands)\n* Persistent storage via Railway Volume (`/data`) so config/credentials/workspace survive redeploys\n* Backup export at `/setup/export` to migrate off Railway later\n\n## Required Railway settings\n\n### Public Networking\n\nEnable **HTTP Proxy** for the service.\n\n### Volume (required)\n\nAttach a volume mounted at:\n\nSet these variables on the service:\n\n* `SETUP_PASSWORD` (required)\n* `PORT=8080` (required — must match the port in Public Networking)\n* `OPENCLAW_STATE_DIR=/data/.openclaw` (recommended)\n* `OPENCLAW_WORKSPACE_DIR=/data/workspace` (recommended)\n* `OPENCLAW_GATEWAY_TOKEN` (recommended; treat as an admin secret)\n\n1. Visit `https://<your-railway-domain>/setup` and enter your `SETUP_PASSWORD`.\n2. Choose a model/auth provider and paste your key.\n3. (Optional) Add Telegram/Discord/Slack tokens.\n4. Click **Run setup**.\n\nIf Telegram DMs are set to pairing, the setup wizard can approve the pairing code.\n\n## Getting chat tokens\n\n### Telegram bot token\n\n1. Message `@BotFather` in Telegram\n2. Run `/newbot`\n3. Copy the token (looks like `123456789:AA...`)\n4. Paste it into `/setup`\n\n### Discord bot token\n\n1. Go to [https://discord.com/developers/applications](https://discord.com/developers/applications)\n2. **New Application** → choose a name\n3. **Bot** → **Add Bot**\n4. **Enable MESSAGE CONTENT INTENT** under Bot → Privileged Gateway Intents (required or the bot will crash on startup)\n5. Copy the **Bot Token** and paste into `/setup`\n6. Invite the bot to your server (OAuth2 URL Generator; scopes: `bot`, `applications.commands`)\n\n## Backups & migration\n\nDownload a backup at:\n\n* `https://<your-railway-domain>/setup/export`\n\nThis exports your OpenClaw state + workspace so you can migrate to another host without losing config or memory.",
  "code_samples": [],
  "headings": [
    {
      "level": "h2",
      "text": "Quick checklist (new users)",
      "id": "quick-checklist-(new-users)"
    },
    {
      "level": "h2",
      "text": "One-click deploy",
      "id": "one-click-deploy"
    },
    {
      "level": "h2",
      "text": "What you get",
      "id": "what-you-get"
    },
    {
      "level": "h2",
      "text": "Required Railway settings",
      "id": "required-railway-settings"
    },
    {
      "level": "h3",
      "text": "Public Networking",
      "id": "public-networking"
    },
    {
      "level": "h3",
      "text": "Volume (required)",
      "id": "volume-(required)"
    },
    {
      "level": "h3",
      "text": "Variables",
      "id": "variables"
    },
    {
      "level": "h2",
      "text": "Setup flow",
      "id": "setup-flow"
    },
    {
      "level": "h2",
      "text": "Getting chat tokens",
      "id": "getting-chat-tokens"
    },
    {
      "level": "h3",
      "text": "Telegram bot token",
      "id": "telegram-bot-token"
    },
    {
      "level": "h3",
      "text": "Discord bot token",
      "id": "discord-bot-token"
    },
    {
      "level": "h2",
      "text": "Backups & migration",
      "id": "backups-&-migration"
    }
  ],
  "url": "llms-txt#deploy-on-railway",
  "links": []
}