Supabase项目创建 #

一、创建云上项目 #

1.1 注册账号 #

text
访问 Supabase 官网
    │
    ▼
点击 "Start your project"
    │
    ▼
选择注册方式
├── GitHub授权 (推荐)
├── GitLab授权
├── Bitbucket授权
└── 邮箱注册
    │
    ▼
完成注册,进入Dashboard

1.2 创建组织 #

text
首次使用需要创建组织
    │
    ├── 组织名称
    │   例如: "My Company" 或 "Personal"
    │
    └── 选择计划
        ├── Free (免费)
        │   └── 适合学习和小型项目
        ├── Pro ($25/月)
        │   └── 适合生产环境
        └── Team/Enterprise
            └── 适合团队和企业

1.3 创建项目 #

text
点击 "New Project"
    │
    ├── 选择组织
    │
    ├── 项目名称
    │   例如: "my-awesome-app"
    │
    ├── 数据库密码
    │   ⚠️ 请妥善保存,无法再次查看
    │
    ├── 区域选择
    │   推荐: 选择离用户最近的区域
    │   - Northeast Asia (Tokyo)
    │   - Southeast Asia (Singapore)
    │   - West US (San Francisco)
    │   - East US (N. Virginia)
    │   - West EU (Frankfurt)
    │   - West EU (Ireland)
    │
    └── 定价计划
        └── 选择适合的计划

1.4 等待项目初始化 #

text
项目初始化中...
├── 创建数据库实例 (~1-2分钟)
├── 配置认证服务
├── 配置存储服务
├── 配置API网关
└── 完成!

项目创建后自动生成:
├── 项目ID (Project Reference)
├── API URL
├── 匿名密钥 (anon key)
├── 服务密钥 (service_role key)
└── JWT密钥

二、Dashboard概览 #

2.1 导航菜单 #

text
Dashboard布局
├── 左侧导航
│   ├── Home - 项目概览
│   ├── Table Editor - 表编辑器
│   ├── SQL Editor - SQL编辑器
│   ├── Database - 数据库管理
│   ├── Authentication - 认证管理
│   ├── Storage - 存储管理
│   ├── Edge Functions - 边缘函数
│   ├── Realtime - 实时订阅
│   ├── Logs - 日志查看
│   ├── Reports - 报告统计
│   └── Settings - 项目设置
│
└── 主内容区
    └── 根据选择显示不同内容

2.2 项目设置 #

text
Settings 页面
├── General - 常规设置
│   ├── 项目名称
│   ├── 项目ID
│   └── 删除项目
│
├── API - API设置
│   ├── Project URL
│   ├── API Keys
│   └── JWT设置
│
├── Auth - 认证设置
│   ├── URL配置
│   ├── 认证提供商
│   └── 邮件模板
│
├── Database - 数据库设置
│   ├── 连接信息
│   ├── 连接池
│   └── 扩展管理
│
└── Storage - 存储设置
    └── 全局配置

三、获取项目配置 #

3.1 API配置信息 #

text
Settings > API

Project URL
├── 格式: https://xxxxxxxx.supabase.co
└── 用途: 客户端连接地址

API Keys
├── anon public
│   ├── 用途: 客户端使用
│   ├── 权限: 受RLS限制
│   └── 安全: 可以公开
│
└── service_role
    ├── 用途: 服务端使用
    ├── 权限: 绕过RLS
    └── 安全: ⚠️ 必须保密!

3.2 数据库连接信息 #

text
Settings > Database

Connection Info
├── Host: db.xxxxxxxx.supabase.co
├── Database name: postgres
├── Port: 5432 (直连) / 6543 (连接池)
├── User: postgres
└── Password: 创建时设置的密码

Connection String
├── JDBC格式
├── ODBC格式
├── .NET格式
└── PHP格式

3.3 JWT配置 #

text
Settings > API > JWT Settings

JWT Secret
├── 用途: 验证JWT令牌
├── 格式: 随机字符串
└── 安全: ⚠️ 必须保密!

JWT Configuration
├── 算法: HS256
├── 过期时间: 默认3600秒
└── 可自定义配置

四、项目配置示例 #

4.1 环境变量配置 #

bash
# .env.local

# Supabase项目URL
NEXT_PUBLIC_SUPABASE_URL=https://xxxxxxxx.supabase.co

# 匿名密钥 (可公开)
NEXT_PUBLIC_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

# 服务密钥 (仅服务端使用,必须保密)
SUPABASE_SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

4.2 配置文件示例 #

typescript
// lib/supabase.ts
import { createClient } from '@supabase/supabase-js'

const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL!
const supabaseAnonKey = process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!

export const supabase = createClient(supabaseUrl, supabaseAnonKey)

4.3 服务端配置 #

typescript
// lib/supabase-admin.ts
import { createClient } from '@supabase/supabase-js'

const supabaseUrl = process.env.NEXT_PUBLIC_SUPABASE_URL!
const serviceRoleKey = process.env.SUPABASE_SERVICE_ROLE_KEY!

// 服务端客户端,绕过RLS
export const supabaseAdmin = createClient(supabaseUrl, serviceRoleKey, {
  auth: {
    autoRefreshToken: false,
    persistSession: false
  }
})

五、使用CLI创建项目 #

5.1 登录CLI #

bash
# 登录Supabase账号
supabase login

# 浏览器会打开授权页面
# 完成授权后返回终端

5.2 创建新项目 #

bash
# 列出所有项目
supabase projects list

# 创建新项目
supabase projects create my-new-project

# 交互式创建
supabase projects create
# 会提示输入:
# - 项目名称
# - 数据库密码
# - 区域

5.3 链接现有项目 #

bash
# 初始化本地项目
supabase init

# 链接到远程项目
supabase link --project-ref xxxxxxxx

# 项目ID可以在Dashboard的Settings > General找到

六、项目区域选择 #

6.1 可用区域 #

区域 代码 适合用户
Northeast Asia (Tokyo) ap-northeast-1 中国、日本、韩国
Southeast Asia (Singapore) ap-southeast-1 东南亚
West US (San Francisco) us-west-1 美国西部
East US (N. Virginia) us-east-1 美国东部
West EU (Frankfurt) eu-west-1 欧洲西部
West EU (Ireland) eu-west-2 欧洲西部
South Asia (Mumbai) ap-south-1 印度
Southeast Asia (Sydney) ap-southeast-2 澳大利亚

6.2 区域选择建议 #

text
选择原则
├── 选择离用户最近的区域
├── 考虑数据合规要求
├── 考虑成本差异
└── 区域一旦选择无法更改

七、免费额度说明 #

7.1 Free计划限制 #

资源 免费额度
数据库 500MB
存储 1GB
带宽 5GB/月
并发连接 60
Edge Functions 500K调用/月
Realtime 200并发连接
团队成员 2人

7.2 Pro计划限制 #

资源 Pro额度
数据库 8GB
存储 100GB
带宽 250GB/月
并发连接 200
Edge Functions 2M调用/月
Realtime 500并发连接
团队成员 无限制
价格 $25/月

八、项目安全设置 #

8.1 数据库密码 #

text
数据库密码要求
├── 至少16个字符
├── 包含大小写字母
├── 包含数字
├── 包含特殊字符
└── 不要使用常见单词

8.2 API密钥管理 #

text
密钥使用原则
├── anon key
│   ├── 可在前端使用
│   ├── 受RLS保护
│   └── 可以公开
│
└── service_role key
    ├── 仅在服务端使用
    ├── 绕过所有安全策略
    ├── 绝对不能暴露
    └── 不要提交到代码仓库

8.3 环境变量安全 #

bash
# .gitignore
.env
.env.local
.env.*.local
*.pem
*.key

# 使用环境变量管理工具
# - Doppler
# - Vault
# - AWS Secrets Manager

九、常见问题 #

9.1 项目创建失败 #

text
可能原因
├── 组织配额已满
│   └── 解决: 升级计划或删除不用的项目
│
├── 区域不可用
│   └── 解决: 选择其他区域
│
└── 网络问题
    └── 解决: 检查网络连接

9.2 忘记数据库密码 #

text
重置密码步骤
├── Settings > Database
├── 点击 "Reset database password"
├── 输入新密码
└── 更新所有连接配置

9.3 项目暂停 #

text
免费项目暂停规则
├── 7天无活动自动暂停
├── 暂停后数据保留
├── 访问时自动恢复
└── Pro计划不会暂停

十、总结 #

项目创建检查清单:

步骤 状态
注册账号
创建组织
创建项目
保存数据库密码
获取API密钥
配置环境变量
选择合适区域

下一步,让我们初始化客户端SDK!

最后更新:2026-03-28