
Deploy Octop
Tencent's multi-user, multi-agent AI assistant with Postgres
Just deployed
/var/lib/postgresql/data
Just deployed
/data/.octop
Deploy and Host self hosted Octop (Multi-User, Multi-Agent AI Assistant) on Railway
Octop is TencentCloud's MIT-licensed, self-hosted AI assistant for multiple users and agents, running in one process.
About Hosting Octop open-source software on Railway (self hosted Octop template)
Octop is MIT-licensed open-source software from TencentCloud, and running it yourself means your accounts, agent workspaces, knowledge base documents and conversation memory stay on infrastructure you control.
Why Deploy Octop, the open-source multi-agent AI assistant on Railway (Railway Free Trial)
Open WebUI is a solid chat front end, but Octop gives you per-user agents with their own workspaces, channels and cron jobs in one MIT-licensed deployment.
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 Octop 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 Octop self hosting
Octop runs as one Python process beside Postgres 18, so the host decides how much setup you own.
| Provider | What You Get with Railway | What You Get with the Other Provider |
|---|---|---|
| DigitalOcean | Octop and Postgres 18 from one template, volumes and HTTPS domain included. | A Droplet you manage, with Python, Postgres, a reverse proxy and restarts on you. |
| AWS | A usage-based bill with no VPC or load balancer work to get the dashboard online. | Deep networking and scaling control, but more services to wire together. |
| Hetzner | Octop and Postgres volumes attached automatically, so redeploys keep your data. | Raw servers where you own OS updates, backups and TLS. |
Common Use Cases for hosted Octop
- Household with one admin-managed instance: One person deploys Octop and creates family accounts. Each member gets a separate agent with its own providers, memory and workspace.
- Small team routing work from chat apps: Connect Feishu, DingTalk, WeCom, Telegram or Discord as channels, and messages reach the right expert.
- Personal assistant with memory and scheduling: Octop keeps persistent memory across sessions and runs cron jobs you describe in plain language, such as a daily inbox summary.
- Private document Q&A over a knowledge base: Upload your own documents and agents answer with retrieval-augmented generation over them, sharing them only if you choose.
- Delegating coding work through ACP: Hand coding tasks to OpenCode, Claude Code or Codex over the Agent Client Protocol, and expose your agent to editors like Zed with
octop acp.
Dependencies for Octop Docker hosted on Railway
This template runs two services: the Octop app on a public HTTPS domain, and a private Postgres 18 database for the control plane and agent memory. No LLM API key is needed to deploy.
Deployment Dependencies for Managed Octop Service (Octop app + Postgres 18 with volumes)
The Octop service runs ghcr.io/onepush-dev/octop:1.0.3b1, built on upstream's pinned ghcr.io/tencentcloud/octop:1.0.3b1 image. Back up both volumes before changing the image tag.
Implementation Details for Octop (Using the official TencentCloud Octop docker image)
A wrapper script, railway-start.sh, listens on Railway's PORT (falling back to 8088), waits up to 180 seconds for Postgres, and ensures the admin password meets policy before upstream's entrypoint runs.
| Variable | Purpose |
|---|---|
| OCTOP_DEFAULT_PASSWORD | First-boot admin password; later edits do not reset the account. |
| OCTOP_DATABASE_URL | References the Postgres DATABASE_URL. |
| OCTOP_CORS_ORIGINS | Set to the service's public HTTPS domain. |
The Postgres service uses five variables: POSTGRES_PASSWORD, PGDATA, PGHOST, PGPASSWORD and DATABASE_URL.
How does Octop compare against other self-hosted AI assistants
Octop vs Open WebUI (Open WebUI Alternative)
- Multi-user agents: Octop gives each user their own experts (agents) with separate providers, channels and cron jobs.
- Chat polish: Open WebUI has a more mature chat interface, so it is the simpler pick if you only want a front end for models.
- IM channels: Octop routes Feishu, DingTalk, WeCom, Telegram and Discord messages into agents.
Octop vs LibreChat (LibreChat Alternative)
- Agent workspaces: each Octop agent has its own workspace, knowledge base and memory.
- Front-end polish: LibreChat has a strong multi-provider chat UI and wins if you want a familiar ChatGPT-style interface.
- Coding delegation: Octop can hand coding tasks to OpenCode, Claude Code or Codex over ACP.
Octop vs Dify (Dify Alternative)
- Assistant versus builder: Dify is built for designing LLM apps and workflows, while Octop is a ready assistant you chat with and schedule.
- Workflow depth: Dify has a richer visual workflow editor if you need complex pipelines.
Octop vs Octop on SQLite (Octop SQLite Alternative)
- Database choice: this template uses PostgreSQL 18, upstream's multi-user backend, for the control plane and agent memory, with a per-agent schema for memory.
- Concurrency: SQLite suits one user on one machine, while Postgres handles several users and agents writing at once more safely.
- Setup effort: SQLite needs no extra service, so it is the lighter choice for a laptop or a single VPS.
How to use Octop (the OSS multi-user, multi-agent AI assistant)?
- Wait for both the Octop and Postgres services to show green. Octop waits for Postgres, so first boot can take a minute or two.
- Open the public domain on the Octop service in your browser.
- Sign in as
admin. The password is theOCTOP_DEFAULT_PASSWORDvalue shown in the Octop service variables. - The UI starts in Chinese for the seeded admin. Open the avatar menu in the top right and switch the language to English.
- Still in the avatar menu, change the password to something you chose yourself.
- Add an LLM provider and model in the dashboard. You can also set
OPENAI_API_KEYorDASHSCOPE_API_KEYon the Octop service instead. - Create an expert (agent) and send it a first message to confirm the model responds.
- Optionally add a channel, a cron job or a knowledge base.
Check the health endpoint from your terminal:
curl https://your-domain/api/health
How to self host Octop on other VPS Services (Octop self hosting guide)
Octop is MIT licensed, so you can run it on any VPS with Python or Docker. These steps follow the upstream project's install path.
Clone the Repository
Clone the upstream project and move into it.
git clone https://github.com/TencentCloud/Octop.git
cd Octop
Install Dependencies
Octop needs Python 3.12 or newer. Install it with pip, or use the upstream Docker compose file.
pip install octop
Configure Environment Variables
Set an admin password for first start. Use at least 8 characters with letters and digits.
export OCTOP_DEFAULT_PASSWORD=yourpassword
Octop keeps everything under ~/.octop by default, so put that directory on a disk you back up. With Docker, mount a volume at /data/.octop and set HOME=/data, as the upstream docker run example does.
Start the Octop Application
Run the first-time setup, then start the server. The dashboard listens on port 8088 by default.
octop init
octop run
Open http://your-domain:8088 and sign in as admin. Note that octop init is an interactive wizard, and SQLite is the default database unless you configure Postgres.
Official Pricing of Octop (Octop pricing)
Octop is MIT-licensed and free to use, with no paid Octop plan and no Octop SaaS subscription. What you pay for is the infrastructure it runs on and your own model provider usage, which depends on the models your agents call.
Octop cloud vs self hosted comparison (Pricing, features, costs, and more)
Octop has no hosted SaaS of its own. Upstream offers one-click deploy buttons for Tencent Cloud Lighthouse and CVM, which give you a server you still run yourself, and Managed Agents is listed on the roadmap as planned, not shipped.
Monthly cost of self hosting Octop on Railway
Railway bills on usage, so your monthly cost depends on the RAM and CPU the Octop and Postgres services actually use, plus how large the two volumes grow.
System Requirements for Hosting Octop on a VPS
On your own VPS, plan for a modern multi-core CPU, a few GB of RAM, and enough disk for the database, agent workspaces and uploaded documents.
Frequently Asked Questions (FAQs)
Why is the UI in Chinese, and how do I switch it?
The seeded admin account starts with the interface set to Chinese, so the first login looks unfamiliar. Open the avatar menu in the top right and pick English; the choice sticks for that account.
Where is the admin password?
The username is admin, and the password is the value of the OCTOP_DEFAULT_PASSWORD variable on the Octop service. Change it from the avatar menu after your first sign in.
Does editing OCTOP_DEFAULT_PASSWORD reset the password?
No. That variable is only used on first start to create the admin account, so editing it later does not change the existing account. To change the password, use the avatar menu inside the dashboard.
Do I need an API key to deploy?
No. The template deploys with zero inputs and no model key is required to get the service running.
Do I need pgvector?
No. The template runs on plain Postgres 18, and pgvector is not required because Octop's vector search is optional and off by default.
Can I use SQLite instead?
Upstream defaults to SQLite, but this template is wired to Postgres 18 through OCTOP_DATABASE_URL, so the control plane and agent memory live in Postgres.
Template Content

