
ZeaburSupabase 是一个非常流行的开源 Firebase 替代方案。它提供 Postgres 数据库、身份认证、API 以及文件存储等一整套工具,是一个强大的后端解决方案。
Zeabur 简化了这一复杂栈的部署。通过 Zeabur,你可以一键启动一个完整可用的 Supabase 实例(包含 Kong Gateway、Authentication、PostgreSQL),无需手动配置。
在本教程中,我们将引导你完成:
UI 无 Logs: Supabase Studio 的 “Logs” 功能无法使用(因为缺少 Vector 服务)。你需要在 Zeabur 控制台中查看每个服务的日志。 无 MCP: 本模板不包含 AI Model Context Protocol 服务器。
Zeabur 通过模板市场提供“一键部署”。
选项 1:在项目页面创建 Supabase 实例
Supabase。与单独的数据库不同,Zeabur 上的 Supabase 使用 Kong Gateway 来管理访问。你需要获取凭据才能登录 UI。
⚠️ 警告: 模板使用默认 API key 仅用于演示。正式环境中你必须生成新的 key,否则任何知道默认 key 的人都可以访问你的数据库。
JWT_SECRET 并使用工具生成:
anon keyservice_role keyJWT_SECRET: 你的自定义 secretANON_KEY: 你的新 anon keySERVICE_ROLE_KEY: 你的新 service_role key要应用这些安全变更,你必须重启整个栈:
默认情况下,Supabase 不能发送邮件(magic link、重置密码等)。你需要配置 SMTP 提供商。我们推荐 Resend,但任何 SMTP 都可以。
GOTRUE_SMTP_HOST: smtp.resend.com(或你的提供商)GOTRUE_SMTP_PORT: 587GOTRUE_SMTP_USER: resend(或你的用户名)GOTRUE_SMTP_PASS: re_123...(你的 API Key)GOTRUE_SMTP_ADMIN_EMAIL: [email protected]GOTRUE_SITE_URL: https://your-project-domain.zeabur.app(用户跳转的链接)若要启用 Google 登录,在 Auth 服务中添加:
GOTRUE_EXTERNAL_GOOGLE_ENABLED: trueGOTRUE_EXTERNAL_GOOGLE_CLIENT_ID: your-google-client-idGOTRUE_EXTERNAL_GOOGLE_SECRET: your-google-secretGOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI: https://your-project.zeabur.app/auth/v1/callback注意:请将 your-project.zeabur.app 替换为你的实际域名。
服务重启后,可以通过终端手动触发注册来验证配置:
curl -X POST "https://your-project.zeabur.app/auth/v1/signup" \
-H "Content-Type: application/json" \
-H "apikey: YOUR_ANON_KEY" \
-d '{
"email": "[email protected]",
"password": "yourpassword"
}'
预期结果:
200 OK 的 JSON 响应[email protected] 收到验证邮件(请检查垃圾箱)GOTRUE_SITE_URL 与实际部署域名完全一致。关键: 不要从 Supabase Studio 控制台复制 keys,因为它可能显示旧的默认 keys。
适用:连接 Lovable 项目或常规 Web 应用。
为了让你的前端应用与 Supabase 后端通信,你需要在代码中配置环境变量。
在项目根目录创建或打开 .env 文件。
添加前置步骤中的凭据:
VITE_SUPABASE_URL=[your-project-url]
VITE_SUPABASE_ANON_KEY=[your-anon-key]
适用:开发者将本地数据库变更推送到生产实例。
你可以使用连接串将本地数据库 schema 推送到 Supabase。
获取连接串: 在 Zeabur 控制台中打开 Supabase 栈中的 PostgreSQL 服务面板。
复制: 复制 PostgreSQL 连接串。
执行: 在终端运行以下命令(确保已安装 Supabase CLI):
supabase db push --db-url "[your-supabase-postgresql-connection-string]" --debug
当你将应用与 Supabase 一起部署在 Zeabur 时,需要把凭据注入到部署环境变量中。
VITE_SUPABASE_URL: 粘贴你的项目 URLVITE_SUPABASE_ANON_KEY: 粘贴你的 anon 公钥提示:请确保
.env等凭据文件已加入.gitignore,避免泄露密钥。
将以下变量添加到对应服务,以启用高级功能。
在 Auth 服务变量中添加以下内容,以在特定事件触发 Postgres 函数:
GOTRUE_HOOK_CUSTOM_ACCESS_TOKEN_ENABLED=trueGOTRUE_HOOK_CUSTOM_ACCESS_TOKEN_URI=pg-functions://postgres/public/custom_access_token_hookGOTRUE_HOOK_MFA_VERIFICATION_ATTEMPT_ENABLED=trueGOTRUE_HOOK_MFA_VERIFICATION_ATTEMPT_URI=pg-functions://postgres/public/mfa_verification_attemptGOTRUE_HOOK_PASSWORD_VERIFICATION_ATTEMPT_ENABLED=trueGOTRUE_HOOK_PASSWORD_VERIFICATION_ATTEMPT_URI=pg-functions://postgres/public/password_verification_attempt在 Studio 服务变量中添加以下内容,以启用 AI SQL 助手:
OPENAI_API_KEY=your-openai-api-keyGOTRUE_EXTERNAL_SKIP_NONCE_CHECK=true(适用于移动端 Google Sign In)GOTRUE_MAILER_SECURE_EMAIL_CHANGE_ENABLED=true(邮箱变更时强制验证)