---
title: "Deploy OpenClaw Slack"
description: "Team AI assistant bridged into Slack via OpenClaw"
category: "AI/ML"
url: https://railway.com/deploy/deploy-openclaw-slack-assistant
---

# Deploy OpenClaw Slack

Team AI assistant bridged into Slack via OpenClaw

**[Deploy OpenClaw Slack on Railway](https://railway.com/template/deploy-openclaw-slack-assistant)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/deploy-openclaw-slack-assistant/manifest.json

- **Creator:** onepush
- **Category:** AI/ML

## Template content

### OpenClaw

- **Image:** openclaw/openclaw:2026.10.3-browser@sha256:c84c4c37e7b9dc02dd869c9699ba0c4fb20ff821febe4b789bb2f8f4bfd9c8a3
- **Start command:** `/bin/sh -c "set -ef; D=${RAILWAY_VOLUME_MOUNT_PATH:-/data}; mkdir -p $D/.openclaw $D/workspace $D/.config/openclaw; if [ ! -L /home/node/.config/openclaw ]; then rm -rf /home/node/.config/openclaw; ln -s $D/.config/openclaw /home/node/.config/openclaw; fi; find $D ! -user 1000 -exec chown -h 1000:1000 {} +; chmod 700 $D/.openclaw; cd /app; if [ ${#OPENCLAW_RAILWAY_CONFIG} -gt 0 ]; then setpriv --reuid=1000 --regid=1000 --init-groups env HOME=/home/node USER=node node openclaw.mjs config set --batch-json $OPENCLAW_RAILWAY_CONFIG || echo railway-start: config batch failed; fi; exec setpriv --reuid=1000 --regid=1000 --init-groups env HOME=/home/node USER=node tini -s -- node /app/docker-entrypoint.mjs node openclaw.mjs gateway --bind lan --port 18789 --allow-unconfigured"`
- **Health check:** /healthz
- **Public domain:** Yes

## Documentation

# Deploy and Host self hosted OpenClaw Slack (Self-Hosted AI Assistant Gateway) on Railway

Deploys OpenClaw Gateway as a Slack assistant. Create app from manifest, add App-Level Token with connections:write, install, set SLACK_APP_TOKEN and SLACK_BOT_TOKEN. Then enable channels.slack.

## About Hosting OpenClaw Slack open-source software on Railway (self hosted OpenClaw Slack template)

Hosting OpenClaw Slack on Railway runs the OpenClaw Gateway as one container with session state, channel configs, and pairings on a persistent /data volume. You still create the Slack app from the OpenClaw manifest and set the tokens as Railway variables.

## Why Deploy OpenClaw Slack, the ChatGPT alternative on Railway (Railway Free Trial)

ChatGPT is a closed SaaS, but OpenClaw Slack runs on your own Railway service. Socket Mode means Slack connects out, no public webhook to babysit.

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 Slack 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.

### Railway vs Other Hosting Providers and VPS for OpenClaw Slack self hosting

Socket Mode connects outbound, so there is no public webhook to run; Railway adds the /data volume, TLS for the Control UI and restarts.

| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | Built-in domain, TLS, and /data volume; set SLACK_APP_TOKEN and SLACK_BOT_TOKEN | A droplet; you handle Nginx, certs, and volume mounts yourself |
| AWS | One service with proxy and secrets; no IAM or VPC config for Socket Mode | EC2 or EKS; full control but heavy networking and IAM setup |
| Hetzner | Auto restarts and easy config patches; no patching or firewall fiddling | Cheap VPS or bare metal; you maintain Docker, firewall, and backups |

## Common Use Cases for hosted OpenClaw Slack

- **Team helper:** Invite it to an allowlisted channel, add its stable channel ID, and require mentions, so the team can ask questions without leaving Slack.
- **Private DM assistant:** DM pairing is default, so only approved users can talk to the bot one-on-one. Approve each sender with `openclaw pairing approve slack CODE`.
- **Thread summaries and drafts:** Ask it to summarize a messy thread or draft a reply. Per-thread sessions keep follow-up context, so it remembers what was decided.
- **File handling:** Drop a file in a channel and ask the bot to extract text, explain a spreadsheet, or turn a doc into action items.
- **Per-channel system prompts and tools:** Set a support-channel prompt that demands ticket-style answers, and restrict tools per channel so #dev gets coding tools and #marketing does not.

## Dependencies for OpenClaw Slack Docker hosted on Railway

Running OpenClaw Slack on Railway uses the official OpenClaw Docker image, one service on port 18789, a /data volume, and Slack credentials plus OPENCLAW_GATEWAY_TOKEN. The container runs as a non-root user after chowning /data; health checks hit /healthz.

### Deployment Dependencies for Managed OpenClaw Slack Service (AI Assistant)

Railway sets OPENCLAW_GATEWAY_PORT=18789, OPENCLAW_GATEWAY_BIND=lan; OPENCLAW_GATEWAY_TOKEN is generated. Set SLACK_APP_TOKEN (connections:write) and SLACK_BOT_TOKEN. SLACK_* vars are fallbacks; Slack won't start until a channels.slack block exists.

### Implementation Details for OpenClaw Slack (Using OpenClaw official docker image)

The start command chowns /data, applies OPENCLAW_RAILWAY_CONFIG, then runs openclaw gateway --bind lan --port 18789 as the node user. State and workspace live under /data, so redeploys keep pairing data. Socket Mode is default: outbound WebSocket, no inbound webhook.

## How does OpenClaw Slack compare against other AI assistant platforms

### OpenClaw vs Hermes Agent (Hermes Agent Alternative)

- **Self-hosted Slack bridge:** OpenClaw runs your Gateway and connects Slack via Socket Mode on your infra. Hermes Agent also has a Slack gateway, but its center is the skills and learning loop.
- **Channel controls:** OpenClaw has DM pairing, channel allowlists by ID, and mention gating. Hermes focuses on skill acquisition, not per-channel Slack policy.
- **Where Hermes wins:** It may offer a richer skill system and can import some OpenClaw data, but OpenClaw is more Slack-ready day one.

### OpenClaw vs Slack AI (Slack AI Alternative)

- **Own your model:** OpenClaw uses any provider you configure; Slack AI is closed and Slack-hosted, no bring-your-own model.
- **Transparent behavior:** You see pairings, per-channel prompts, and tools. Slack AI is a black box inside Slack's service.
- **Where Slack AI wins:** Zero deployment and no bot tokens; it just appears in your workspace. OpenClaw requires hosting and app setup.

### OpenClaw vs n8n AI agents (n8n AI agents Alternative)

- **Agent vs workflow:** OpenClaw is conversation-first with channels; n8n is workflow automation with AI nodes, not an always-on Slack teammate.
- **Slack depth:** OpenClaw has DMs, threads, /openclaw, reactions, and per-channel config out of the box. n8n requires building each response path.
- **Where n8n wins:** Complex multi-step automations and third-party integrations are its strength; OpenClaw is not a visual workflow builder.

### OpenClaw vs ChatGPT (ChatGPT Alternative)

- **Where the model runs:** OpenClaw keeps gateway and data on Railway, you choose the model. ChatGPT is a closed SaaS assistant.
- **Slack-native access:** OpenClaw is a bot in DMs and channels with pairing and allowlists. ChatGPT lacks a self-hosted Slack app.
- **Where ChatGPT wins:** No setup, no tokens, no hosting; just log in and chat. OpenClaw demands infrastructure and Slack admin work.

## How to use OpenClaw Slack (the OSS AI assistant)?

1. Open the public Railway domain, paste OPENCLAW_GATEWAY_TOKEN into the Control UI settings.
2. In the Railway service shell run `openclaw devices approve` to approve the browser device.
3. Add a model provider key in Settings or as an env var.
4. At api.slack.com/apps create an app from the OpenClaw manifest with Socket Mode enabled.
5. Generate an App-Level Token with connections:write, install the app, and copy the Bot User OAuth Token.
6. Set SLACK_APP_TOKEN and SLACK_BOT_TOKEN as Railway variables.
7. Apply a channels.slack patch with `openclaw config patch` (try `--dry-run` first), then restart the service.
8. DM the bot, approve pairing with `openclaw pairing approve slack CODE`.
9. Invite it to a channel and allowlist that channel ID under channels.slack.channels.

## How to self host OpenClaw Slack on other VPS Services (OpenClaw self hosting guide)

### Clone the Repository

You don't need to build from source; pull the official image:

```
docker pull openclaw/openclaw:latest
```

### Install Dependencies

Without Docker, you need Node 24.16+ or 26.1+. Then:

```
npm install -g openclaw@latest
openclaw onboard --install-daemon
```

### Configure Environment Variables

Set SLACK_APP_TOKEN and SLACK_BOT_TOKEN, then apply the Slack block:

```
openclaw config patch --file slack.socket.patch.json5 --dry-run
```

Remove --dry-run once the diff is right. The block needs enabled true, mode socket, and both tokens.

### Start the OpenClaw Slack Application

Install the Slack plugin and start the Gateway:

```
openclaw plugins install @openclaw/slack
openclaw gateway --bind lan --port 18789 --allow-unconfigured
```

That is a lot of moving parts. Railway handles the volume, proxy, health check, and restart policy for you, so you can go straight to pasting the gateway token into the Control UI.

## Official Pricing of OpenClaw Slack (OpenClaw pricing)

OpenClaw is MIT-licensed, so the Slack bridge itself is free: no seats, no per-message fees, no enterprise add-on. There is no OpenClaw paid plan to buy; Slack app setup costs nothing. Start on Railway's $5 trial, then pay only for what the container actually consumes.

## OpenClaw Slack cloud vs self hosted comparison (Pricing, features, costs, and more)

There is no OpenClaw-hosted cloud plan; OpenClaw Slack is the same open-source gateway wherever it runs.

### Monthly cost of self hosting OpenClaw Slack on Railway

Expect about $10 to $25 per month on Railway for the browser image with Chromium, which needs 1 to 2 GB of RAM. Model API usage is extra and usually dominates cost. The $5 Railway trial covers early Socket Mode tests, not sustained Slack traffic.

### System Requirements for Hosting OpenClaw Slack on a VPS

Give the container at least 1 GB RAM, ideally 2 GB if you use the browser variant for Slack files or screenshots. Non-Docker installs need Node 24.16+ or 26.1+.

## Frequently Asked Questions (FAQs)

### Should I use Socket Mode or an HTTP Request URL on Railway?

Socket Mode is default; no public webhook or Signing Secret needed. Use HTTP Request URL only if Slack must post to /slack/events; then add the Signing Secret.

### Why does the bot ignore channel messages?

Mention-gated by default. Invite the app, @-mention it, or set requireMention false for that channel ID in channels.slack.channels.

### Why are DMs ignored?

DM policy defaults to pairing. Run openclaw pairing approve slack CODE with the code the bot sends.

### Can it post as a real person?

Yes, add a userToken as postAs identity. Without it, the bot posts as the Slack app bot.

### Does it work in group DMs?

Only if the app joined from the start. Existing group DMs are invisible; convert to a private channel and invite the app.

### Which Slack scopes does the app need?

Use the OpenClaw manifest. Recommended includes chat:write, channels:history, groups:history, reactions:write, files:write, pins:write; minimal drops files, reactions, pins and group DM scopes.


## 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/deploy-openclaw-slack-assistant
