Self-Host 快速上手
在自己的服务器或本机用 Docker 把 Multica 跑起来。约 10 分钟。
这一页带你用 Docker 把 Multica 的服务器(后端 + 前端 + PostgreSQL)跑在自己的机器或服务器上。走完这一篇你的数据就完全在自己手里——包括 工作区、issue、评论、智能体 配置。
智能体执行还是靠你本地跑的 守护进程 + 本地装好的 AI 编程工具——这点和 Cloud 完全一样。Self-host 换掉的是服务器那一层,不是执行那一层。
前置要求
- Docker 安装好并且能跑
docker compose - Git 可选(推荐——可以拉源码)
- 一台能长期开机的机器(本地 / 内网 / 云主机都行)
- 至少一款 AI 编程工具装在运行守护进程的机器上(不一定是跑服务器的机器——可以是你开发用的笔记本)
1. 拉取项目 + 一键启动后端
git clone https://github.com/multica-ai/multica.git
cd multica
make selfhostmake selfhost 会:
- 如果没有
.env文件,从.env.example自动生成一份并生成随机 JWT_SECRET - 拉取官方 Docker 镜像(PostgreSQL、Multica backend、Multica frontend)
- 用
docker-compose.selfhost.yml启动全部服务 - 等后端
/health端点准备就绪
如果是启动完成后的生产探针,想让数据库或 migration 异常也体现为失败,请改用 /readyz。
后端容器启动时会自动跑数据库 migration(docker/entrypoint.sh 在启动 server 前执行 ./migrate up)——你会在 backend 日志里看到 migration 输出。升级版本时同样自动处理。
镜像还没发布? 如果 make selfhost 报拉不到镜像,可能是你在某个未发布的版本标签上。切到稳定版本或直接从源码构建:make selfhost-build。
启动完成后:
2. 重要:改 APP_ENV 成 production
docker-compose.selfhost.yml 默认把 APP_ENV 设成 production——这防止开发用的"万能验证码 888888"在你公网暴露的实例上启用。
但如果你的 .env 里把 APP_ENV 留空或改成其他值,888888 会被启用——任何人输入任何邮箱 + 888888 都能登录。详见 登录与注册配置 → 888888 陷阱。
公网部署前一定检查 .env 里 APP_ENV=production。
3. 配置邮件服务(可选但推荐)
如果不配邮件,你的用户无法收到验证码——但如果 APP_ENV != production 你可以用 888888 登录(见上方警告)。
要真的发验证码邮件:
-
在 Resend 注册并拿一个 API key
-
验证一个你控制的发件域名
-
在
.env里设:RESEND_API_KEY=re_xxxxxxxxxxxx RESEND_FROM_EMAIL=noreply@yourdomain.com -
重启:
docker compose -f docker-compose.selfhost.yml restart backend
更多 auth 配置(OAuth、注册白名单)见 登录与注册配置。
4. 首次登录 + 创建工作区
- 输入你的邮箱
- 从 Resend 邮件里拿验证码(或者前面没配 Resend 的话从 server 容器的 stdout 里抄
[DEV] Verification code这行) - 登录后创建第一个工作区
5. 连接命令行工具到你自己的 server
命令行装法和 Cloud 快速上手 → 2. 装命令行工具 一样——Homebrew / 脚本 / PowerShell 任选。装好之后,用 self-host 版本的 setup 命令:
multica setup self-host --server-url http://<你的服务器地址>:8080 --app-url http://<你的服务器地址>:3000本地就是一台电脑跑整套的话:
multica setup self-host默认连 http://localhost:8080(backend)+ http://localhost:3000(frontend)。
setup self-host 会让你在浏览器里完成登录,把 PAT 存到本地,自动启动守护进程。
6. 创建智能体 + 分配第一个任务
流程和 Cloud 一样——见 Cloud 快速上手 → 5-6 步。
常见问题
- 后端起不来:看容器日志
docker compose -f docker-compose.selfhost.yml logs backend;常见是.env里DATABASE_URL或JWT_SECRET有问题 - 验证码收不到:没配 Resend → 从
docker compose logs backend里找[DEV] Verification code - WebSocket 连不上:公网部署必须设
FRONTEND_ORIGIN成你真实的前端域名;见 故障排查 → WebSocket 连不上