Files
ClassHelper/deploy/.env.example
T
LoveChengke 70250151d0 feat(deploy,docs): Linux 原生部署(systemd 一键脚本 + unit 模板)+ 生产文档扩写
- deploy/install-linux.sh:Linux 一键部署(Node 版本检查 → 铺 /opt/classhelper → 生成 .env 与随机
  JWT_SECRET → 安装 systemd 服务 → 就绪探针;支持 --check/--port/--dir/--no-service/--uninstall)
- deploy/classhelper.service:systemd 单元模板(__NODE__/__DIR__/__USER__ 由脚本替换后安装)
- deploy/{.env.example,docker-compose.yml}:补充 DEFAULT_STUDENT/CLASS/TEACHER_PASSWORD 默认密码环境变量
- docs/production.md:新增形态 C(Linux systemd + SQLite)、Nginx + HTTPS、升级/备份/排障、探针与安全清单
- README.md:生产部署四形态对照表、目录树与验证表更新
2026-09-26 19:32:37 +08:00

43 lines
1.4 KiB
Bash

# ---------------------------------------------------------------------------
# 班级小助手 · Docker Compose 环境变量
# 复制为 deploy/.env 后填写:cp deploy/.env.example deploy/.env
# ---------------------------------------------------------------------------
# 服务端对外端口(宿主机)
SERVER_PORT=4000
# 应用版本(镜像标签)
APP_VERSION=0.1.0
# MySQL 配置
MYSQL_ROOT_PASSWORD=请改成强密码_root
MYSQL_DATABASE=classhelper
MYSQL_USER=classhelper
MYSQL_PASSWORD=请改成强密码_app
# JWT 签名密钥(必填,必须 ≥32 位;生成:
# docker run --rm node:22-slim node -e "console.log(require('crypto').randomBytes(48).toString('hex'))"
# 或本地: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