Supabase开发环境搭建与本地部署指南

Supabase开发环境搭建与本地部署指南

【免费下载链接】supabase The open source Firebase alternative. Supabase gives you a dedicated Postgres database to build your web, mobile, and AI applications. 【免费下载链接】supabase 项目地址: https://gitcode.com/GitHub_Trending/supa/supabase

你还在为后端开发配置繁琐的数据库、认证和API服务而烦恼吗?本文将带你一步到位搭建Supabase本地开发环境,无需复杂云服务配置,即可拥有完整的Firebase替代方案。读完本文后,你将能够在本地运行Supabase全部服务,包括PostgreSQL数据库、身份验证、实时订阅和存储功能,并通过Studio界面轻松管理你的项目。

准备工作

在开始搭建Supabase开发环境前,请确保你的系统已安装以下工具:

这些工具是Supabase本地开发的基础,确保它们都已正确安装并配置好环境变量。

克隆代码仓库

首先,我们需要获取Supabase的源代码。使用以下命令克隆官方仓库:

git clone https://gitcode.com/GitHub_Trending/supa/supabase
cd supabase

这将创建一个名为supa/supabase的目录,并下载所有必要的源代码文件。如果你计划贡献代码,可以先Fork仓库,然后克隆你自己的Fork版本。

安装依赖

进入项目目录后,执行以下命令安装所有依赖包:

pnpm install

这个命令会安装项目根目录和所有子项目所需的依赖。Supabase使用Turborepo管理多个应用和包,所以这一步可能需要几分钟时间,具体取决于你的网络速度和计算机性能。

配置环境变量

接下来,需要创建必要的环境变量文件。执行以下命令复制示例环境变量:

cp apps/www/.env.local.example apps/www/.env.local

这个文件包含了运行主网站所需的环境变量配置。对于大多数本地开发场景,使用默认值即可,但如果你需要自定义某些设置,可以编辑这个文件。

运行开发服务器

Supabase提供了多种运行方式,你可以选择同时运行所有应用,或者只运行你需要的部分。

运行所有应用

使用以下命令启动所有Supabase应用:

pnpm dev

这将启动以下服务:

应用目录本地地址描述
主网站/apps/wwwhttp://localhost:3000Supabase官方网站
Studio控制台/apps/studiohttp://localhost:8082数据库管理界面
文档网站/apps/docshttp://localhost:3001/docs开发文档

单独运行应用

如果你只需要运行特定的应用,可以使用作用域名称:

pnpm dev:www      # 只运行主网站
pnpm dev:studio   # 只运行Studio控制台
pnpm dev:docs     # 只运行文档网站

例如,要开发数据库相关功能,只需运行Studio控制台即可。

运行Docker容器

Supabase Studio需要Docker支持才能完整运行所有功能。按照以下步骤启动Docker容器:

cd docker
cp .env.example .env
docker compose up

第一条命令进入Docker配置目录,第二条复制环境变量示例文件,第三条启动所有必要的Docker容器。首次运行时,Docker会下载所需的镜像,这可能需要一些时间。

成功启动后,你可以通过访问http://localhost:8082打开Supabase Studio界面。这个界面提供了数据库管理、认证设置、存储配置等功能,与Supabase云服务的控制台类似。

Supabase Dashboard

Docker容器包含了PostgreSQL数据库、认证服务、实时服务器等所有必要组件,确保本地开发环境与生产环境尽可能一致。

项目结构解析

了解Supabase的项目结构有助于你更好地理解和定制系统。以下是主要目录的说明:

这个结构采用了Monorepo模式,将多个相关项目组织在一个代码仓库中,便于共享代码和管理依赖。

数据库迁移

Supabase使用PostgreSQL数据库,数据库结构的变更通过迁移脚本管理。迁移文件位于supabase/migrations目录中。这些文件按时间戳命名,确保它们按正确顺序执行。

例如,最新的迁移文件包括:

这些迁移脚本定义了数据库模式、函数和触发器,是Supabase功能的核心实现。

开发示例应用

Supabase提供了丰富的示例项目,可以帮助你快速理解如何使用各种功能。以下是一些值得尝试的示例:

用户认证示例

examples/auth目录包含多种认证方式的实现:

  • expo-social-auth:React Native社交登录
  • flutter-mfa:Flutter多因素认证
  • nextjs:Next.js认证实现

AI功能示例

examples/ai展示了Supabase的AI能力:

  • image_search:图像搜索功能
  • llamafile-edge:边缘函数中的LLM集成
  • vector_hello_world:向量数据库入门

实时功能示例

examples/realtime展示了实时数据同步功能:

  • flutter-figma-clone:协作设计工具示例
  • nextjs-auth-presence:在线状态指示
  • nextjs-authorization-demo:实时权限控制

尝试运行这些示例,可以帮助你快速掌握Supabase的核心功能和最佳实践。

构建和部署

当你完成开发并准备部署时,可以使用以下命令构建项目:

pnpm build

这将构建所有应用和包,并生成生产就绪的静态文件。构建产物位于各个应用的.nextdist目录中。

对于生产部署,Supabase提供了多种选项:

  1. 自托管:使用Docker Compose部署到你自己的服务器
  2. 云服务:使用Supabase官方托管服务
  3. 平台即服务:部署到Vercel、Netlify等平台

具体的部署步骤取决于你的目标环境,请参考官方文档获取详细指南。

常见问题解决

在搭建和使用Supabase本地开发环境时,可能会遇到一些常见问题。以下是一些解决方案:

Docker相关问题

如果Docker容器无法启动,尝试以下步骤:

  1. 检查Docker是否正在运行
  2. 执行docker compose down停止所有容器
  3. 删除docker/volumes目录中的数据
  4. 重新运行docker compose up

依赖安装问题

如果依赖安装失败,尝试:

  1. 更新pnpm到最新版本:npm install -g pnpm
  2. 清除pnpm缓存:pnpm store prune
  3. 重新安装依赖:pnpm install

端口冲突

如果启动服务时提示端口已被占用,可以修改相应应用的配置文件更改端口号,或者关闭占用端口的其他应用。

总结

通过本文的步骤,你已经成功搭建了Supabase的本地开发环境,并了解了项目结构和基本使用方法。现在你可以:

  • 在本地开发和测试Supabase应用
  • 使用Studio管理数据库和用户
  • 探索丰富的示例项目
  • 定制和扩展Supabase功能

Supabase提供了一个强大的开源替代方案,让你能够构建完整的后端服务,而无需依赖专有云服务。随着项目的不断发展,你可以通过参与贡献指南成为社区的一部分,帮助改进这个强大的工具。

无论是开发小型应用还是构建企业级系统,Supabase的本地开发环境都能提供一致、高效的开发体验,加速你的开发流程。

【免费下载链接】supabase The open source Firebase alternative. Supabase gives you a dedicated Postgres database to build your web, mobile, and AI applications. 【免费下载链接】supabase 项目地址: https://gitcode.com/GitHub_Trending/supa/supabase

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值