---
title: "Deploy Multica"
description: "Multica: self-hosted AI team workspace with boards, chat, squads."
category: "AI/ML"
url: https://railway.com/deploy/multica-1
---

# Deploy Multica

Multica: self-hosted AI team workspace with boards, chat, squads.

**[Deploy Multica on Railway](https://railway.com/template/multica-1)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/multica-1/manifest.json

- **Creator:** wotonews
- **Category:** AI/ML

## Template content

### frontend

- **Image:** ghcr.io/multica-ai/multica-web:v0.3.29

### backend

- **Image:** wotonews/multica:v0.3.29-1

### postgres

- **Image:** wotonews/postgres:v17.11-3

## Documentation

# 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](https://www.postgresql.org/) (bundled service, `pgcrypto` + `pg_trgm` preinstalled)
- [`ghcr.io/multica-ai/multica-backend:v0.3.29`](https://github.com/multica-ai/multica) via wrapper `wotonews/multica:v0.3.29-1` (Railway CMD wiring)
- [`ghcr.io/multica-ai/multica-web:v0.3.29`](https://github.com/multica-ai/multica) (official frontend, unmodified)
- Optional: Resend or SMTP for email codes; GitHub App, Lark, Slack, Telegram integrations

### Deployment Dependencies

- Source: https://github.com/multica-ai/multica
- Docs: https://github.com/multica-ai/multica#readme

## First Login

1. Deploy the template (set the two secrets when prompted — both can be auto-generated).
2. Generate a **public domain** on the `frontend` service (and optionally on `backend` for webhooks).
3. Open the frontend domain and create the first account — it owns the workspace.
4. For email login codes, add `RESEND_API_KEY` (or `SMTP_*` 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](https://github.com/multica-ai/multica/blob/main/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

```bash
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
```




## Similar templates

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [stella](https://railway.com/deploy/stella) — Self-host stella with web, API, Postgres, Redis, and object storage.
- [Hermes Agent | OpenClaw Alternative with Dashboard](https://railway.com/deploy/hermes-agent-or-openclaw-alternative-wit) — Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

Open this page in a browser: https://railway.com/deploy/multica-1
