{
  "title": "Deploy on Northflank",
  "content": "Source: https://docs.openclaw.ai/northflank\n\nDeploy OpenClaw on Northflank with a one-click template and finish setup in your browser.\nThis is the easiest “no terminal on the server” path: Northflank runs the Gateway for you,\nand you configure everything via the `/setup` web wizard.\n\n## How to get started\n\n1. Click [Deploy OpenClaw](https://northflank.com/stacks/deploy-openclaw) to open the template.\n2. Create an [account on Northflank](https://app.northflank.com/signup) if you don’t already have one.\n3. Click **Deploy OpenClaw now**.\n4. Set the required environment variable: `SETUP_PASSWORD`.\n5. Click **Deploy stack** to build and run the OpenClaw template.\n6. Wait for the deployment to complete, then click **View resources**.\n7. Open the OpenClaw service.\n8. Open the public OpenClaw URL and complete setup at `/setup`.\n9. Open the Control UI at `/openclaw`.\n\n* Hosted OpenClaw Gateway + Control UI\n* Web setup wizard at `/setup` (no terminal commands)\n* Persistent storage via Northflank Volume (`/data`) so config/credentials/workspace survive redeploys\n\n1. Visit `https://<your-northflank-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**.\n5. Open the Control UI at `https://<your-northflank-domain>/openclaw`\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`)",
  "code_samples": [],
  "headings": [
    {
      "level": "h2",
      "text": "How to get started",
      "id": "how-to-get-started"
    },
    {
      "level": "h2",
      "text": "What you get",
      "id": "what-you-get"
    },
    {
      "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"
    }
  ],
  "url": "llms-txt#deploy-on-northflank",
  "links": []
}