Skip to main content

⚙️ 配置说明

本文档详细说明 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

🆘 故障排查

如果配置出现问题:

  1. 检查环境变量: echo $KEY_NAME
  2. 查看应用日志: logs/next_console.log
  3. 验证配置加载:
    from app import create_app
    app = create_app()
    print(app.config.get('KEY_NAME'))