- 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:生产部署四形态对照表、目录树与验证表更新
43 lines
1.4 KiB
Bash
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
|