164 lines
5.5 KiB
Plaintext
164 lines
5.5 KiB
Plaintext
# ===========================================
|
||
# 班级操行分管理系统 - 后端服务
|
||
#
|
||
# 开发者: Canglan
|
||
# 联系方式: admin@sea-studio.top
|
||
# 版权归属: Sea Network Technology Studio
|
||
# 许可证: MIT License
|
||
#
|
||
# 版权所有 © Sea Network Technology Studio
|
||
# ===========================================
|
||
|
||
# ===========================================
|
||
# FastAPI 应用配置
|
||
# ===========================================
|
||
|
||
# 应用名称 - 显示在API文档和日志中
|
||
APP_NAME=班级操行分管理系统
|
||
# 运行环境 - production(生产) / development(开发) / testing(测试)
|
||
# 生产环境会自动启用HTTPS重定向
|
||
APP_ENV=production
|
||
# 调试模式 - true开启详细错误信息,生产环境必须为false
|
||
DEBUG=False
|
||
# 应用密钥 - 用于会话加密,必须32位以上随机字符串
|
||
# 生成方法: openssl rand -hex 32
|
||
SECRET_KEY=your-super-secret-key-min-32-characters-long
|
||
# API版本号 - 用于路由前缀,如 /api/v1
|
||
API_VERSION=v1
|
||
|
||
# ===========================================
|
||
# MySQL 数据库配置
|
||
# ===========================================
|
||
|
||
# 数据库主机地址 - 本地用127.0.0.1,远程用实际IP
|
||
DB_HOST=127.0.0.1
|
||
# 数据库端口 - MySQL默认3306
|
||
DB_PORT=3306
|
||
# 数据库用户名 - 建议创建专用账户,不要用root
|
||
DB_USER=class_admin
|
||
# 数据库密码 - 使用强密码,包含大小写数字特殊字符
|
||
DB_PASSWORD=your-strong-db-password
|
||
# 数据库名称 - 固定为 classmanagerdb
|
||
DB_NAME=classmanagerdb
|
||
# 连接池大小 - 同时保持的数据库连接数,根据并发量调整
|
||
DB_POOL_SIZE=10
|
||
# 最大溢出连接 - 连接池满后最多额外创建的连接数
|
||
DB_MAX_OVERFLOW=20
|
||
|
||
# ===========================================
|
||
# Redis 缓存配置
|
||
# ===========================================
|
||
|
||
# Redis主机地址
|
||
REDIS_HOST=127.0.0.1
|
||
# Redis端口 - 默认6379
|
||
REDIS_PORT=6379
|
||
# Redis密码 - 建议设置,防止未授权访问
|
||
REDIS_PASSWORD=your-redis-password
|
||
# Redis数据库编号 - 0-15,建议使用独立数据库避免冲突
|
||
REDIS_DB=0
|
||
# 最大连接数 - 根据并发量调整,建议50-200
|
||
REDIS_MAX_CONNECTIONS=50
|
||
|
||
# ===========================================
|
||
# JWT 认证配置
|
||
# ===========================================
|
||
|
||
# JWT密钥 - 用于签名Token,必须32位以上随机字符串
|
||
# 生成方法: openssl rand -hex 32
|
||
JWT_SECRET_KEY=your-jwt-secret-key-min-32-chars
|
||
# JWT签名算法 - HS256对称加密
|
||
JWT_ALGORITHM=HS256
|
||
# Token过期时间(分钟)- 30分钟无操作需重新登录
|
||
JWT_EXPIRE_MINUTES=30
|
||
|
||
# ===========================================
|
||
# 密码加密配置
|
||
# ===========================================
|
||
|
||
# 密码盐值 - 固定字符串,用于SHA1+MD5双重加密
|
||
# 生成后不可更改,否则所有密码失效
|
||
# 生成方法: openssl rand -hex 16
|
||
PASSWORD_SALT=your-fixed-salt-string-for-password-hash
|
||
|
||
# ===========================================
|
||
# 调试入口配置
|
||
# ===========================================
|
||
|
||
# 调试入口路径 - 随机字符串,用于添加第一批管理员
|
||
# 建议使用32位随机字符串,只有开发人员知道此路径
|
||
# 添加完管理员后建议注释掉debug路由
|
||
# 生成方法: openssl rand -hex 16 | sed 's/\(..\)/\1/g' | cut -c1-32
|
||
DEBUG_PATH=/a7k9x2m4q8w1e3r5t6y7u8i9o0p1z2x3
|
||
|
||
# ===========================================
|
||
# 扣分规则配置
|
||
# ===========================================
|
||
# 注意:这些规则仅用于建议,实际操作时可选择是否应用扣分
|
||
|
||
# 作业未提交扣分 - 科代表标记未提交时建议扣分数值
|
||
DEDUCTION_HOMEWORK_NOT_SUBMIT=2
|
||
# 作业迟交扣分 - 迟交作业建议扣分数值
|
||
DEDUCTION_HOMEWORK_LATE=1
|
||
# 缺勤扣分 - 缺勤建议扣分数值
|
||
DEDUCTION_ATTENDANCE_ABSENT=5
|
||
# 迟到扣分 - 迟到建议扣分数值
|
||
DEDUCTION_ATTENDANCE_LATE=2
|
||
# 请假扣分 - 请假建议扣分数值
|
||
DEDUCTION_ATTENDANCE_LEAVE=1
|
||
|
||
# ===========================================
|
||
# 劳动委员固定分值配置
|
||
# ===========================================
|
||
|
||
# 劳动委员加分值 - 固定为1分
|
||
LABOR_POINTS_ADD=1
|
||
# 劳动委员扣分值 - 固定为-1分
|
||
LABOR_POINTS_SUBTRACT=-1
|
||
|
||
# ===========================================
|
||
# 班长加减分限制配置
|
||
# ===========================================
|
||
|
||
# 班长最大单次加分值
|
||
MONITOR_MAX_ADD=5
|
||
# 班长最大单次扣分值(负数)
|
||
MONITOR_MAX_SUBTRACT=-5
|
||
|
||
# ===========================================
|
||
# 日志配置
|
||
# ===========================================
|
||
|
||
# 日志级别 - DEBUG/INFO/WARNING/ERROR
|
||
# 生产环境建议INFO,开发环境可用DEBUG
|
||
LOG_LEVEL=INFO
|
||
# 单日志文件最大大小(字节)- 100MB = 104857600
|
||
LOG_MAX_BYTES=104857600
|
||
# 日志备份数量 - 保留30个历史日志文件
|
||
LOG_BACKUP_COUNT=30
|
||
# 日志保留天数 - 操作日志保留1年,访问日志保留90天
|
||
LOG_RETENTION_DAYS=365
|
||
|
||
# ===========================================
|
||
# CORS 跨域配置
|
||
# ===========================================
|
||
|
||
# 允许的跨域域名 - 多个域名用英文逗号分隔,不要有空格
|
||
# 生产环境必须指定具体域名,不能用 *
|
||
CORS_ORIGINS=https://your-frontend-domain.com,http://localhost:8080
|
||
|
||
# ===========================================
|
||
# 上传文件配置
|
||
# ===========================================
|
||
|
||
# 最大上传文件大小(字节)- 5MB = 5242880
|
||
MAX_UPLOAD_SIZE=5242880
|
||
# 允许的文件扩展名 - 多个用英文逗号分隔
|
||
ALLOWED_EXTENSIONS=json
|
||
|
||
# ===========================================
|
||
# 学生初始配置
|
||
# ===========================================
|
||
|
||
# 学生初始操行分 - 新生导入时的默认分数,默认60分
|
||
STUDENT_INITIAL_POINTS=60 |