---
title: "Deploy OpenClaw — Personal AI Assistant"
description: "Let your AI assistant handle the work, ready in just 1 click."
category: "AI/ML"
url: https://railway.com/deploy/openclaw-ai-assistant
---

# Deploy OpenClaw — Personal AI Assistant

Let your AI assistant handle the work, ready in just 1 click.

**[Deploy OpenClaw — Personal AI Assistant on Railway](https://railway.com/template/openclaw-ai-assistant)**

- **Creator:** INF Labs
- **Category:** AI/ML
- **Total deploys:** 1

## Template content

### openclaw https://openclaw.ai/favicon.svg

- **Image:** ghcr.io/openclaw/openclaw:latest
- **Start command:** `/bin/sh -c 'openclaw config set gateway.mode local && openclaw config set gateway.controlUi.allowedOrigins "[\"https://${RAILWAY_PUBLIC_DOMAIN}\"]" && exec node dist/index.js gateway --bind lan --port 8080'`
- **Public domain:** Yes

## Documentation

# Deploy and Host OpenClaw AI Assistant on Railway

OpenClaw is a self-hosted personal AI assistant designed to actually get things done. It connects AI agents to the communication channels you already use, including Telegram, WhatsApp, Slack, Discord, and more, while keeping the Gateway, configuration, workspace, and persistent assistant state under your control.

## About Hosting OpenClaw AI Assistant

This template deploys the **OpenClaw Gateway and Control UI** with persistent storage in a simple single-service setup.

OpenClaw acts as the always-on control plane for your personal AI assistant. You can connect AI providers, configure agents, manage sessions, install plugins and skills, and connect messaging channels from the OpenClaw ecosystem.

A Railway persistent volume mounted at `/data` stores OpenClaw configuration, authentication profiles, provider and channel state, sessions, and workspace data so your assistant survives restarts and redeployments.

Once deployed, access OpenClaw using the public domain generated by Railway.

## Common Use Cases

* Run your own always-on personal AI assistant
* Connect AI agents to Telegram, WhatsApp, Discord, Slack, and other channels
* Automate repetitive personal and productivity tasks
* Manage AI conversations and sessions from a web interface
* Connect external AI providers and models
* Use tools, plugins, MCP servers, and skills to extend your assistant
* Build agent-driven workflows and automations
* Maintain a persistent AI workspace and assistant state
* Self-host an AI assistant while keeping control of your infrastructure

OpenClaw provides an agent-focused architecture with tools, sessions, memory, plugins, multiple communication channels, and support for advanced AI workflows.

## OpenClaw vs Other AI Assistants

| Platform        | Self-Hosted       | Messaging Channels          | Tools / Actions | Persistent Workspace | Best Fit                                          |
| --------------- | ----------------- | --------------------------- | --------------- | -------------------- | ------------------------------------------------- |
| **OpenClaw**    | ✅ Yes             | ✅ Multiple                  | ✅ Yes           | ✅ Yes                | Personal AI assistant with infrastructure control |
| **ChatGPT**     | ❌ Managed service | ⚠️ Platform-specific        | ✅ Yes           | ✅ Managed            | General-purpose hosted AI assistant               |
| **Claude**      | ❌ Managed service | ⚠️ Platform-specific        | ✅ Yes           | ✅ Managed            | Reasoning, coding, and knowledge work             |
| **Open WebUI**  | ✅ Yes             | ❌ Primarily web UI          | ✅ Extensible    | ✅ Yes                | Self-hosted LLM chat interface                    |
| **AnythingLLM** | ✅ Yes             | ⚠️ Primarily application UI | ✅ Yes           | ✅ Yes                | Knowledge bases, RAG, and team AI workspaces      |

OpenClaw differs from a traditional AI chat interface because its Gateway is designed around an **always-on personal assistant** that can operate through messaging channels, use tools, manage sessions, and interact with external systems.

## Dependencies for OpenClaw AI Assistant Hosting

* **OpenClaw Gateway** — always-on control plane for agents, channels, tools, and sessions
* **OpenClaw Control UI** — web interface for configuring and interacting with the assistant
* **Railway Persistent Volume** — stores configuration, sessions, authentication profiles, and workspace data
* **AI Provider** — user-configured model provider such as OpenAI, Anthropic, Gemini, or another supported provider
* **Gateway Token** — generated secret used to authenticate access to the OpenClaw Gateway

No external PostgreSQL, MySQL, or Redis service is required for this deployment.

### Deployment Dependencies

* OpenClaw Documentation: https://docs.openclaw.ai/
* OpenClaw Railway Deployment: https://docs.openclaw.ai/install/railway
* OpenClaw Docker Deployment: https://docs.openclaw.ai/install/docker
* OpenClaw Gateway Documentation: https://docs.openclaw.ai/gateway
* OpenClaw GitHub: https://github.com/openclaw/openclaw

## First-Time Setup

After deployment, OpenClaw requires a **one-time browser/device pairing** before the Control UI can connect to the Gateway.

This is a security feature. You only need to approve a browser/device once unless its local identity is removed or reset.

### 1. Open Your OpenClaw URL

Open the public URL generated for the OpenClaw service from the Railway **Deployments** page.
You will see the OpenClaw Gateway Dashboard.

![OpenClaw](https://imgur.com/AFZ4Kxt.png)

### 2. Get Your Gateway Token

In Railway:

1. Open the **OpenClaw** service.
2. Go to **Variables**.
3. Find `OPENCLAW_GATEWAY_TOKEN`.
4. Copy its value.

![OpenClaw](https://imgur.com/gLUvdxA.png)


Return to the OpenClaw Gateway Dashboard and enter:

* **WebSocket URL** — normally detected automatically
* **Gateway Token** — paste the value of `OPENCLAW_GATEWAY_TOKEN`
* **Password** — optional; leave blank unless you configured one

Then click **Connect**.

### 3. Approve the Browser Device

On the first connection attempt, the message will change to:

**Device pairing required**

![OpenClaw](https://imgur.com/JTw1z2A.png)

The page will display a command containing a unique pairing request ID, for example:

```bash
openclaw devices approve b7442543-1ebf-4863-9d84-1cf74548bab4
```

Copy the request ID or the complete approval command.

### 4. Open the Railway Console

Go back to Railway:

1. Open the **OpenClaw** service.
2. Select the **Console** tab.

Optionally, list pending device requests:

```bash
openclaw devices list
```

This shows pending pairing requests and their request IDs.

Then approve the request shown in the OpenClaw dashboard:

```bash
openclaw devices approve 
```

Example:

```bash
openclaw devices approve b7442543-1ebf-4863-9d84-1cf74548bab4
```

![OpenClaw](https://imgur.com/XVSN3md.png)

A successful approval should return an `Approved` message.

### 5. Reload OpenClaw

Return to your OpenClaw browser tab and reload the page.

If necessary, click **Connect** again.

Your browser is now paired with the Gateway and the full OpenClaw dashboard should become available.

![OpenClaw](https://imgur.com/bCD9UHP.png)

**Congrats — your OpenClaw AI assistant is ready. 🎉**

From the dashboard you can now configure:

* AI models and providers
* Telegram, Discord, Slack, WhatsApp, and other channels
* AI agents
* Tools and permissions
* MCP integrations
* Automation
* Skills and plugins
* Sessions and workspaces

## Implementation Details

This template uses a minimal OpenClaw deployment:

```text
                    ┌─────────────────┐
                    │      User       │
                    └────────┬────────┘
                             │
                             ▼
                  Railway HTTPS Proxy
                         Port 8080
                             │
                             ▼
                    ┌─────────────────┐
                    │    OpenClaw     │
                    │     Gateway     │
                    │                 │
                    │  + Control UI   │
                    └────────┬────────┘
                             │
                             ▼
                    ┌─────────────────┐
                    │ Railway Volume  │
                    │      /data      │
                    └─────────────────┘
```

The Gateway listens behind Railway's HTTPS proxy while persistent application state and workspace data are stored under `/data`.

The deployment automatically configures the Railway public domain as an allowed Control UI origin so the browser can establish a secure WebSocket connection to the Gateway.

## Persistent Storage

This template mounts a Railway volume at:

```text
/data
```

Persistent data includes:

* OpenClaw configuration
* Agent authentication profiles
* Provider configuration
* Messaging channel state
* Device pairing information
* Sessions
* Workspace files

This prevents important assistant state from being lost when the service is restarted or redeployed.

## Accessing OpenClaw

After deployment, open the public domain shown on the OpenClaw service in Railway.

Authenticate using the generated:

```text
OPENCLAW_GATEWAY_TOKEN
```

The first browser connection requires the **one-time device pairing** described above.

After pairing, you can use the OpenClaw dashboard normally and configure providers, models, channels, agents, tools, and other features directly from the UI.

## Troubleshooting

### Device Pairing Required

If the dashboard displays:

```text
Device pairing required
```

open the Railway Console and run:

```bash
openclaw devices list
```

Then approve the pending request:

```bash
openclaw devices approve 
```

Reload the dashboard afterward.

### Browser Origin Not Allowed

The template automatically configures the Railway public domain as an allowed Control UI origin.

If you manually change the OpenClaw domain later, make sure the new HTTPS origin is also added to:

```text
gateway.controlUi.allowedOrigins
```

### Gateway Token

If authentication fails, verify that the token entered in the Gateway Dashboard exactly matches:

```text
OPENCLAW_GATEWAY_TOKEN
```

from the Railway service variables.

## Why Deploy OpenClaw AI Assistant on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying OpenClaw AI Assistant on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


## Similar templates

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [stella](https://railway.com/deploy/stella) — Self-host stella with web, API, Postgres, Redis, and object storage.
- [Hermes Agent | OpenClaw Alternative with Dashboard](https://railway.com/deploy/hermes-agent-or-openclaw-alternative-wit) — Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

Open this page in a browser: https://railway.com/deploy/openclaw-ai-assistant
