logo
icon

Multica

AI 原生的任务管理平台,编码 Agent 是一等公民。部署 PostgreSQL (pgvector)、 Go 后端和 Next.js 前端三个服务。

template cover
部署次数0
发布者pseudoyu
创建于2026-07-31
标签
Developer ToolsProject Management

在 Zeabur 上部署 Multica

三个服务,不需要外部对象存储。附件写入后端的持久卷。

部署完成后

  1. 打开你的域名,输入邮箱请求登录验证码。
  2. 如果 RESEND_API_KEY 留空,去 backend 服务日志里找验证码,搜索 Verification code
  3. 创建工作区。
  4. 收紧实例:在 backend 上设置 ALLOW_SIGNUP=falseDISABLE_WORKSPACE_CREATION=true,然后重启。

接入 Agent 运行时

daemon 跑在你自己的电脑上,不在 Zeabur。Multica 服务端只是 API、 WebSocket 和数据库。

brew install multica-ai/tap/multica
multica setup self-host \
  --server-url https://你的API域名 \
  --app-url    https://你的域名

两个 URL 不一样,这是刻意的--app-url 是你登录用的 Web 应用; --server-url 是 API 域名,CLI 在保存配置前会先探测它的 /health。 这个路径 Web 应用不转发,所以把 --server-url 指向应用域名会让 setup 报告服务器不可达。

浏览器两种情况都不受影响:它始终留在应用域名上,包括 WebSocket,因此 Cookie 不会跨域,COOKIE_DOMAIN 保持不设置。

之后更换域名

浏览器侧会跟随你访问的主机:Web 应用从自己的 origin 提供 /api/auth/uploads/ws,客户端从 window.location 推导 wss://。 这一侧没有任何东西钉死域名,所以换域名后 UI 和 WebSocket 无需配置即可工作。

不会自动适应的是后端。它从不读取请求的 Host —— 它输出的每个公开 URL 都 来自环境变量。绑定新域名后,在 backend 服务上更新这些变量并重启:

变量设置为不更新会怎样
MULTICA_APP_URL新的应用 origin引导页显示旧域名;邀请和验证码邮件链接到旧域名
FRONTEND_ORIGIN新的应用 origin上一项的回退值;CSRF origin 校验
CORS_ALLOWED_ORIGINS新的应用 origin跨域请求被拒绝
MULTICA_PUBLIC_URL新的 API originmultica setup self-host 会把旧 URL 交给 daemon

要带协议、结尾不带斜杠。这几项失败时都是静默的 —— 应用照常加载、 看起来一切正常。改完后打开 /api/config,确认 daemon_app_urldaemon_server_url 都是你实际使用的域名。

绑自定义域名之前有个坑值得先知道:MULTICA_PUBLIC_URL 默认是 ${ZEABUR_API_URL},而这个内置变量即使在你另外绑了自定义域名之后, 仍然解析成自动生成的 *.zeabur.app 域名,不会跟随自定义域名。 所以一旦你给后端挂上自己的域名,就要把 ${ZEABUR_API_URL} 换成写全的 那个域名。

然后在每台跑 daemon 的机器上用新的 --server-url 重新执行 multica setup self-host —— CLI 会把 URL 存下来,不重新执行的话现有 daemon 会一直用旧的。

存储

S3_BUCKET 留空,后端会回退到本地磁盘并写入 /app/data/uploads 卷。 以后要换成 S3 兼容存储(R2 / MinIO / B2),在 backend 上设置 S3_BUCKETAWS_ENDPOINT_URLAWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY。如果 endpoint 浏览器访问不到,还要加 ATTACHMENT_DOWNLOAD_MODE=proxy。已上传的旧文件不会自动迁移。

扩容提示

uploads 卷把 backend 限制在单副本。需要多副本时先迁到 S3,并补上 REDIS_URL —— 没有 Redis 时实时事件退化为进程内内存,认证限流关闭。

许可与署名

Multica 采用修改版 Apache License 2.0,附加条款覆盖托管/嵌入式商业用途、 品牌标识和署名要求。单一组织内部使用不需要商业授权;对第三方提供服务则需要。 移除 UI 中的 Multica 名称、Logo 或版权信息需要书面的品牌豁免。

源码:https://github.com/multica-ai/multica · 许可:https://github.com/multica-ai/multica/blob/main/LICENSE