Deployment Brief

OpenAB on Zeabur

先用官方 Native Template 把 Discord 到 agent 跑起來。k3s、工具包、本地 CLI wrapper 留到第二層,不混在第一版 beta。

OpenAB Native Zeabur Template 6BEPNC Discord first Codex device auth 2026-06-25

結論很短

Zeabur 上先不要自己管 k3s。用官方 `OpenAB Native` template 部署一個乾淨 cloud seed agent。

現在採用

Zeabur Template `6BEPNC`,service name `openab-native`,persistent `/home/agent`。

暫時不做

不在第一版塞 hg-tool、memory-cli、slides-cli、vault mount、Mac mini token。

唯一阻塞

需要一顆新的 `DISCORD_BOT_TOKEN`。不要跟 Mac mini live bot 共用同一顆 token。

Why Zeabur First

不是 Zeabur 很麻煩,是前一版走到了自管 k3s 路線

路線 你要處理的事 適合時機
Zeabur Template 填 Discord token、頻道限制,部署後跑 Codex device auth。 現在的 beta。最快把服務跑起來。
Zeabur k8s / cluster 仍要管理 service、volume、secret、image tag,但可由 Zeabur UI 包住。 需要更細緻 runtime control 時。
Self-managed k3s 要 kubeconfig、Helm repo、Secret、PVC、rollout、rollback。 需要完全控制 cluster 或要移到自己的主機時。
Architecture

第一版只建立最小可用閉環

Discord mention / thread Zeabur openab-native service Template 6BEPNC OpenAB native broker openab-agent Persistent /home/agent AGENTS.md config.toml Codex auth.json Later: OpenAB Gateway LINE / Telegram / Feishu / Teams
Local Requirements

本地需要的東西其實很少

需要
  • Zeabur CLI 已登入
  • 新的 Discord bot token
  • 允許回應的 channel IDs
  • 部署後跑 Codex device auth
不用
  • 不用本地 k3s
  • 不用 kubeconfig
  • 不用 Helm
  • 不用先搬 Mac mini CLI
先不要
  • 不要重用 live bot token
  • 不要把 vault 整包掛上去
  • 不要把 local secrets 丟進容器
  • 不要假裝雲端有本地工具
Runbook

部署流程壓成六步

建立 Discord bot

開 Message Content Intent,邀請到指定 server。

填環境變數

`DISCORD_BOT_TOKEN` 與 `OPENAB_ALLOWED_CHANNELS`。

部署 template

跑 `deploy-template.sh`,使用官方 Zeabur template。

寫入 AGENTS.md

透過 Zeabur Exec 放入 cloud seed agent 邊界。

Codex device auth

跑 `openab-agent auth codex-device`,token 留在 volume。

Discord smoke test

在 allowed channel mention bot,確認它說明目前能力。

Command Surface

實際操作入口已包好

部署包在 `openab-zeabur-native-beta/`。真 token 只放 shell env,不寫進 vault。

腳本會拒絕空 token,避免在 Zeabur 建出 sleeping service。
auth helper 只透過 Zeabur Exec 執行,不搬本地 `auth.json`。
如果 Zeabur CLI 要 environment id,設定 `ZEABUR_ENV_ID` 即可。
$ export DISCORD_BOT_TOKEN="..."
$ export OPENAB_ALLOWED_CHANNELS="123..."
$ ./deploy-template.sh

$ ./install-agent-instructions.sh
$ ./auth-codex-device.sh
$ ./auth-status.sh

# then mention the bot in Discord
Security Boundary

beta agent 必須誠實說自己在哪裡

身份

`hg-brain-cloud`,不是 live Mac mini `hg腦魔`。

工作區

只假設能讀寫 `/home/agent`。

工具

第一版只信任官方 native agent 環境。

外部寫入

未配置 broker 前,不部署、不發布、不花錢。

Boundary source: `AGENTS.hg-brain-cloud.md` in the deployment packet.

Tool Layer Later

腦魔工具不是不能搬,是要第二層搬

Linux-safe tools

安裝到 `/home/agent/bin`,每個工具先有 doctor / safe / mutation 分類。

Policy broker

先做 dry-run、audit、secret isolation,再開外部 mutation。

Mac-only workflows

用 HTTP/MCP wrapper 暴露,不把 Mac token 或 binary 複製到 Zeabur。

第一版目標是「雲端能回應」。第二版才是「雲端能安全使用工具」。

Current State

現在的狀態與下一個動作

已完成
  • Zeabur Native runbook
  • deploy/auth/status 腳本
  • cloud seed AGENTS.md
  • script syntax checks
待提供
  • 新的 Discord bot token
  • allowed channel IDs
  • Zeabur Exec 裡的 Codex auth
部署後驗收
  • `openab-agent auth status`
  • Discord mention smoke test
  • 確認它不聲稱有本地工具

Official references: Zeabur OpenAB Native Template · OpenAB GitHub