Supabase docker 的 realtime healthy check 403
1 min
前言
最近在公司做一些工具來解決一些瑣事,所幸就順便架設了 Supabase 要來方便管理 table 跟快速加 edge function
遇到的問題
參考官方的 Docker 建立方式,Run 起來 realtime 這個 container 會一直是不健康的狀態,查看 log 發現呼叫以下 endpoint
http://localhost:4000/api/tenants/realtime-dev/health會一直出現
19:51:53.178 request_id=GAPwPoYM16upnkEAAB8C [info] Sent 403 in 488µs解決方式
############
# Secrets
# YOU MUST CHANGE THESE BEFORE GOING INTO PRODUCTION
############
POSTGRES_PASSWORD=your-super-secret-and-long-postgres-password
JWT_SECRET=your-super-secret-jwt-token-with-at-least-32-characters-long
ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJhbm9uIiwKICAgICJpc3MiOiAic3VwYWJhc2UtZGVtbyIsCiAgICAiaWF0IjogMTY0MTc2OTIwMCwKICAgICJleHAiOiAxNzk5NTM1NjAwCn0.dc_X5iR_VP_qT0zsiyj_I_OZ2T9FtRU2BBNWN8Bu4GE
SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyAgCiAgICAicm9sZSI6ICJzZXJ2aWNlX3JvbGUiLAogICAgImlzcyI6ICJzdXBhYmFzZS1kZW1vIiwKICAgICJpYXQiOiAxNjQxNzY5MjAwLAogICAgImV4cCI6IDE3OTk1MzU2MDAKfQ.DaYlNEoUrrEn2Ig7tqibS-PHK5vgusbcbo7X36XVt4Q
DASHBOARD_USERNAME=supabase
DASHBOARD_PASSWORD=this_password_is_insecure_and_should_be_updated
SECRET_KEY_BASE=UpNVntn3cDxHJpq99YMc1T1AQgQpc8kfYTuRgBiYa15BLrx8etQoXz3gZv1/u2oq
VAULT_ENC_KEY=your-encryption-key-32-chars-min
PG_META_CRYPTO_KEY=your-encryption-key-32-chars-min上面是官方的 .env.example,你的 ANON_KEY 跟 SERVICE_ROLE_KEY 都需要是用 JWT_SECRET 產出的 JWT Web Token,所以可以用 JWT.IO 來產生這些 Token
service_role_key 的 payload
{
"role": "service_role",
"iss": "發行者名稱",
"exp": 1893387500
}anon_key 的 payload
{
"role": "anon",
"iss": "發行者名稱",
"iat": 1759988092,
"exp": 1893387500
}這樣更新了這三個 Key 就會正常。
Comments
Loading comments...