这是一个基于 Next.js + Supabase + Vercel 的单管理员后台项目,用于管理邮箱账号信息。
- 管理员用户名密码登录
- 邮箱账号列表展示
- 搜索
- 筛选
- 分页
- 新增
- 编辑
- 软删除
Next.jsTypeScriptSupabase PostgreSQLVercel
src/app:页面与路由处理src/components:页面组件src/lib:业务与工具函数supabase:建表与初始化 SQLdocs:需求、计划、部署文档
- 安装依赖
npm install- 复制环境变量模板并填写实际值
copy .env.example .env.local- 启动开发环境
npm run dev- 浏览器访问
http://localhost:3000
需要在 .env.local 中配置:
NEXT_PUBLIC_SUPABASE_URLNEXT_PUBLIC_SUPABASE_ANON_KEYSUPABASE_SERVICE_ROLE_KEYSESSION_SECRETADMIN_SEED_USERNAMEADMIN_SEED_PASSWORD
supabase/schema.sql 用于建表。
supabase/seed.sql 用于初始化管理员账号示例。
如果你需要先生成管理员密码哈希,可以运行:
node scripts/hash-password.mjs 你的管理员密码然后把输出结果替换到 supabase/seed.sql 里的 password_hash。
执行下面命令可以生成管理员密码哈希:
npm run hash:password -- 你的密码把输出结果替换到 supabase/seed.sql 的 password_hash 中,再执行 SQL。
推荐部署方式:
- 代码推送到 GitHub
- 在 Supabase 创建项目并执行 SQL
- 在 Vercel 导入 GitHub 仓库
- 配置环境变量后完成部署