AstrNest 配置文件
配置文件概览
AstrNest 使用多个配置文件来管理应用的不同方面:
- 环境变量文件 (.env): 应用基础配置,Docker Compose 和本地部署的统一入口
- 后端配置文件 (application.yml): 后端服务详细配置
- 前端配置文件 (.env.development/.env.production): 前端构建配置
环境变量配置 (.env)
数据库配置
bash
# MySQL 数据库配置(用于初始化 mysql 容器)
MYSQL_ROOT_PASSWORD=ChangeThisRootPass!
MYSQL_DATABASE=astrnest
MYSQL_USER=astrnest
MYSQL_PASSWORD=ChangeThisDbPass!
# 后端 JDBC 连接配置
ASTRNEST_DB_URL=jdbc:mysql://mysql:3306/astrnest?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
ASTRNEST_DB_USERNAME=astrnest
ASTRNEST_DB_PASSWORD=ChangeThisDbPass!存储配置
bash
# 本地存储路径
ASTRNEST_STORAGE_ROOT=/home/chenxi/storage/upload
ASTRNEST_STORAGE_PUBLIC=/upload
# 存储策略:LOCAL、ALIYUN_OSS、TENCENT_COS、S3_COMPATIBLE、UPYUN_USS、ONEDRIVE
ASTRNEST_STORAGE_STRATEGY=LOCAL上传限制配置
bash
# 文件大小限制(必须 <=20MB,与数据库 CHECK 约束匹配)
ASTRNEST_MULTIPART_MAX_FILE_SIZE=20MB
ASTRNEST_MULTIPART_MAX_REQUEST_SIZE=20MB
# API 默认配额
ASTRNEST_API_DEFAULT_QUOTA=1000
ASTRNEST_API_KEY_HEADER=X-API-KeyJVM 配置
bash
# JVM 参数
JAVA_OPTS=-Xms512m -Xmx512m管理员配置
bash
# 初始管理员账号
ASTRNEST_ADMIN_USERNAME=admin
ASTRNEST_ADMIN_PASSWORD=chenxi123
ASTRNEST_ADMIN_DISPLAY=超级管理员
ASTRNEST_ADMIN_EMAIL=admin@example.com站点域名配置
bash
# 站点域名(用于邮件等场景)
ASTRNEST_ASSET_DOMAIN=
PUBLIC_SITE_URL=https://luminouschenxi.net
PUBLIC_ASSET_URL=https://luminouschenxi.net/upload
BACKEND_API_PUBLIC_URL=https://api.luminouschenxi.netAI 内容审核配置(腾讯云 COS CI)
bash
# 腾讯云 AI 审核配置
ASTRNEST_AI_TENCENT_SECRET_ID=your-secret-id
ASTRNEST_AI_TENCENT_SECRET_KEY=your-secret-key
ASTRNEST_AI_TENCENT_REGION=ap-beijing
ASTRNEST_AI_TENCENT_BUCKET=your-bucket-1250000000
ASTRNEST_AI_TENCENT_DETECT_SCENES=web,camera,album,news
ASTRNEST_AI_BLOCK_CONFIDENCE=90
ASTRNEST_AI_REVIEW_CONFIDENCE=60
ASTRNEST_AI_LABEL_MIN_CONFIDENCE=60邮件服务配置
bash
# SMTP 配置
SMTP_HOST=smtp.example.com
SMTP_PORT=465
SMTP_USERNAME=no-reply@example.com
SMTP_PASSWORD=your-email-password
SMTP_SECURE_TYPE=ssl
SMTP_FROM_EMAIL=no-reply@example.com
SMTP_FROM_NAME=AstrNest Mailer视频缩略图配置(FFmpeg)
bash
# 视频缩略图配置
ASTRNEST_VIDEO_THUMBNAIL_ENABLED=true
ASTRNEST_VIDEO_THUMBNAIL_FFMPEG_PATH=ffmpeg
ASTRNEST_VIDEO_THUMBNAIL_CAPTURE_OFFSET=5
ASTRNEST_VIDEO_THUMBNAIL_QUALITY=80
ASTRNEST_VIDEO_THUMBNAIL_TIMEOUT_SECONDS=30
ASTRNEST_VIDEO_THUMBNAIL_COVER_DIRECTORY=/storage/upload/covers
ASTRNEST_VIDEO_THUMBNAIL_MAX_LOAD_AVERAGE=4.0前端配置
bash
# 前端 API 配置
VITE_API_BASE_URL=http://localhost:8080
VITE_PUBLIC_ASSET_BASE=http://localhost:8080/upload
VITE_SITE_NAME=AstrNest后端配置文件 (application.yml)
服务器配置
yaml
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://127.0.0.1:3306/astrnest?useSSL=false&allowPublicKeyRetrieval=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
username: astrnest
password: astrnestPass!
driver-class-name: com.mysql.cj.jdbc.Driver
servlet:
multipart:
max-file-size: 20MB
max-request-size: 20MB存储配置
yaml
astrnest:
storage:
strategy: LOCAL
local:
root: /storage/upload
public-base-url: /upload管理员配置
yaml
astrnest:
admin:
username: admin
password: chenxi123
display-name: 超级管理员
email: admin@example.com前端配置文件
开发环境 (.env.development)
bash
VITE_API_BASE_URL=http://localhost:8080
VITE_PUBLIC_ASSET_BASE=http://localhost:8080/upload
VITE_SITE_NAME=AstrNest生产环境 (.env.production)
bash
VITE_API_BASE_URL=https://api.yourdomain.com
VITE_PUBLIC_ASSET_BASE=https://cdn.yourdomain.com/upload
VITE_SITE_NAME=AstrNestVite 配置 (vite.config.js)
javascript
export default defineConfig({
server: {
port: 5173,
proxy: {
'/api': {
target: process.env.VITE_API_BASE_URL || 'http://localhost:8080',
changeOrigin: true
},
'/upload': {
target: process.env.VITE_UPLOAD_URL || 'http://localhost:8080',
changeOrigin: true
}
}
},
build: {
outDir: 'dist',
assetsDir: 'assets'
}
})配置优先级
配置的优先级(从高到低):
- 环境变量(运行时注入)
.env文件中的变量application.yml中的配置- 默认配置
配置验证
后端配置检查
启动时会自动检查以下配置:
- 数据库连接是否可用
- 存储路径是否可写
- 管理员账号是否已配置
前端配置检查
构建时会检查以下配置:
VITE_API_BASE_URL是否设置VITE_PUBLIC_ASSET_BASE是否设置
配置最佳实践
安全配置
- 使用强密码: 数据库密码和管理员密码应使用强随机字符串
- 启用 HTTPS: 生产环境必须启用 HTTPS
- 保护敏感配置: 不要将
.env文件提交到版本控制 - 定期更换密钥: 定期更换 API 密钥和数据库密码
性能配置
- 启用 CDN: 加速静态资源访问
- 配置缓存: 合理配置浏览器和服务器缓存
- JVM 调优: 根据服务器内存调整 JVM 参数
- 数据库优化: 配置连接池和查询缓存
生产环境配置检查清单
- [ ] 修改了所有默认密码
- [ ] 配置了正确的站点域名
- [ ] 启用了 HTTPS
- [ ] 配置了邮件服务
- [ ] 配置了 AI 内容审核(如需要)
- [ ] 配置了数据备份
- [ ] 配置了监控告警
- [ ] 配置了日志轮转