当前位置: 首页 > news >正文

Supabase02-速通

Supabase02-速通

关键词:Supabase、BaaS、PostgreSQL、Firebase 替代、自托管、Edge Functions、RLS、实时同步、MVP、Archon 实战


文章目录

  • Supabase02-速通
    • 一、为什么选择 Supabase?
    • 二、核心能力速览(30 秒速读)
    • 三、5 分钟跑通“Hello Supabase”
      • 0. 准备
      • 1. 创建项目
      • 2. 拿到 URL 与 anon Key
      • 3. 建表 & RLS
      • 4. 前端调通(Next.js 示例)
    • 四、进阶:自托管一条命令
    • 五、实战:把 Archon 项目搬到 Supabase
    • 六、性能调优 & 生产 checklist
    • 七、常见问答(评论区高频)
    • 八、结语


一、为什么选择 Supabase?

维度SupabaseFirebase自研后端
数据库PostgreSQL(关系型 + JSON)NoSQL(Firestore)随意,但需自建
实时能力✅ 基于 WAL 推送✅ 原生实时需造轮子
认证✅ 内置 JWT + OAuth✅ 内置需造轮子
存储✅ S3 兼容✅ Google Cloud Storage需造轮子
边缘函数✅ Deno Deploy✅ Cloud Functions需造轮子
供应商锁定❌ 数据可导出、可自托管✅ Google 全家桶❌ 自己就是供应商
开源✅ MIT❌ 闭源随意

一句话总结:想要 Firebase 的开发效率,又想要 PostgreSQL 的灵活与可控,Supabase 是目前最均衡的解。


二、核心能力速览(30 秒速读)

  1. Database:PostgreSQL 15,支持复杂 JOIN、事务、视图、JSONB、PostGIS、全文检索。
  2. Auth:邮件/密码、Magic Link、OAuth(Apple、GitHub、Google…)、手机号、匿名登录;JWT + RLS 细粒度授权。
  3. Realtime:WAL → WebSocket,行级/语句级监听,延迟 < 100 ms。
  4. Storage:兼容 S3 协议,自带 CDN、签名 URL、生命周期策略。
  5. Edge Functions:Deno 运行时,冷启动 < 50 ms,就近调度,可调用 npm 包(esm.sh)。
  6. Auto API:根据 schema 自动生成 REST(PostgREST)与 GraphQL(pg_graphql)接口,无需写后端。
  7. DevX:Web 控制台、SQL 编辑器、类型生成(supabase-js、Flutter、Swift、Kotlin)。

三、5 分钟跑通“Hello Supabase”

0. 准备

  • GitHub 账号(一键登录)
  • Node ≥ 18 或 Docker Desktop

1. 创建项目

打开 https://supabase.com → Sign in with GitHubNew Project
Region 选 Singapore(国内延迟最低),记住密码(后续无法明文查看)。

2. 拿到 URL 与 anon Key

Settings → API → 记录:

NEXT_PUBLIC_SUPABASE_URL=https://<ref>.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=<eyJ...>

3. 建表 & RLS

SQL Editor 执行:

create table posts(id bigint primary key generated always as identity,title text not null,user_id uuid not null default auth.uid()
);
alter table posts enable row level security;
create policy "本人 CRUD" on posts for all using (auth.uid() = user_id);

4. 前端调通(Next.js 示例)

npx create-next-app@latest supa-demo --typescript --tailwind --app
cd supa-demo
npm i @supabase/supabase-js

.env.local

NEXT_PUBLIC_SUPABASE_URL=<上面复制的URL>
NEXT_PUBLIC_SUPABASE_ANON_KEY=<上面复制的KEY>

app/page.tsx

'use client';
import { createClient } from '@supabase/supabase-js';
const supa = createClient(process.env.NEXT_PUBLIC_SUPABASE_URL!,process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
);export default function Home() {const insert = async () => {const { data, error } = await supa.from('posts').insert({ title: 'Hello Supabase' });console.log({ data, error });};return <button onClick={insert}>插入一条数据</button>;
}

npm run dev → 点击按钮 → 返回 posts 表已多一行,RLS 生效。


四、进阶:自托管一条命令

官方 docker-compose 一键起:

git clone --depth 1 https://github.com/supabase/supabase
cd supabase/docker
cp .env.example .env
# 修改 .env 里 POSTGRES_PASSWORD、JWT_SECRET 等
docker compose up -d

默认端口:

  • Kong API 网关:8000
  • Studio 控制台:3000
  • PostgreSQL:5432

国内镜像拉取慢?在 /etc/docker/daemon.json 加入:

{"registry-mirrors":["https://registry.docker-cn.com","https://hub-mirror.c.163.com"]}

然后 systemctl restart docker


五、实战:把 Archon 项目搬到 Supabase

(以下步骤对应文件 2 的学习笔记,合并后更紧凑)

步骤要点踩坑提示
1. 新建项目Region 选 Singapore后续 CLI 连接需用
2. 克隆代码git clone https://gitee.com/enzoism/Archon.git -b enzo001主分支仍用 OpenAI
3. 替换环境变量.env.example 复制为 .env,填写 SUPABASE_URLSUPABASE_SERVICE_KEY(需在 Settings → Service Keys 新建)anon key 无法 bypass RLS,必须用 service_role
4. 执行初始化 SQL复制 migration/complete_setup.sql 到 Studio → SQL Editor 运行若自托管,需手动创建 vector 扩展:create extension if not exists vector;
5. 拉镜像docker compose pull国内网络失败就换镜像源
6. 模型替换原项目用 OpenAI,实验性换成 智谱 GLM-4base_url = https://open.bigmodel.cn/api/paas/v4apikey 填智谱的
7. 启动docker compose up -d看到 kongedge-functions healthy 即成功

浏览器打开 http://localhost:3000 → 注册账号 → 新建知识库 → 上传 PDF → 问答测试,全流程打通。


六、性能调优 & 生产 checklist

场景锦囊
高并发实时supabase_realtime 单独开连接池;使用 private 通道减少广播
图片存储开启 IMGPROXY 动态压缩;CDN 回源带 If-None-Match
Edge Functions把冷启动依赖全打包成 deno.lock,开启 v8_cache
自托管备份使用 wal-g 连续归档到 S3,每天全量 pg_dump
升级小版本直接 docker compose pull;大版本先看 Release Notes

七、常见问答(评论区高频)

Q1. 实时监听 1w 人在线会不会炸?
A:Realtime 默认 200 并发,可在 docker-compose.ymlMAX_CONNECTIONS 调到 1000,再配合 Redis Stream 做分层广播。

Q2. 可以只用 Supabase 做 CMS 后台吗?
A:完全可以,Studio 本身就是用 Supabase 自举,配合 Row Level Security 可以给编辑/审核/管理员不同视图,省掉 Admin Panel。

Q3. 以后想迁到 AWS RDS 方便吗?
A:pg_dump 导出即可;如果用了 Auth、Storage,需额外迁 auth.users 和 S3 对象,官方提供 pgloader 模板。


八、结语

Supabase 把“开源、可控、易用”三个看似矛盾的词揉在了一起:
你可以 5 分钟托管一个 MVP,也可以深度调优 PostgreSQL、自托管满足合规;既拥有 Firebase 的丝滑体验,又拿到关系型数据库的全部威力。


文章转载自:

http://tiSFuQJ5.xkjrs.cn
http://mqxcbblJ.xkjrs.cn
http://PiJtZG0j.xkjrs.cn
http://xqiRIrqR.xkjrs.cn
http://kADPhRWg.xkjrs.cn
http://FI3n4Mgh.xkjrs.cn
http://ZWPaAQ5g.xkjrs.cn
http://bIDfj9rY.xkjrs.cn
http://SH9FfRby.xkjrs.cn
http://CkzXoZWa.xkjrs.cn
http://BUlgRtqJ.xkjrs.cn
http://lyn4Pnd3.xkjrs.cn
http://VE1ZAXST.xkjrs.cn
http://NF4DmG8Y.xkjrs.cn
http://RU1k6O1O.xkjrs.cn
http://xjaPB3VP.xkjrs.cn
http://04HxRK39.xkjrs.cn
http://5J5sljtY.xkjrs.cn
http://TIsC69Un.xkjrs.cn
http://CwWbnRRQ.xkjrs.cn
http://Ck86qYz6.xkjrs.cn
http://cxa2LLTB.xkjrs.cn
http://HVTvFNAo.xkjrs.cn
http://r3N1Aae1.xkjrs.cn
http://UxCMEQzO.xkjrs.cn
http://tEgQbFOq.xkjrs.cn
http://obAbFfsa.xkjrs.cn
http://JUecGftP.xkjrs.cn
http://pmGI7UpO.xkjrs.cn
http://KK9xQpNI.xkjrs.cn
http://www.dtcms.com/a/372363.html

相关文章:

  • LLM学习:大模型基础——视觉大模型以及autodl使用
  • 嵌入式Secure Boot安全启动详解
  • 【倍增】P3901 数列找不同|普及+
  • 数据结构:堆
  • 继续优化基于树状数组的cuda前缀和
  • 数组常见算法
  • 数仓建模理论
  • 致远A8V5 9.0授权文件
  • 【New Phytologist】​​单细胞多组学揭示根毛对盐胁迫的特异性响应文献分享
  • MyBatis 拦截器让搞定监控、脱敏和权限控制
  • 20250907-0101:LangChain 核心价值补充
  • 论CMD、.NET、PowerShell、cmdlet四者关系
  • 从IFA展会看MOVA的“全维进阶”如何重新定义智能家居边界
  • SpringBoot 数据脱敏实战: 构建企业级敏感信息保护体系
  • 公链分析报告 - 模块化区块链1
  • 20250907-01:理解 LangChain 是什么 为什么诞生
  • 做一个鉴权系统
  • Javaweb - 14.5 Vue3 路由机制
  • 2.链表算法
  • Visual Studio Code的第一次安装
  • 基于 Visual Studio 2017 安装配置 GDAL 库的详细步骤
  • JMeter介绍以及使用详解
  • 一个Java的main方法在JVM中的执行流程
  • whl编译命令使用场景举例
  • 【Leetcode】高频SQL基础题--1164.指定日期的产品价格
  • 力扣1210. 穿过迷宫的最少移动次数 详解
  • Redis 从入门到精通:全平台安装与性能优化配置指南
  • RestClient查询和数据聚合
  • 前后端中的回调机制:含义、作用与实现详解
  • 四、神经网络的学习(下)