Supabase 本地部署
最近在做研究学习 Supabase 时,本地连接 Supabase 的云服务非常的慢,经常超时,忍无可忍,决定在本地用Docker部署一个,本地连接本地的 Supabase 服务。这里记录一下过程,以备后用。
准备工作
首先,确保电脑上已经安装了这两个东西:
安装完后记得检查一下 Docker 是否正常运行,我之前就遇到过安装完忘记启动 Docker 服务的情况。
下载 Supabase 源码
打开终端,运行下面的命令:
git clone --depth 1 https://github.com/supabase/supabase
cd supabase
这里用了 --depth 1
参数,这样可以只下载最新的提交,减少下载时间和磁盘空间占用。
生成 API Keys
- 访问 Supabase API Key Generator
- 在页面上生成两个密钥:
ANON_KEY
:用于公开的客户端访问SERVICE_ROLE_KEY
:用于服务器端的特权操作
请妥善保存这两个密钥,它们将用于后续配置。
更新 .env 配置
在Supabase项目根目录中找到 .env
文件(如果不存在,请复制 .env.example
并重命名为 .env
),然后更新以下值:
ANON_KEY
:替换为刚才生成的anon
密钥SERVICE_ROLE_KEY
:替换为刚才生成的service
密钥
同时,确保设置了以下变量:
DASHBOARD_USERNAME
:设置访问仪表板的用户名DASHBOARD_PASSWORD
:设置访问仪表板的密码
启动 Supabase
在 docker-compose.yml
文件所在的目录中执行以下命令:
- 拉取最新的Docker镜像:
docker compose pull
- 启动所有服务:
docker compose up -d
-d
参数使服务在后台运行。
- 查看运行中的服务:
docker compose ps
这将显示所有正在运行的Supabase相关容器。
停止 Supabase
如需停止所有Supabase服务,请执行:
docker compose stop
访问 Supabase 仪表板
启动服务后,可以通过以下步骤访问 Supabase 仪表板:
- 打开浏览器,访问 http://localhost:8000/
- 系统将提示输入用户名和密码
- 使用在
.env
文件中设置的DASHBOARD_USERNAME
和DASHBOARD_PASSWORD
登录 - 进入
SQL Editor
页面,生成相关的测试表和数据,
通过仪表板,可以管理本地的数据库、查看API文档、管理用户认证等。
本地直连
以NextJs项目为例:
修改 .env.local
文件的配置:
NEXT_PUBLIC_SUPABASE_URL=http://localhost:8000
NEXT_PUBLIC_SUPABASE_ANON_KEY=开始生成的key
开始享受本地直连的快乐吧😁