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