替代本机 Supabase
Supabase-shaped
目标:在 不改线上、不写坏其他仓库 的前提下,用 XBuckle 替换 supabase start(Docker)做日常开发,降低内存与启动成本。
已验证能覆盖的主路径
Origin dogfood(只读 Origin 仓库)已覆盖:
- 全部 migrations 应用(含 pgcrypto)
- signup →
auth.users同步 →handle_new_user→ profiles - projects / rpml_files CRUD + RLS
create_access_token/publish_release- Storage bucket
agent-chat→ 本机 LLM mock(SSE)
跑分:
bash
npm run origin:dogfood
# 或
ORIGIN_ROOT=/path/to/origin npm run origin:dogfood人怎么切(以 Vite 前端为例)
- 启动 XBuckle(推荐无 UI):
bash
XBUCKLE_FUNCTIONS_DIR=/path/to/your-app/supabase/functions \
XBUCKLE_AGENT_MOCK=1 \
npm run serve
# 或发布后的安装包:
# /Applications/XBuckle.app/Contents/MacOS/XBuckle --serve- 只改本机
frontend/.env.local(不要提交、不要用于 prod build):
bash
VITE_SUPABASE_URL=http://127.0.0.1:3100
VITE_SUPABASE_ANON_KEY=xbuckle-anon-key若需要跑 edge:安装 Deno;
XBUCKLE_FUNCTIONS_DIR指向应用的supabase/functions。- 无真实 LLM key 时加
XBUCKLE_AGENT_MOCK=1(打到 XBuckle/llm,并把AGENT_MODEL一并钉成gpt-mock,覆盖functions/.env里为真实厂商写的模型名) - 想保留应用自己的模型名,用
XBUCKLE_LLM_MODELS=模型名注册,或在 shell 里显式设AGENT_MODEL - 有 key 时可去掉 mock,仍会强制
SUPABASE_URL为本机
- 无真实 LLM key 时加
首次空库时,用控制面或脚本应用 migrations(dogfood 使用
POST /db/exec)。桌面 Data 面板也可执行 SQL。
仍然更适合留在 Docker / 云的场景
- 真 Google/GitHub OAuth(XBuckle 仅本地 auto-code)
- 依赖完整 WAL Realtime / Presence 的产品路径
- 官方 E2E 若写死
127.0.0.1:54321与 Supabase CLI 行为 - 需要
pg_cron真调度外发邮件(本机为 stub + 不外发)
安全约束(硬)
| 做 | 不做 |
|---|---|
| 只写 loopback URL | 把 dogfood 指到 *.supabase.co |
| 只读其他产品仓库做验证 | 在 XBuckle 任务里改 Origin 产品代码(除非你明确要求) |
| 本地 anon/service_role 固定串 | 把云密钥写进 functions .env 还指望 XBuckle 去打云 |
