307 lines
8.9 KiB
Markdown
307 lines
8.9 KiB
Markdown
|
|
# 系统配置指南
|
|||
|
|
|
|||
|
|
本文档列出了系统中所有需要手动配置的重要配置项。
|
|||
|
|
|
|||
|
|
## 📋 配置项分类
|
|||
|
|
|
|||
|
|
### 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密钥是否正确
|
|||
|
|
- 检查网络连接
|
|||
|
|
- 查看日志文件获取详细错误信息
|
|||
|
|
|