Skip to content

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-Key

JVM 配置

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.net

AI 内容审核配置(腾讯云 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=AstrNest

Vite 配置 (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'
  }
})

配置优先级

配置的优先级(从高到低):

  1. 环境变量(运行时注入)
  2. .env 文件中的变量
  3. application.yml 中的配置
  4. 默认配置

配置验证

后端配置检查

启动时会自动检查以下配置:

  • 数据库连接是否可用
  • 存储路径是否可写
  • 管理员账号是否已配置

前端配置检查

构建时会检查以下配置:

  • VITE_API_BASE_URL 是否设置
  • VITE_PUBLIC_ASSET_BASE 是否设置

配置最佳实践

安全配置

  1. 使用强密码: 数据库密码和管理员密码应使用强随机字符串
  2. 启用 HTTPS: 生产环境必须启用 HTTPS
  3. 保护敏感配置: 不要将 .env 文件提交到版本控制
  4. 定期更换密钥: 定期更换 API 密钥和数据库密码

性能配置

  1. 启用 CDN: 加速静态资源访问
  2. 配置缓存: 合理配置浏览器和服务器缓存
  3. JVM 调优: 根据服务器内存调整 JVM 参数
  4. 数据库优化: 配置连接池和查询缓存

生产环境配置检查清单

  • [ ] 修改了所有默认密码
  • [ ] 配置了正确的站点域名
  • [ ] 启用了 HTTPS
  • [ ] 配置了邮件服务
  • [ ] 配置了 AI 内容审核(如需要)
  • [ ] 配置了数据备份
  • [ ] 配置了监控告警
  • [ ] 配置了日志轮转