1.拉取代码
github地址
git clone --depth 1 https://github.com/supabase/supabase
cd supabase/docker
cp .env.example .env
2.生成KEY
生成地址:
Self-Hosting with Docker | Supabase Docs
2.修改.env配置文件
上面生成key,对号入座。
POSTGRES_PASSWORD=123456
JWT_SECRET=******
ANON_KEY=******
SERVICE_ROLE_KEY=******
DASHBOARD_USERNAME=supabase
DASHBOARD_PASSWORD=123456@1
3.启动
docker compose pull
docker compose up -d
➜ docker docker compose up -d
[+] Running 13/13
✔ Network supabase_default Created 0.1s
✔ Container supabase-vector Healthy 0.5s
✔ Container supabase-imgproxy Started 0.6s
✔ Container supabase-db Healthy 0.5s
✔ Container supabase-analytics Healthy 0.3s
✔ Container supabase-studio Started 0.7s
✔ Container realtime-dev.supabase-realtime Started 0.7s
✔ Container supabase-edge-functions Started 0.7s
✔ Container supabase-rest Started 0.6s
✔ Container supabase-kong Started 0.7s
✔ Container supabase-auth Started 0.7s
✔ Container supabase-meta Started 0.7s
✔ Container supabase-storage Started 0.4s
➜ docker docker compose ps
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
realtime-dev.supabase-realtime supabase/realtime:v2.10.1 "/usr/bin/tini -s -g -- /app/limits.sh sh -c '/app/bin/migrate && /app/bin/realtime eval 'Realtime.Release.seeds(Realtime.Repo)' && /app/bin/server'" realtime 34 seconds ago Up 12 seconds (healthy)
supabase-analytics supabase/logflare:1.4.0 "sh -c '`cat <<EOF > run.sh && sh run.sh\n./logflare eval Logflare.Release.migrate\n./logflare start --sname logflare\nEOF\n`'" analytics 34 seconds ago Up 20 seconds (healthy) 0.0.0.0:4000->4000/tcp, :::4000->4000/tcp
supabase-auth supabase/gotrue:v2.99.0 "gotrue" auth 34 seconds ago Up 13 seconds (healthy)
supabase-db supabase/postgres:15.1.0.117 "docker-entrypoint.sh postgres -c config_file=/etc/postgresql/postgresql.conf -c log_min_messages=fatal" db 35 seconds ago Up 26 seconds (healthy) 0.0.0.0:5432->5432/tcp, :::5432->5432/tcp
supabase-edge-functions supabase/edge-runtime:v1.22.3 "edge-runtime start --main-service /home/deno/functions/main" functions 34 seconds ago Up 13 seconds
supabase-imgproxy darthsim/imgproxy:v3.8.0 "imgproxy" imgproxy 35 seconds ago Up 32 seconds (healthy) 8080/tcp
supabase-kong kong:2.8.1 "bash -c 'eval \"echo \\\"$(cat ~/temp.yml)\\\"\" > ~/kong.yml && /docker-entrypoint.sh kong docker-start'" kong 34 seconds ago Up 14 seconds (healthy) 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp, 8001/tcp, 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp, 8444/tcp
supabase-meta supabase/postgres-meta:v0.68.0 "docker-entrypoint.sh npm run start" meta 34 seconds ago Up 13 seconds (healthy) 8080/tcp
supabase-rest postgrest/postgrest:v11.2.0 "postgrest" rest 34 seconds ago Up 13 seconds 3000/tcp
supabase-storage supabase/storage-api:v0.40.4 "docker-entrypoint.sh node dist/server.js" storage 34 seconds ago Up 12 seconds (healthy) 5000/tcp
supabase-studio supabase/studio:20231023-7e2cd92 "docker-entrypoint.sh node studio/server.js" studio 34 seconds ago Up 12 seconds (healthy) 3000/tcp
supabase-vector timberio/vector:0.28.1-alpine "/usr/local/bin/vector --config etc/vector/vector.yml" vector 35 seconds ago Up 32 seconds (healthy)
4.管理页面登录
用户名和密码为.env设置变量
DASHBOARD_USERNAME=supabase
DASHBOARD_PASSWORD=123456@1
登录成功!
5.python client 连接
官方地址:
Supabase Python Client - Installing
# import supabase
from supabase.client import create_client
from pprint import pprint
spa_url = "http://localhost:8000"
spa_service_key = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogInNlcnZpY2Vfcm9sZSIsCiAgImlzcyI6ICJzdXBhYmFzZSIsCiAgImlhdCI6IDE3MDA4NDE2MDAsCiAgImV4cCI6IDE4NTg2OTQ0MDAKfQ.STNyE67YP_kA2DGoDaoUNHQ0gxSBu9oYXKWXDnrMY-U"
spa_client = create_client(spa_url, spa_service_key)
data, count = spa_client.table('countries').select("*").execute()
# resp = spa_client.table('employees').select("*").execute()
pprint(data)
参考:
官方网址-Supabase | The Open Source Firebase Alternative
中文文档-Supabase Docs