Deploy OpenDots

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

Deploy OpenDots

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

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

ServiceImagePortVolume
appxiaosong233/opendots-railway:latest4310-

Template Content

More templates in this category

View Template
Chat Chat
Chat Chat, your own unified chat and search to AI platform.

okisdev
116
View Template
stella
Self-host stella with web, API, Postgres, Redis, and object storage.

Jan Kubica
7
View Template
Hermes Agent | OpenClaw Alternative with Dashboard
Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

codestorm
82