Skip to content

Supabase 本地直连(Docker部署)

Published: at 17:33:39

Supabase 本地部署

最近在做研究学习 Supabase 时,本地连接 Supabase 的云服务非常的慢,经常超时,忍无可忍,决定在本地用Docker部署一个,本地连接本地的 Supabase 服务。这里记录一下过程,以备后用。

准备工作

首先,确保电脑上已经安装了这两个东西:

安装完后记得检查一下 Docker 是否正常运行,我之前就遇到过安装完忘记启动 Docker 服务的情况。

下载 Supabase 源码

打开终端,运行下面的命令:

git clone --depth 1 https://github.com/supabase/supabase
cd supabase

这里用了 --depth 1 参数,这样可以只下载最新的提交,减少下载时间和磁盘空间占用。

生成 API Keys

  1. 访问 Supabase API Key Generator
  2. 在页面上生成两个密钥:
    • ANON_KEY:用于公开的客户端访问
    • SERVICE_ROLE_KEY:用于服务器端的特权操作

请妥善保存这两个密钥,它们将用于后续配置。

更新 .env 配置

在Supabase项目根目录中找到 .env 文件(如果不存在,请复制 .env.example 并重命名为 .env),然后更新以下值:

同时,确保设置了以下变量:

启动 Supabase

docker-compose.yml 文件所在的目录中执行以下命令:

  1. 拉取最新的Docker镜像:
docker compose pull

docker-compose-pull.png

  1. 启动所有服务:
docker compose up -d

docker-compose-up.png

-d 参数使服务在后台运行。

  1. 查看运行中的服务:
docker compose ps

这将显示所有正在运行的Supabase相关容器。

停止 Supabase

如需停止所有Supabase服务,请执行:

docker compose stop

访问 Supabase 仪表板

启动服务后,可以通过以下步骤访问 Supabase 仪表板:

  1. 打开浏览器,访问 http://localhost:8000/
  2. 系统将提示输入用户名和密码
  3. 使用在 .env 文件中设置的 DASHBOARD_USERNAMEDASHBOARD_PASSWORD 登录
  4. 进入 SQL Editor 页面,生成相关的测试表和数据,

通过仪表板,可以管理本地的数据库、查看API文档、管理用户认证等。

本地直连

以NextJs项目为例: 修改 .env.local 文件的配置:

NEXT_PUBLIC_SUPABASE_URL=http://localhost:8000
NEXT_PUBLIC_SUPABASE_ANON_KEY=开始生成的key

开始享受本地直连的快乐吧😁