Files
AIGC/demo/CONFIGURATION_GUIDE.md
AIGC Developer 1e71ae6a26 feat: 系统优化和功能完善
主要更新:
- 调整并发配置为50人(数据库连接池30,Tomcat线程150,异步线程池5/20)
- 实现无界阻塞队列(LinkedBlockingQueue)任务处理
- 实现分镜视频保存功能(保存到uploads目录)
- 统一管理页面导航栏和右上角样式
- 添加日活用户统计功能
- 优化视频拼接和保存逻辑
- 添加部署文档和快速部署指南
- 更新.gitignore排除敏感配置文件
2025-11-07 19:09:50 +08:00

8.9 KiB
Raw Blame History

系统配置指南

本文档列出了系统中所有需要手动配置的重要配置项。

📋 配置项分类

1. 🔐 数据库配置(必须)

位置: application-dev.properties / application-prod.properties

# 开发环境(直接配置)
spring.datasource.url=jdbc:mysql://localhost:3306/aigc_platform?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
spring.datasource.username=root
spring.datasource.password=你的数据库密码

# 生产环境(使用环境变量)
spring.datasource.url=${DB_URL}
spring.datasource.username=${DB_USERNAME}
spring.datasource.password=${DB_PASSWORD}

说明:

  • 开发环境:直接修改配置文件中的数据库连接信息
  • 生产环境:通过环境变量配置,更安全

2. 🔑 JWT配置必须

位置: application-dev.properties / application-prod.properties

# 开发环境
jwt.secret=你的JWT密钥至少128位建议256位
jwt.expiration=86400000  # 24小时单位毫秒

# 生产环境(使用环境变量)
jwt.secret=${JWT_SECRET}
jwt.expiration=${JWT_EXPIRATION:604800000}  # 默认7天

说明:

  • jwt.secret: 用于签名JWT token的密钥必须修改为强随机字符串
  • jwt.expiration: Token过期时间毫秒

3. 🤖 AI API配置必须

位置: application-dev.properties / application-prod.properties

# Comfly API配置文生视频、图生视频、分镜视频
ai.api.base-url=https://ai.comfly.chat
ai.api.key=你的Comfly API密钥

# Comfly API配置文生图
ai.image.api.base-url=https://ai.comfly.chat
ai.image.api.key=你的Comfly API密钥

说明:

  • 可通过 API管理页面 在线修改(推荐)
  • 或直接修改配置文件
  • 修改后需要重启应用

4. 💰 支付宝配置(可选,如需支付功能)

位置: application-dev.properties / application-prod.properties

# 开发环境(沙箱测试)
alipay.app-id=你的支付宝应用ID
alipay.private-key=你的应用私钥RSA2格式
alipay.public-key=支付宝公钥RSA2格式
alipay.gateway-url=https://openapi-sandbox.dl.alipaydev.com/gateway.do
alipay.notify-url=你的回调通知URL
alipay.return-url=你的支付返回URL

# 生产环境(使用环境变量)
alipay.app-id=${ALIPAY_APP_ID}
alipay.private-key=${ALIPAY_PRIVATE_KEY}
alipay.public-key=${ALIPAY_PUBLIC_KEY}
alipay.gateway-url=https://openapi.alipay.com/gateway.do
alipay.notify-url=${ALIPAY_NOTIFY_URL}
alipay.return-url=${ALIPAY_RETURN_URL}

说明:

  • 开发环境使用支付宝沙箱进行测试
  • 生产环境需要申请正式支付宝应用
  • 私钥和公钥必须是RSA2格式

5. 📧 腾讯云SES邮件配置可选如需邮件功能

位置: application-dev.properties / application-prod.properties

# 开发环境
tencent.ses.secret-id=你的腾讯云SecretId
tencent.ses.secret-key=你的腾讯云SecretKey
tencent.ses.region=ap-hongkong
tencent.ses.from-email=你的发件邮箱
tencent.ses.from-name=AIGC平台
tencent.ses.template-id=你的邮件模板ID

# 生产环境(使用环境变量)
tencent.ses.secret-id=${TENCENT_SES_SECRET_ID}
tencent.ses.secret-key=${TENCENT_SES_SECRET_KEY}
tencent.ses.from-email=${TENCENT_SES_FROM_EMAIL}
tencent.ses.template-id=${TENCENT_SES_TEMPLATE_ID}

说明:

  • 需要在腾讯云SES控制台创建邮件模板
  • 如果template-id为0或未配置将使用开发模式仅记录日志

6. 🎬 FFmpeg配置可选如需视频拼接功能

位置: application-dev.properties / application-prod.properties

# 开发环境
app.ffmpeg.path=C:/Users/UI/AppData/Local/Microsoft/WinGet/Packages/Gyan.FFmpeg_Microsoft.Winget.Source_8wekyb3d8bbwe/ffmpeg-8.0-full_build/bin/ffmpeg.exe
app.temp.dir=./temp

# 生产环境(使用环境变量)
app.ffmpeg.path=${FFMPEG_PATH:ffmpeg}  # 如果在PATH中直接使用"ffmpeg"
app.temp.dir=${TEMP_DIR:./temp}

说明:

  • app.ffmpeg.path: FFmpeg可执行文件路径
    • Windows: 使用完整路径,如 C:\ffmpeg\bin\ffmpeg.exe
    • Linux/Mac: 如果在PATH中使用 ffmpeg;否则使用完整路径,如 /usr/bin/ffmpeg
  • app.temp.dir: 临时文件目录(用于视频处理)
    • 相对路径:基于应用运行目录
    • 绝对路径:如 /app/tempC:\app\temp

7. 🖥️ 服务器配置(可选,根据需求调整)

位置: application-dev.properties / application-prod.properties

# 服务器端口
server.port=8080

# Tomcat线程池配置支持并发
server.tomcat.threads.max=1000
server.tomcat.threads.min-spare=100
server.tomcat.max-connections=10000
server.tomcat.accept-count=500

# 请求体大小限制支持大图片Base64编码
server.tomcat.max-http-post-size=600MB
spring.servlet.multipart.max-file-size=500MB
spring.servlet.multipart.max-request-size=600MB

说明:

  • 根据实际并发需求调整线程池配置
  • 如果不需要处理大文件,可以减小请求体大小限制

8. 📊 数据库连接池配置(可选,根据需求调整)

位置: application-dev.properties / application-prod.properties

# HikariCP连接池配置
spring.datasource.hikari.maximum-pool-size=200
spring.datasource.hikari.minimum-idle=20
spring.datasource.hikari.idle-timeout=300000
spring.datasource.hikari.max-lifetime=1200000
spring.datasource.hikari.connection-timeout=30000
spring.datasource.hikari.leak-detection-threshold=60000

说明:

  • 根据数据库服务器性能和并发需求调整
  • 默认配置支持50人并发

9. 🗄️ JPA配置开发/生产环境不同)

位置: application-dev.properties / application-prod.properties

# 开发环境
spring.jpa.hibernate.ddl-auto=update  # 自动更新表结构
spring.jpa.show-sql=true  # 显示SQL语句

# 生产环境
spring.jpa.hibernate.ddl-auto=validate  # 仅验证,不自动修改
spring.jpa.show-sql=false  # 不显示SQL语句

说明:

  • 生产环境必须使用 validate,避免自动修改数据库结构
  • 开发环境可以使用 update 方便开发

🚀 快速配置清单

开发环境必须配置:

  • 数据库连接信息URL、用户名、密码
  • JWT密钥修改为强随机字符串
  • AI API密钥Comfly API

开发环境可选配置:

  • 支付宝沙箱配置(如需测试支付)
  • 腾讯云SES配置如需测试邮件
  • FFmpeg路径如需视频拼接

生产环境必须配置(通过环境变量):

  • DB_URL - 数据库连接URL
  • DB_USERNAME - 数据库用户名
  • DB_PASSWORD - 数据库密码
  • JWT_SECRET - JWT密钥
  • ALIPAY_APP_ID - 支付宝应用ID如需支付
  • ALIPAY_PRIVATE_KEY - 支付宝私钥(如需支付)
  • ALIPAY_PUBLIC_KEY - 支付宝公钥(如需支付)
  • ALIPAY_NOTIFY_URL - 支付回调URL如需支付
  • ALIPAY_RETURN_URL - 支付返回URL如需支付
  • TENCENT_SES_SECRET_ID - 腾讯云SecretId如需邮件
  • TENCENT_SES_SECRET_KEY - 腾讯云SecretKey如需邮件
  • TENCENT_SES_FROM_EMAIL - 发件邮箱(如需邮件)
  • TENCENT_SES_TEMPLATE_ID - 邮件模板ID如需邮件
  • FFMPEG_PATH - FFmpeg路径如需视频拼接
  • TEMP_DIR - 临时文件目录(如需视频拼接)

⚠️ 安全注意事项

  1. 不要将生产环境配置提交到代码仓库

    • 使用环境变量或外部配置文件
    • 将敏感信息添加到 .gitignore
  2. JWT密钥必须足够强

    • 至少128位建议256位
    • 使用随机字符串生成器生成
  3. 数据库密码

    • 使用强密码
    • 生产环境必须通过环境变量配置
  4. API密钥

    • 定期更换
    • 不要泄露给他人

📝 配置优先级

  1. 环境变量 > 配置文件
  2. application-{profile}.properties > application.properties
  3. 外部配置文件 > classpath配置文件

🔄 配置更新方式

方式1直接修改配置文件开发环境

  • 修改 application-dev.properties
  • 重启应用

方式2通过管理页面推荐

  • API密钥:通过"API管理"页面在线修改
  • 会员价格:通过"系统设置"页面在线修改

方式3环境变量生产环境

  • 设置环境变量
  • 重启应用

📞 配置问题排查

  1. 配置不生效

    • 检查配置文件路径是否正确
    • 检查环境变量是否正确设置
    • 检查是否需要重启应用
  2. 数据库连接失败

    • 检查数据库服务是否启动
    • 检查连接URL、用户名、密码是否正确
    • 检查防火墙设置
  3. API调用失败

    • 检查API密钥是否正确
    • 检查网络连接
    • 查看日志文件获取详细错误信息