Skip to content

替代本机 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 前端为例)

  1. 启动 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
  1. 只改本机 frontend/.env.local(不要提交、不要用于 prod build):
bash
VITE_SUPABASE_URL=http://127.0.0.1:3100
VITE_SUPABASE_ANON_KEY=xbuckle-anon-key
  1. 若需要跑 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 为本机
  2. 首次空库时,用控制面或脚本应用 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 去打云

相关