Deploy opendots

Persistent AI coworker workspace with chat, research, pages, and calls

Deploy opendots

Deploy and Host OpenDots on Railway

OpenDots is a self-hosted AI coworker workspace for persistent specialist agents that move between chat, calls, research, pages, and Slack. It provides a browser UI, local SQLite workspace state, CopilotKit Intelligence integration, model-provider support, scheduled work, and optional browser/computer integrations for building personal agent workflows.

Deploy on Railway

About Hosting OpenDots on Railway

Railway runs the Docker image as a single HTTP service with a generated HTTPS domain and a persistent volume for the SQLite workspace. The template uses a pre-built Docker Hub image, so deployment does not depend on GitHub source builds or Railpack detection.

Tech Stack

  • Node.js 24
  • React, Vite, and TypeScript
  • Hono and @hono/node-server
  • CopilotKit, AG-UI, and TanStack AI integrations
  • SQLite database stored on the Railway volume
  • Docker Hub image: xiaosong233/opendots-railway:latest

Why Deploy OpenDots on Railway

Railway provides one-click project creation, managed HTTPS, persistent volumes, environment variables, and simple deployment visibility. The Docker-only template starts quickly and keeps the application state attached to the service without requiring a separate database service.

Common Use Cases

  • Personal AI coworker and specialist-agent workspaces
  • Research, drafting, review, and knowledge-page workflows
  • Scheduled background tasks tied to agent conversations
  • Model-provider experiments with an OpenAI-compatible endpoint
  • Optional voice, Slack, browser, and computer integrations

Deployment Notes

  • The app listens on container port 4310; Railway routing is configured through PORT=4310.
  • Template variables include HOST=0.0.0.0, PORT=4310, DATABASE_PATH=/data/opendots.sqlite, OWNER_ID=opendots-owner, OWNER_TOKEN=${{secret(32)}}, OPENAI_BASE_URL=https://api.openai.com/v1, WEB_SEARCH_PROVIDER=parallel, and VOICE_NAME=marin.
  • OWNER_TOKEN is generated as a Railway secret and protects API requests with bearer authentication; there is no separate username/password login in the upstream application.
  • The /data volume stores /data/opendots.sqlite; it is required for durable pages, settings, and workspace state.
  • Configure INTELLIGENCE_API_KEY, OPENAI_API_KEY, and OPENAI_MODEL after deployment to enable live agent conversations. The UI is usable in setup state without these optional provider credentials.
  • Browser, voice, Slack, and computer features require their corresponding upstream integrations and secrets. Optional variables include INTELLIGENCE_API_URL, INTELLIGENCE_WS_URL, VOICE_API_KEY, VOICE_MODEL, BROWSER_URL, BROWSER_SECRET, SLACK_CHANNEL_NAME, SLACK_TEAM_ID, SLACK_USER_IDS, COMPUTER_SUPERVISOR_URL, COMPUTER_SUPERVISOR_TOKEN, COMPUTER_TOKEN, and PARALLEL_API_KEY.

Dependencies for OpenDots on Railway

OpenDots is a single-service template. It depends on its Docker image, the attached /data volume, and optional external CopilotKit Intelligence and model-provider APIs configured through environment variables.

Deployment Dependencies

ServiceImagePortVolume
appxiaosong233/opendots-railway:latest4310/data

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