Deploy Multica
Multica: self-hosted AI team workspace with boards, chat, squads.
frontend
Just deployed
backend
Just deployed
/app/data/uploads
postgres
Just deployed
/var/lib/postgresql/data
Deploy and Host Multica with Railway
Multica is a self-hosted AI team workspace: issue boards, agent squads, chat with connected agents, GitHub PR tracking, routines, and usage analytics — one place to run a human + AI team.
About Hosting Multica
This template deploys the official Multica images as a three-service stack: the Go backend (with database migrations running automatically at boot), the Next.js frontend (proxying API and WebSocket traffic to the backend over Railway's private network, so everything stays same-origin), and a bundled PostgreSQL 17 database with the extensions Multica needs already installed. Uploads live on a persistent volume; the database on its own.
Wire-up is automatic: DATABASE_URL is composed from the database service over the private network, JWT_SECRET and POSTGRES_PASSWORD are generated at deploy time, and the frontend's proxy target is a private-network reference. After deploying, generate a public domain on the frontend service and sign up — the first user owns the workspace.
Why Deploy Multica on Railway?
- One platform: app, frontend, and database in one project on a private network.
- Always on: agent runtimes, routines, and webhooks keep working after you close the laptop.
- Persistent by default: uploads and database each live on their own volume.
- Zero-config secrets: both secrets are generated at deploy time.
Common Use Cases
- A shared issue board where AI agents and humans work the same queue.
- Chat-driven agent teams (Claude Code, Codex, and friends) with per-task usage tracking.
- GitHub-integrated PR triage with agent-authored reviews and CI status mirroring.
- Internal analytics over agent usage and cost across squads.
Dependencies for Multica Hosting
- PostgreSQL 17 (bundled service,
pgcrypto+pg_trgmpreinstalled) ghcr.io/multica-ai/multica-backend:v0.3.29via wrapperwotonews/multica:v0.3.29-1(Railway CMD wiring)ghcr.io/multica-ai/multica-web:v0.3.29(official frontend, unmodified)- Optional: Resend or SMTP for email codes; GitHub App, Lark, Slack, Telegram integrations
Deployment Dependencies
First Login
- Deploy the template (set the two secrets when prompted — both can be auto-generated).
- Generate a public domain on the
frontendservice (and optionally onbackendfor webhooks). - Open the frontend domain and create the first account — it owns the workspace.
- For email login codes, add
RESEND_API_KEY(orSMTP_*variables) to the backend and redeploy; without email, codes print to the backend logs during signup.
Environment Variables
| Service | Name | Required | Default | Description |
|---|---|---|---|---|
| postgres | POSTGRES_PASSWORD | yes | generated | Database superuser password. |
| backend | JWT_SECRET | yes | generated | Auth token signing secret (hex). |
| backend | DATABASE_URL | no | auto-composed | Private-network Postgres URL — do not edit. |
| backend | MULTICA_PUBLIC_URL | no | runtime-derived | Webhook base URL — derived from the backend's public domain by the image wrapper. |
| frontend | REMOTE_API_URL | no | auto-composed | Backend origin for the server-side proxy — do not edit. |
| backend | integrations | no | — | RESEND_API_KEY, SMTP_*, GITHUB_APP_*, MULTICA_LARK_SECRET_KEY, MULTICA_SLACK_SECRET_KEY, … |
License
Multica is licensed under the Multica License (Apache-2.0 with additional conditions). Deploying it for internal use within one organization — including via this template — is permitted. Operating a hosted service for third parties requires a commercial license from the producer, and the Multica branding and attribution notices must be retained. Review the license before offering a Multica instance to users outside your organization.
Local Setup
docker compose -f docker-compose.selfhost.yml up # upstream self-host stack
# or the template pieces individually:
docker run -d --name multica-pg -e POSTGRES_USER=app -e POSTGRES_PASSWORD=pw -e POSTGRES_DB=app postgres:17-alpine
docker run -d --name multica-be --link multica-pg -e JWT_SECRET=dev -e DATABASE_URL=postgres://app:pw@multica-pg:5432/app wotonews/multica:v0.3.29-1
docker run -d --name multica-fe --link multica-be -e REMOTE_API_URL=http://multica-be:8080 -p 3000:3000 ghcr.io/multica-ai/multica-web:v0.3.29
Template Content
backend
wotonews/multica:v0.3.29-1JWT_SECRET
postgres
wotonews/postgres:v17.11-3POSTGRES_PASSWORD
