⚙️ 配置说明
本文档详细说明 NextConsole 的所有配置参数,帮助您理解和定制系统设置。
📋 配置结构概览
NextConsole 采用分层配置架构,支持多种配置方式:
🏗️ 配置文件位置
主要配置文件
- Docker 部署:
docker/config/server/config_private.py - 源码部署:
server/app/config/config_private.py - 管理后台:
admin/app/config/config_private.py
🔧 配置参数详解
1. 应用基础配置
核心设置
# 域名和网络
app.config['DOMAIN'] = "http://localhost:8080" # 主服务域名
app.config['ADMIN_DOMAIN'] = "http://localhost:8082" # 管理后台域名
# 数据目录
app.config['DATA_DIR'] = "/app/data" # 数据存储根目录
app.config['DOWNLOAD_DIR'] = '/app/data/download' # 文件下载目录
业务限制
app.config['BUCKET_SIZE'] = 5000 # 分桶大小,用于数据目录存储
app.config['DOWNLOAD_COOL_TIME'] = 7200 # 下载冷却时间(秒),2小时
app.config['DOWNLOAD_MAX_COUNT'] = 100 # 单个用户最大下载次数
2. 安全认证配置
JWT 设置
app.config['JWT_SECRET_KEY'] = 'your-jwt-secret-key' # JWT签名密钥
app.config['JWT_ACCESS_TOKEN_EXPIRES'] = timedelta(days=7) # Token有效期7天
应用安全
app.config['SECRET_KEY'] = 'your-secret-key' # Flask应用密钥
3. 日志配置
app.config['LOG_DIR'] = 'logs' # 日志目录
app.config['LOG_FILE'] = 'next_console.log' # 日志文件名
app.config['LOG_LEVEL'] = "INFO" # 日志级别
app.config['LOG_MAX_BYTES'] = 10*1024*1024 # 单个日志文件大小(10MB)
app.config['LOG_BACKUP_COUNT'] = 10 # 备份日志文件数量
4. 数据库配置 (PostgreSQL)
连接参数
app.config["DB_TYPE"] = "postgresql" # 数据库类型
app.config["DB_USER"] = "next_console" # 数据库用户
app.config["DB_PASSWORD"] = "ncDBPassword" # 数据库密码
app.config["DB_HOST"] = "db" # 数据库主机
app.config["DB_PORT"] = "5432" # 数据库端口
app.config["DB_NAME"] = "next_console" # 数据库名称
app.config["DB_SCHEMA"] = "next_console" # 数据库模式
连接池优化
app.config['SQLALCHEMY_POOL_RECYCLE'] = 1800 # 连接回收时间(秒)
app.config['SQLALCHEMY_ENGINE_OPTIONS'] = {"pool_pre_ping": True} # 连接前ping检查
app.config['SQLALCHEMY_EXPIRE_ON_COMMIT'] = False # 提交后不使对象过期
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # 禁用修改跟踪
5. Redis 配置
基础连接
app.config['REDIS_HOST'] = "redis" # Redis主机
app.config['REDIS_PORT'] = 6379 # Redis端口
app.config['REDIS_USERNAME'] = None # Redis用户名
app.config['REDIS_PASSWORD'] = 'ncRedisPassword' # Redis密码
通道分配
app.config['NEXT_CONSOLE_CHANNEL'] = 2 # 主业务通道
app.config['WEBSOCKET_CHANNEL'] = 3 # WebSocket实时通信通道
app.config['CELERY_BROKER_CHANNEL'] = 0 # Celery消息代理通道
app.config['CELERY_RESULT_CHANNEL'] = 1 # Celery结果存储通道
6. 任务调度配置 (Celery)
Broker 设置
app.config['CELERY_BROKER_URL'] = "redis://redis:6379/0" # 消息代理URL
app.config['CELERY_RESULT_BACKEND'] = "redis://redis:6379/1" # 结果后端
任务配置
app.config['TIMEZONE'] = 'Asia/Shanghai' # 时区设置
app.config['TASK_SERIALIZER'] = 'json' # 任务序列化格式
app.config['RESULT_SERIALIZER'] = 'json' # 结果序列化格式
app.config['WORKER_CONCURRENCY'] = 12 # 工作线程并发数
app.config['TASK_TIMEOUT'] = 3600 # 任务超时时间(秒)
7. AI 模型配置
RAG 向量嵌入
app.config["EMBEDDING_ENDPOINT"] = "https://api.siliconflow.cn/v1/embeddings"
app.config["EMBEDDING_MODEL"] = "BAAI/bge-m3" # 嵌入模型
app.config["EMBEDDING_KEY"] = "" # API密钥
重排模型
app.config["RERANK_ENDPOINT"] = "https://api.siliconflow.cn/v1/rerank"
app.config["RERANK_MODEL"] = "BAAI/bge-reranker-v2-m3" # 重排模型
app.config["RERANK_KEY"] = "" # API密钥
搜索引擎
app.config["SEARCH_ENGINE_ENDPOINT"] = "https://google.serper.dev/search"
app.config["SEARCH_ENGINE_KEY"] = "" # 搜索引擎API密钥
8. 第三方服务集成
企业微信
app.config['WEWORK_TOKEN'] = "" # 企业微信Token
app.config['WEWORK_ENCODING_AES_KEY'] = "" # 加密AES密钥
app.config['WEWORK_CORP_ID'] = "" # 企业ID
app.config['WEWORK_CORP_SECRET'] = "" # 企业密钥
app.config['WEWORK_AGENT_ID'] = "" # 应用ID
邮件服务
app.config["ADMIN_EMAIL"] = "support@turingops.com.cn" # 管理员邮箱
app.config["SMTP_SERVER"] = "smtphz.qiye.163.com" # SMTP服务器
app.config["SMTP_PORT"] = 465 # SMTP端口(SSL)
app.config["SMTP_USER"] = "support@turingops.com.cn" # SMTP用户名
app.config["SMTP_PASSWORD"] = "" # SMTP密码
app.config["NOTICE_EMAIL"] = "support@turingops.com.cn" # 通知邮箱
微信小程序
app.config['WX_APP_ID'] = "" # 微信小程序AppID
app.config["WX_APP_SECRET"] = "" # 微信小程序AppSecret
短信服务 (阿里云)
app.config["ALIBABA_CLOUD_ACCESS_KEY_ID"] = "" # 阿里云AccessKey ID
app.config["ALIBABA_CLOUD_ACCESS_KEY_SECRET"] = "" # 阿里云AccessKey Secret
app.config["ALIBABA_CLOUD_ENDPOINT"] = "" # 阿里云端点
app.config["SIGN_NAME"] = "" # 短信签名
讯飞语音
app.config['XF_API'] = "" # 讯飞API地址
app.config["XF_APP_ID"] = "" # 讯飞应用ID
app.config["XF_API_KEY"] = "" # 讯飞API密钥
app.config["XF_API_SECRET"] = "" # 讯飞API密钥
🔧 配置最佳实践
1. 安全实践
# 生产环境务必修改默认密钥
app.config['JWT_SECRET_KEY'] = os.environ.get('JWT_SECRET_KEY', 'strong-random-string')
app.config['SECRET_KEY'] = os.environ.get('SECRET_KEY', 'another-strong-random-string')
2. 性能优化
# 根据硬件调整连接池大小
app.config['SQLALCHEMY_POOL_SIZE'] = 20
app.config['SQLALCHEMY_MAX_OVERFLOW'] = 10
app.config['WORKER_CONCURRENCY'] = multiprocessing.cpu_count() * 2
3. 监控配置
# 启用健康检查
app.config['HEALTH_CHECK_ENABLED'] = True
📊 配置检查清单
部署前请确认:
- ✅ 所有敏感信息已通过环境变量配置
- ✅ 数据库连接参数正确
- ✅ Redis 配置正确
- ✅ 域名配置为实际访问地址
- ✅ AI服务API密钥已配置
- ✅ 第三方服务密钥已配置
🚀 配置更新
修改配置后需要重启的服务
# Docker部署
docker compose restart server admin
# 源码部署
cd server && bash start.sh -m private
cd admin && bash start.sh -m private
🆘 故障排查
如果配置出现问题:
- 检查环境变量:
echo $KEY_NAME - 查看应用日志:
logs/next_console.log - 验证配置加载:
from app import create_app
app = create_app()
print(app.config.get('KEY_NAME'))