cmux-backend

cmux-backend

熱門

cmux 的後端 TypeScript 與雲端 VM 開發規範。適用於修改 web/app/api、web/services、後端腳本、Cloud VM 生命週期、服務商整合、Postgres、Stack Auth 計費門禁、資料庫遷移或服務商映像檔建置腳本等場景。

2.5萬星標
2126分支
更新於 2026/8/2
SKILL.md
唯讀
名稱
cmux-backend
描述

cmux 的後端 TypeScript 與雲端 VM 開發規範。適用於修改 web/app/api、web/services、後端腳本、Cloud VM 生命週期、服務商整合、Postgres、Stack Auth 計費門禁、資料庫遷移或服務商映像檔建置腳本等場景。

cmux 後端

核心規範

  • web/app/api/**web/services/** 以及涉及服務商、資料庫、身份驗證、速率限制、重試、逾時或遙測(telemetry)的後端腳本中,後端 TypeScript 預設使用 Effect。
  • 保持 Next route handler 輕量:僅進行請求解析,在邊界處執行單一 Effect 程序,將型別化錯誤(typed errors)映射至 HTTP 回應,並單獨處理未預期的缺陷(defects)。
  • 原生 TypeScript 僅用於簡單的資料結構、常數、設定檔、前端 React,以及缺乏 Effect 也無損錯誤處理機制的輕量銜接程式碼。
  • Cloud VM 後端邏輯應保留在 Vercel route handlers 以及由 Postgres 支援的 Effect 服務中。除非後續的架構文件明確調整控制面(control plane),否則請勿重新引入 Rivet 或原始 actor 協定。
  • Postgres 是 VM 生命週期、活躍 VM 配額限制、冪等性(idempotency)以及使用率事件的唯一真實來源(source of truth)。
  • 生產環境與 Staging 環境的 Cloud VM Postgres 採用 Vercel Marketplace AWS Aurora PostgreSQL OIDC/RDS IAM 路徑,執行階段環境變數包含 CMUX_DB_DRIVER=aws-rds-iamAWS_ROLE_ARNAWS_REGIONPGHOSTPGPORTPGUSERPGDATABASE
  • 請透過 bun db:migrate:aws-rds-iam 執行生產/Staging 環境的資料庫遷移;切勿在 Vercel 建置(build)或路由啟動時執行。本機開發環境則保留由 bun dev 觸發、基於 CMUX_PORT 的 Docker Postgres 路徑。
  • 啟用時,Cloud VM 的建立計費門禁會採用 Stack Auth 團隊付款項目。

密鑰設定

Cloud VM 的建置、測試及本機開發腳本會從 ~/.secrets/cmux.env 讀取服務商密鑰:E2B_API_KEYFREESTYLE_API_KEY,以及 web/scripts/build-cloud-vm-images.ts 在建立 Freestyle 快照時所需的 R2 上傳變數。

set -a
source ~/.secrets/cmux.env
set +a

~/.secrets/cmuxterm-dev.env 存放本機 Stack/web 環境變數,不包含服務商建置金鑰。bun dev 會優先載入 ~/.secrets/cmux.env(若存在),接著再載入 ~/.secrets/cmuxterm-dev.env,因此 cmuxterm 特定的 Stack 設定會覆蓋更廣泛的 cmux 密鑰。在機器遷移期間,Web 開發載入器仍支援舊版路徑 ~/.secret/cmuxterm.env~/.secrets/cmuxterm.env

詳細參考文件