
這是 Supabase 在 Zeabur 上的自架版範例。 你可以使用這個模板在 Zeabur 上部署 Supabase 實例。
此 Supabase 實例包含 Kong(API 閘道)、Studio(Supabase Studio)、PostgreSQL(資料庫)、Meta(Postgres Meta)、REST(PostgREST)、Auth(GoTrue)、Supavisor(連線池)、Realtime(資料庫變更訂閱)、Storage(儲存 API)、MinIO(物件儲存)、ImgProxy(圖片處理)和 Functions(Edge Functions)。
詳細架構資訊請參考官方 Supabase 架構文件。
因平台限制而未包含的服務:
注意: 沒有 Analytics,Supabase Studio 的日誌功能將無法使用。其他所有 Studio 功能(資料庫、認證、儲存管理等)都可以正常運作。
如果你需要額外的 Supabase 服務,歡迎根據上游 docker-compose.yaml 檔案實作,並將你的變更提交到我們的 Discord 伺服器。這適用於我們的貢獻獎勵計畫。
部署完成後,你的 Supabase Studio 儀表板將可在你配置的網域上使用。
查詢登入憑證:
DASHBOARD_USERNAME 變數)以下密鑰在 Kong 服務 的環境變數中公開:
| 密鑰 | 位置 | 說明 |
|---|---|---|
JWT_SECRET | Kong 服務 | 用於簽署 JWT 令牌的密鑰 |
ANON_KEY | Kong 服務 | 匿名訪問的公開 API 密鑰 |
SERVICE_ROLE_KEY | Kong 服務 | 具有完整訪問權限的管理員 API 密鑰 |
⚠️ 重要:預設密鑰僅供示範使用。在正式環境使用前,你必須生成新的密鑰。
如何生成安全密鑰:
JWT_SECRET 生成新的密鑰:
anon 密鑰 → 作為 ANON_KEY 使用service_role 密鑰(網站上顯示為 SERVICE_KEY)→ 作為 SERVICE_ROLE_KEY 使用雖然我們提供了一些範例密鑰以便快速開始,但你絕對不應該使用我們提供的預設值來部署 Supabase。請依照本節中的所有步驟確保你有安全的設定,然後重啟所有服務以套用變更。
在 auth 服務中新增以下環境變數:
GOTRUE_EXTERNAL_GOOGLE_ENABLED=trueGOTRUE_EXTERNAL_GOOGLE_CLIENT_ID=xxxxxxxxGOTRUE_EXTERNAL_GOOGLE_SECRET=yyyyyyyyGOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI=https://supabase.zeabur.app/auth/v1/callback將 supabase.zeabur.app 更新為你的公開網域,例如:supabase.example.com。
你可以在 Google Cloud Console 中找到客戶端 ID 和密鑰。
然後,重啟你的 auth 服務。
在 auth 服務中新增以下環境變數:
GOTRUE_EXTERNAL_APPLE_ENABLED=trueGOTRUE_EXTERNAL_APPLE_CLIENT_ID=xxxxxxxxGOTRUE_EXTERNAL_APPLE_SECRET=yyyyyyyyGOTRUE_EXTERNAL_APPLE_REDIRECT_URI=https://supabase.zeabur.app/auth/v1/callback將 supabase.zeabur.app 更新為你的公開網域,例如:supabase.example.com。
你可以在 Apple Developer Console 中找到客戶端 ID 和密鑰。
然後,重啟你的 auth 服務。
要在 Supabase 中啟用電子郵件功能(使用者驗證、密碼重設等),請使用 Resend 作為電子郵件服務提供商配置 SMTP 設定。
網域驗證:
mail.yourdomain.com)寄件者電子郵件設定:
noreply@mail.yourdomain.com在 auth 服務中新增以下環境變數:
GOTRUE_SMTP_HOST=smtp.resend.com - SMTP 伺服器主機GOTRUE_SMTP_PORT=587 - 使用 STARTTLS 埠號GOTRUE_SMTP_USER=resend(或留空)- Resend 不驗證使用者名稱,只驗證 API 金鑰GOTRUE_SMTP_PASS=re_xxx - 你的 Resend API 金鑰GOTRUE_SMTP_ADMIN_EMAIL=noreply@mail.yourdomain.com - 管理員寄件者電子郵件GOTRUE_SMTP_SENDER_NAME=Your App Name - 電子郵件的顯示名稱GOTRUE_SITE_URL=https://yourdomain.zeabur.app - 決定電子郵件中驗證連結的網域auth 服務以套用變更手動測試:
curl -X POST "https://yourdomain.zeabur.app/auth/v1/signup" \
-H "Content-Type: application/json" \
-H "apikey: YOUR_ANON_KEY" \
-d '{
"email": "test@example.com",
"password": "yourpassword"
}'
預期結果:
GOTRUE_SITE_URL 符合你實際部署的網域對於進階電子郵件自訂,你可以配置:
在 auth 服務中新增這些環境變數以啟用進階功能:
自訂存取令牌掛鉤:
GOTRUE_HOOK_CUSTOM_ACCESS_TOKEN_ENABLED=trueGOTRUE_HOOK_CUSTOM_ACCESS_TOKEN_URI=pg-functions://postgres/public/custom_access_token_hookGOTRUE_HOOK_CUSTOM_ACCESS_TOKEN_SECRETS=<your-base64-secret>MFA 驗證掛鉤:
GOTRUE_HOOK_MFA_VERIFICATION_ATTEMPT_ENABLED=trueGOTRUE_HOOK_MFA_VERIFICATION_ATTEMPT_URI=pg-functions://postgres/public/mfa_verification_attempt密碼驗證掛鉤:
GOTRUE_HOOK_PASSWORD_VERIFICATION_ATTEMPT_ENABLED=trueGOTRUE_HOOK_PASSWORD_VERIFICATION_ATTEMPT_URI=pg-functions://postgres/public/password_verification_attempt自訂 SMS 掛鉤:
GOTRUE_HOOK_SEND_SMS_ENABLED=trueGOTRUE_HOOK_SEND_SMS_URI=pg-functions://postgres/public/custom_sms_hookGOTRUE_HOOK_SEND_SMS_SECRETS=v1,whsec_<your-secret>自訂電子郵件掛鉤:
GOTRUE_HOOK_SEND_EMAIL_ENABLED=trueGOTRUE_HOOK_SEND_EMAIL_URI=http://host.docker.internal:54321/functions/v1/email_senderGOTRUE_HOOK_SEND_EMAIL_SECRETS=v1,whsec_<your-secret>其他選項:
GOTRUE_EXTERNAL_SKIP_NONCE_CHECK=true(用於行動裝置 Google 登入)GOTRUE_MAILER_SECURE_EMAIL_CHANGE_ENABLED=trueGOTRUE_SMTP_MAX_FREQUENCY=1sStudio SQL 助手:
新增至 studio 服務:
OPENAI_API_KEY=your-openai-api-key