- Dockerfile:构建阶段补 `pnpm --filter @classhelper/server run db:generate`。生成产物 packages/server/src/generated/prisma 是 gitignored 的,而 pnpm install 用了 --ignore-scripts 跳过 postinstall,少了这一步 tsc 会报 "Cannot find module ../generated/prisma/client.js"(从 git clone 构建必踩) - 新增 deploy/docker-compose.sqlite.yml + deploy/.env.sqlite.example:只跑服务端一个容器(DATABASE_URL=file:/app/data/classhelper.db + 数据卷),首次启动靠 AUTO_MIGRATE=true 自动建表与建管理员。适合内存小的机器或与别的服务共用一台机器(MySQL 变体会多一个数据库进程) - docs/production.md:补 2.1 单容器变体说明(用法、适用场景、端口/生产自检注意事项、备份命令)
37 lines
1.3 KiB
Bash
37 lines
1.3 KiB
Bash
# ---------------------------------------------------------------------------
|
|
# 班级小助手 · Docker 单容器(SQLite)环境变量
|
|
# 复制为 deploy/.env.sqlite 后填写:cp deploy/.env.sqlite.example deploy/.env.sqlite
|
|
# 配合 deploy/docker-compose.sqlite.yml 使用
|
|
# ---------------------------------------------------------------------------
|
|
|
|
# 服务端对外端口(宿主机)。注意与同机其他服务错开:80/443 常被反代占用
|
|
SERVER_PORT=4000
|
|
|
|
# 应用版本(镜像标签)
|
|
APP_VERSION=0.1.0
|
|
|
|
# JWT 签名密钥(必填,必须 ≥32 位;不能包含 secret / change-me 等示例词)
|
|
# 生成:node -e "console.log(require('crypto').randomBytes(48).toString('hex'))"
|
|
JWT_SECRET=
|
|
|
|
# 令牌有效期
|
|
JWT_EXPIRES_IN=7d
|
|
|
|
# 允许的跨域来源;用域名访问时建议写成具体来源,例如 https://class.example.com
|
|
CORS_ORIGIN=*
|
|
|
|
# 首次启动创建的管理员账号(**部署后请立即登录修改密码**)
|
|
INITIAL_ADMIN_USERNAME=admin
|
|
INITIAL_ADMIN_PASSWORD=admin123
|
|
|
|
# 各类账号的默认初始密码(新增/重置时使用)
|
|
DEFAULT_STUDENT_PASSWORD=123456
|
|
DEFAULT_CLASS_PASSWORD=123456
|
|
DEFAULT_TEACHER_PASSWORD=123456
|
|
|
|
# 第 1 教学周的周一(用于"当前周次")
|
|
TERM_START_DATE=2026-08-31
|
|
|
|
# 日志级别:debug | info | warn | error
|
|
LOG_LEVEL=info
|