2025-12-20 09:37:43 +08:00
|
|
|
|
# IDC设备管理系统环境配置示例
|
|
|
|
|
|
# 复制此文件为 .env 并根据需要修改配置
|
|
|
|
|
|
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
# 服务器配置
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
|
|
|
|
|
|
# 服务器端口(默认8000)
|
|
|
|
|
|
# 如需修改,请设置为其他端口号
|
|
|
|
|
|
PORT=8000
|
|
|
|
|
|
|
|
|
|
|
|
# 运行环境(development/production)
|
|
|
|
|
|
# development: 开发模式,详细日志便于调试
|
|
|
|
|
|
# production: 生产模式,性能优化,减少日志输出
|
|
|
|
|
|
NODE_ENV=development
|
|
|
|
|
|
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
# 数据库配置
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
|
|
|
|
|
|
# 数据库类型:sqlite(默认)或 mysql
|
|
|
|
|
|
# sqlite: 零配置嵌入式数据库,适合开发和小规模应用
|
|
|
|
|
|
# mysql: 关系型数据库,适合生产环境和大规模应用
|
|
|
|
|
|
DB_TYPE=sqlite
|
|
|
|
|
|
|
|
|
|
|
|
# SQLite 配置(当DB_TYPE=sqlite时使用)
|
|
|
|
|
|
# SQLite数据库文件路径,文件会自动创建
|
|
|
|
|
|
DB_PATH=./idc_management.db
|
|
|
|
|
|
|
|
|
|
|
|
# MySQL 配置(当DB_TYPE=mysql时使用)
|
|
|
|
|
|
# 注意:使用MySQL前请确保MySQL服务已安装并创建相应的数据库
|
|
|
|
|
|
# 数据库创建命令:CREATE DATABASE idc_management CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
|
|
MYSQL_HOST=localhost # MySQL服务器地址
|
|
|
|
|
|
MYSQL_PORT=3306 # MySQL端口号
|
|
|
|
|
|
MYSQL_USERNAME=root # MySQL用户名
|
|
|
|
|
|
MYSQL_PASSWORD= # MySQL密码(为空则无密码)
|
2026-02-10 10:56:50 +08:00
|
|
|
|
MYSQL_DATABASE=idc_management # MySQL数据库名
|
|
|
|
|
|
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
# 安全配置(必填)
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
|
|
|
|
|
|
# JWT 密钥 - 用于签名和验证用户身份令牌
|
|
|
|
|
|
# ⚠️ 安全警告:
|
|
|
|
|
|
# - 生产环境必须修改默认值,使用强随机密钥
|
|
|
|
|
|
# - 至少 32 位字符,推荐 64 位
|
|
|
|
|
|
# - 定期更换(建议每3-6个月)
|
|
|
|
|
|
# - 不要提交到代码仓库,仅保存在服务器环境变量
|
|
|
|
|
|
#
|
|
|
|
|
|
# 生成强密钥命令:
|
|
|
|
|
|
# PowerShell: -join ((48..57) + (65..90) + (97..122) | Get-Random -Count 64 | ForEach-Object { [char]$_ })
|
|
|
|
|
|
# Linux/Mac: openssl rand -base64 64
|
|
|
|
|
|
# Node.js: require('crypto').randomBytes(64).toString('hex')
|
|
|
|
|
|
#
|
|
|
|
|
|
JWT_SECRET=your-strong-secret-key-minimum-32-characters-change-in-production
|
|
|
|
|
|
|
|
|
|
|
|
# Token 过期时间(格式:数字+单位,如 24h, 2h, 30m)
|
|
|
|
|
|
# 建议:开发环境 24h,生产环境 2h 或更短
|
2026-03-06 14:39:52 +08:00
|
|
|
|
TOKEN_EXPIRY=24h
|
|
|
|
|
|
|
|
|
|
|
|
# 密码加密强度(bcrypt salt rounds)
|
|
|
|
|
|
# 默认值:10,范围:4-12,值越大越安全但计算越慢
|
|
|
|
|
|
SALT_ROUNDS=10
|
|
|
|
|
|
|
|
|
|
|
|
# 登录失败锁定阈值
|
|
|
|
|
|
# 连续登录失败超过此次数后锁定账户
|
|
|
|
|
|
MAX_LOGIN_ATTEMPTS=5
|
|
|
|
|
|
|
|
|
|
|
|
# 账户锁定时间(分钟)
|
|
|
|
|
|
# 登录失败锁定后的解锁等待时间
|
|
|
|
|
|
LOCK_TIME_MINUTES=30
|
|
|
|
|
|
|
|
|
|
|
|
# 密码最小长度
|
|
|
|
|
|
PASSWORD_MIN_LENGTH=6
|
|
|
|
|
|
|
|
|
|
|
|
# 用户名长度限制
|
|
|
|
|
|
USERNAME_MIN_LENGTH=3
|
|
|
|
|
|
USERNAME_MAX_LENGTH=50
|
|
|
|
|
|
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
# API 配置
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
|
|
|
|
|
|
# API 请求超时时间(毫秒)
|
|
|
|
|
|
API_TIMEOUT=30000
|
|
|
|
|
|
|
|
|
|
|
|
# 数据库查询超时时间(毫秒)
|
|
|
|
|
|
DB_QUERY_TIMEOUT=30000
|
|
|
|
|
|
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
# 分页配置
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
|
|
|
|
|
|
# 默认每页条数
|
|
|
|
|
|
DEFAULT_PAGE_SIZE=10
|
|
|
|
|
|
|
|
|
|
|
|
# 最大每页条数
|
|
|
|
|
|
MAX_PAGE_SIZE=1000
|
|
|
|
|
|
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
# 文件上传配置
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
|
|
|
|
|
|
# 最大文件上传大小(MB)
|
|
|
|
|
|
MAX_FILE_SIZE_MB=50
|
|
|
|
|
|
|
|
|
|
|
|
# 最大头像上传大小(MB)
|
|
|
|
|
|
MAX_AVATAR_SIZE_MB=5
|
|
|
|
|
|
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
# 重试配置
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
|
|
|
|
|
|
# 最大重试次数
|
|
|
|
|
|
MAX_RETRIES=3
|
|
|
|
|
|
|
|
|
|
|
|
# 重试延迟(毫秒)
|
|
|
|
|
|
RETRY_DELAY=1000
|
|
|
|
|
|
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
# 前端配置
|
|
|
|
|
|
# ==============================================
|
|
|
|
|
|
|
|
|
|
|
|
# 前端默认端口
|
|
|
|
|
|
FRONTEND_PORT=3000
|