前置条件
适用对象
要在本机跑通主席选举系统的技术部成员。
需要准备
| 项 | 说明 |
|---|---|
| Node.js | 建议 20+(维护环境实测过 22) |
| npm | 随 Node 安装即可 |
| Neon 项目 | 提供 DATABASE_URL;库中需已有 Auth.js 表与业务基础表 |
| Google Cloud OAuth 客户端 | Web 应用,回调见下 |
| Git | 克隆 BU-CSSA-Tech/CSSA-Election |
Google OAuth 回调
开发:
http://localhost:3000/api/auth/callback/google
生产把主机换成部署域名。客户端 ID / Secret 对应环境变量 AUTH_GOOGLE_ID、AUTH_GOOGLE_SECRET。
数据库前提
db/migrations 是增量脚本,不是从零建库。全新 Neon 库还需要:
- Auth.js / Neon Adapter 使用的
users、accounts、sessions等表 - 业务基础表:
campaigns、participation、ballots等
仓库没有完整 dump(neondb-full-dump.sql 被 gitignore)。新环境通常从已有业务库备份恢复,再按编号跑尚未执行的迁移。
冷启动登录
public.users 为空时,默认拒绝 Google 登录。本地第一次进入可以:
- 在库中先插入一条管理员(邮箱与你的 Google 账号一致),或
- 临时设置
AUTH_ALLOW_EMPTY_USER_TABLE=1(生产不要开)