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

307 lines
8.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 系统配置指南
本文档列出了系统中所有需要手动配置的重要配置项。
## 📋 配置项分类
### 1. 🔐 数据库配置(必须)
**位置**: `application-dev.properties` / `application-prod.properties`
```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`
```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`
```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`
```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`
```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`
```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/temp``C:\app\temp`
---
### 7. 🖥️ 服务器配置(可选,根据需求调整)
**位置**: `application-dev.properties` / `application-prod.properties`
```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`
```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`
```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密钥是否正确
- 检查网络连接
- 查看日志文件获取详细错误信息