Deploy Open Duet
Open Dots (OpenDots): private OpenDuet agents, routines, Claude and Codex.
Open Duet (Open Dots)
Just deployed
/data
Deploy and Host Open Duet on Railway
Open Duet, formerly Open Dots / OpenDots, is an experimental self-hosted personal AI workspace. Manage named agents, conversations, persistent memory, recurring routines and approval prompts from its native web interface, with optional Telegram integration. This community template includes Claude Code and Codex engines and the upstream OpenAI-compatible chat configuration screen.
About Hosting Open Duet
The template deploys one protected, single-owner service with a persistent /data volume. The first owner is initialized automatically through the application's own authentication storage. After deployment, open the generated HTTPS domain and sign in using APP_PASSWORD from the Railway service variables. No model API key is required to deploy or sign in.
In Settings → Engines, configure an OpenAI-compatible API endpoint, model and optional key for chat. Alternatively, sign in to the installed Claude Code or Codex CLI in the service runtime. The app reports unavailable or unconfigured engines without pretending they are ready. Model billing is separate from Railway hosting.
The SQLite database, workspaces, attachments, decision log and engine sign-ins are stored under /data. A generated ENCRYPTION_SECRET supplies a stable credential-encryption key. Keep it unchanged and back it up separately. Restarting preserves an existing owner rather than resetting their password.
Common Use Cases
- A private personal AI workspace with named assistants and persistent context.
- Recurring routines and scheduled assistant tasks.
- Human approval prompts before enabled workspace tools run.
- Optional Telegram access using your own bot credentials.
- Chat with a configured OpenAI-compatible endpoint, Claude Code or Codex engine.
Dependencies for Open Duet Hosting
- One Railway app service built from the public
XavTo/Open-Duet-Railwayrepository. - One persistent volume at
/dataand one replica. - Generated
APP_PASSWORDand stableENCRYPTION_SECRETvariables. - A configured model engine to run AI requests; no model key is required for initial deployment.
Deployment Dependencies
Railway provides HTTPS routing, service variables and the persistent volume. This template uses SQLite in the upstream single-owner container layout, without an external database or Docker daemon.
Implementation Details
Caddy listens on 0.0.0.0:8000 and forwards to the backend on loopback, preserving secure HTTPS session cookies and streaming responses behind Railway's edge. /api/v1/health is the native readiness endpoint. Startup migrates the database, initializes a missing owner and runs the processes as the unprivileged application user. The image pins upstream commit 65b5f05e95377d247fbfb087dea52cc0bd4dc9bc, Claude Code 2.1.308 and Codex 0.163.0. Host and origin checks use the generated domain. When adding a custom domain, update OPEN_DOTS_PUBLIC_URL, FRONTEND_ORIGINS and TRUSTED_HOSTS together. Keep healthcheck.railway.app in the allowed hosts for Railway's readiness checks.
Frequently Asked Questions
Is Open Dots the same project? The linked upstream repository redirects from Open Dots to Open Duet. Both names refer to this project's history.
Can I add a model key inside the product? Yes, the native OpenAI-compatible engine configuration accepts an endpoint, model and optional API key. That engine is chat-only. Claude/Codex CLI engines have their own authentication flow.
Does this include an isolated Docker computer for every agent? No. Railway's standard container does not provide a Docker socket. The optional per-agent Docker-computer feature is unavailable here. Enabled engine tools run in this single-owner service and remain subject to upstream approval prompts.
Is this production-proven? Upstream labels server hosting experimental. Persistent storage and protected bootstrap make deployment easier, but do not remove that status or guarantee every third-party integration.
Why Deploy Open Duet on Railway?
Railway handles HTTPS, managed variables, persistent volumes, health checks and deployment logs. This template prepares the private owner account and engine binaries so users can configure a model after launch. It is a community deployment, not an official Railway or upstream integration.
Source: Open Duet. Railway recipe and bootstrap. Apache-2.0.
Template Content
Open Duet (Open Dots)
XavTo/Open-Duet-Railway