---
title: "Deploy OpenDots"
description: "Self-host AI coworkers with chat, pages, calls, and Slack"
category: "AI/ML"
url: https://railway.com/deploy/opendots-3
---

# Deploy OpenDots

Self-host AI coworkers with chat, pages, calls, and Slack

**[Deploy OpenDots on Railway](https://railway.com/template/opendots-3)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/opendots-3/manifest.json

- **Creator:** kmaki's Projects
- **Category:** AI/ML

## Template content

### app

- **Image:** xiaosong233/opendots-railway:latest
- **Public domain:** Yes

## Documentation

# Deploy and Host OpenDots on Railway

OpenDots is a self-hosted workspace for persistent AI coworkers. Define specialist Dots, organize work in Spaces and pages, and continue conversations across web chat, voice calls, Slack, and scheduled tasks. It combines CopilotKit, AG-UI, and an OpenAI-compatible model layer in a focused browser interface for private, customizable agent workflows.

[![Deploy on Railway](https://railway.com/button.svg)](https://railway.com/deploy/opendots-3)

## About Hosting OpenDots on Railway

Railway runs the published Docker image as a single HTTP service with an automatically generated HTTPS domain. The one-service deployment includes the complete browser UI and API; optional browser, Slack, voice, and computer integrations can be configured later through environment variables or companion services.

## Tech Stack

- Docker image built from Node.js 24 and the OpenDots application
- React and Vite frontend
- Hono and Node.js backend
- SQLite metadata store
- CopilotKit, AG-UI, TanStack AI, and OpenAI-compatible model providers

## Why Deploy OpenDots on Railway

Railway provides one-click provisioning, managed HTTPS, simple environment-variable configuration, container logs, and straightforward scaling for a self-hosted AI workspace. The Docker-only template keeps deployments reproducible while leaving model and integration credentials under the deployer's control.

## Common Use Cases

Use OpenDots to create specialist research and writing coworkers, manage persistent workspaces and pages, run scheduled research tasks, continue agent conversations across web chat and Slack, or add optional realtime voice and isolated computer workflows.

## Deployment Notes

- The app listens on container port `4310`; `PORT=4310` is preconfigured for Railway routing.
- The template uses the image's native entrypoint and does not override `startCommand`.
- `OWNER_TOKEN` is generated automatically with Railway's `${{secret()}}` function. Enter it in the OpenDots unlock prompt; OpenDots does not provide a built-in username/password login.
- Set `INTELLIGENCE_API_KEY`, or set `OPENAI_API_KEY` and `OPENAI_MODEL`, to enable agent conversations. `OPENAI_BASE_URL` defaults to `https://api.openai.com/v1`.
- `APP_ORIGIN` should match the generated HTTPS origin; use `https://${{RAILWAY_PUBLIC_DOMAIN}}` when customizing the deployment.
- The one-service template does not mount a volume because the upstream image runs as a non-root user and Railway's initial volume ownership prevents SQLite startup. Application metadata under `/data` is therefore ephemeral across replacement deployments.
- `WEB_SEARCH_PROVIDER=parallel` is enabled by default; `PARALLEL_API_KEY` is optional for light anonymous use and higher limits may require a key.
- Browser, Slack, voice, and per-Dot computer integrations are optional and require their respective upstream services or credentials.

## Dependencies for OpenDots on Railway

The template is intentionally a single-service deployment: the app serves both the frontend and API. External model, Intelligence, Slack, voice, browser, or computer services are optional integrations configured after deployment.

### Deployment Dependencies

| Service | Image | Port | Volume |
|---------|-------|------|--------|
| app | xiaosong233/opendots-railway:latest | 4310 | - |


## 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/opendots-3
