2026-09-11 21:57:38 +08:00
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
|
# 班级小助手 - 后端服务环境变量
|
|
|
|
|
|
# 复制为 .env 后按需修改:cp .env.example .env
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
# 运行环境:development | test | production
|
|
|
|
|
|
NODE_ENV=development
|
|
|
|
|
|
|
|
|
|
|
|
# HTTP / WebSocket 监听端口
|
|
|
|
|
|
PORT=4000
|
|
|
|
|
|
|
|
|
|
|
|
# 数据库类型:sqlite | mysql
|
|
|
|
|
|
# 说明:sqlite 用于本地开发;mysql 用于云端统一存储(见 docs/mysql.md)
|
|
|
|
|
|
DATABASE_PROVIDER=sqlite
|
|
|
|
|
|
|
|
|
|
|
|
# SQLite:相对路径以 packages/server 为基准
|
|
|
|
|
|
DATABASE_URL="file:./prisma/dev.db"
|
|
|
|
|
|
# MySQL 示例(切换时替换上面一行,并执行 pnpm db:switch:mysql):
|
|
|
|
|
|
# DATABASE_URL="mysql://classhelper:your-password@127.0.0.1:3306/classhelper"
|
|
|
|
|
|
|
|
|
|
|
|
# JWT 签名密钥:必须修改,建议 `node -e "console.log(require('crypto').randomBytes(48).toString('hex'))"`
|
|
|
|
|
|
JWT_SECRET=change-me-to-a-random-48-bytes-hex-string
|
|
|
|
|
|
# JWT 有效期,例如 7d / 12h
|
|
|
|
|
|
JWT_EXPIRES_IN=7d
|
|
|
|
|
|
|
|
|
|
|
|
# 允许跨域的来源,多个用英文逗号分隔;* 表示全部允许(开发环境)
|
|
|
|
|
|
CORS_ORIGIN=*
|
|
|
|
|
|
|
|
|
|
|
|
# bcrypt 加密强度
|
|
|
|
|
|
BCRYPT_ROUNDS=10
|
|
|
|
|
|
|
2026-10-05 16:39:38 +08:00
|
|
|
|
# 新建班级 / 新增教师未指定密码时使用的初始密码
|
|
|
|
|
|
# (学生没有个人账号,因此没有 DEFAULT_STUDENT_PASSWORD —— 见 AGENTS.md §5 第 31 条)
|
|
|
|
|
|
DEFAULT_CLASS_PASSWORD=123456
|
|
|
|
|
|
DEFAULT_TEACHER_PASSWORD=123456
|
2026-09-11 21:57:38 +08:00
|
|
|
|
# 学期配置:第 1 教学周的周一日期(YYYY-MM-DD),用于“当前周次”换算
|
|
|
|
|
|
TERM_START_DATE=2026-02-23
|
|
|
|
|
|
|
|
|
|
|
|
# 日志级别:debug | info | warn | error
|
|
|
|
|
|
LOG_LEVEL=info
|
2026-09-12 00:20:21 +08:00
|
|
|
|
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
|
# 生产部署相关(本地开发保持默认即可)
|
|
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
|
|
# 监听地址:本地开发用 127.0.0.1;服务器/容器用 0.0.0.0
|
|
|
|
|
|
HOST=0.0.0.0
|
|
|
|
|
|
|
|
|
|
|
|
# 反向代理层数:使用 Nginx / 云负载均衡时填 1,用于正确识别客户端 IP(限流依赖)
|
|
|
|
|
|
TRUST_PROXY=false
|
|
|
|
|
|
|
|
|
|
|
|
# Web 管理端构建产物目录;留空则自动探测 packages/web-admin/dist 或 ./web
|
|
|
|
|
|
WEB_DIST_DIR=
|
|
|
|
|
|
|
|
|
|
|
|
# 接口限流开关(压测时可临时置 false)
|
|
|
|
|
|
RATE_LIMIT_ENABLED=true
|
|
|
|
|
|
|
|
|
|
|
|
# 启动时校验数据库连通性(生产建议 true:连不上直接启动失败,避免带病对外服务)
|
|
|
|
|
|
STARTUP_DB_CHECK=true
|
|
|
|
|
|
|
|
|
|
|
|
# 数据库为空时自动执行迁移(SQLite 场景;安装程序首次启动用)
|
|
|
|
|
|
AUTO_MIGRATE=false
|