# CarrotSkin 环境配置文件示例 # 复制此文件为 .env 并修改相应的配置值 # ============================================================================= # 站点配置 # ============================================================================= SITE_NAME=CarrotSkin SITE_DESCRIPTION=一个优秀的Minecraft皮肤站 REGISTRATION_ENABLED=true DEFAULT_AVATAR= # ============================================================================= # 用户限制配置 # ============================================================================= MAX_TEXTURES_PER_USER=50 MAX_PROFILES_PER_USER=5 # ============================================================================= # 积分配置 # ============================================================================= CHECKIN_REWARD=10 TEXTURE_DOWNLOAD_REWARD=1 # ============================================================================= # 服务器配置 # ============================================================================= SERVER_PORT=:8080 SERVER_MODE=debug SERVER_READ_TIMEOUT=30s SERVER_WRITE_TIMEOUT=30s SERVER_SWAGGER_ENABLED=true # ============================================================================= # 数据库配置 # ============================================================================= DATABASE_DRIVER=postgres DATABASE_HOST=localhost DATABASE_PORT=5432 DATABASE_USERNAME=postgres DATABASE_PASSWORD=your_password_here DATABASE_NAME=carrotskin DATABASE_SSL_MODE=disable DATABASE_TIMEZONE=Asia/Shanghai # 连接池配置(优化后的默认值) # 最大空闲连接数:在连接池中保持的最大空闲连接数 # 建议值:CPU核心数 * 2 ~ CPU核心数 * 4 DATABASE_MAX_IDLE_CONNS=10 # 最大打开连接数:允许的最大并发连接数 # 建议值:根据并发需求调整,高并发场景可设置更高(如200-500) DATABASE_MAX_OPEN_CONNS=100 # 连接最大生命周期:连接被重用前的最大存活时间 # 建议值:30分钟到1小时,避免长时间占用连接 DATABASE_CONN_MAX_LIFETIME=1h # 连接最大空闲时间:连接被关闭前的最大空闲时间 # 建议值:5-15分钟,避免长时间空闲占用资源 DATABASE_CONN_MAX_IDLE_TIME=10m # 连接获取超时:等待获取连接的超时时间(新增) # 建议值:1-5秒,避免长时间阻塞 DATABASE_CONN_TIMEOUT=5s # 查询超时:单次查询的最大执行时间(新增) # 建议值:5-30秒,根据业务查询复杂度调整 DATABASE_QUERY_TIMEOUT=30s # 慢查询阈值:记录慢查询的阈值(优化:从200ms调整为100ms) # 超过此时间的查询将被记录为警告 DATABASE_SLOW_THRESHOLD=100ms # 健康检查间隔:定期检查数据库连接健康的间隔(新增) # 建议值:30秒到5分钟 DATABASE_HEALTH_CHECK_INTERVAL=30s # ============================================================================= # Redis配置(优化后的默认值) # ============================================================================= REDIS_HOST=localhost REDIS_PORT=6379 REDIS_PASSWORD= REDIS_DATABASE=0 # 连接池配置(优化后的默认值) # 连接池大小:允许的最大并发连接数 # 建议值:CPU核心数 * 4 ~ CPU核心数 * 8,根据并发需求调整 REDIS_POOL_SIZE=16 # 最小空闲连接数:在连接池中保持的最小空闲连接数 # 建议值:CPU核心数 * 2 ~ CPU核心数 * 4 REDIS_MIN_IDLE_CONNS=8 # 最大重试次数:操作失败时的最大重试次数 REDIS_MAX_RETRIES=3 # 连接超时:建立连接的超时时间 # 建议值:3-10秒 REDIS_DIAL_TIMEOUT=5s # 读取超时:读取数据的超时时间 # 建议值:3-5秒 REDIS_READ_TIMEOUT=3s # 写入超时:写入数据的超时时间 # 建议值:3-5秒 REDIS_WRITE_TIMEOUT=3s # 连接池超时:等待获取连接的超时时间 # 建议值:3-5秒 REDIS_POOL_TIMEOUT=4s # 连接最大空闲时间:连接被关闭前的最大空闲时间 # 建议值:5-15分钟,避免长时间空闲占用资源 REDIS_CONN_MAX_IDLE_TIME=10m # 连接最大生命周期:连接被重用前的最大存活时间 # 建议值:15-30分钟,避免长时间占用导致连接问题 REDIS_CONN_MAX_LIFETIME=30m # 健康检查间隔:定期检查Redis连接健康的间隔 # 建议值:30秒到5分钟 REDIS_HEALTH_CHECK_INTERVAL=30s # 错误时启用重试:操作失败时是否启用自动重试 # 建议值:true(生产环境),开发环境可设为false REDIS_ENABLE_RETRY_ON_ERROR=true # ============================================================================= # RustFS对象存储配置 (S3兼容) # ============================================================================= RUSTFS_ENDPOINT=127.0.0.1:9000 RUSTFS_PUBLIC_URL=http://127.0.0.1:9000 RUSTFS_ACCESS_KEY=your_access_key RUSTFS_SECRET_KEY=your_secret_key RUSTFS_USE_SSL=false RUSTFS_BUCKET_TEXTURES=carrot-skin-textures RUSTFS_BUCKET_AVATARS=carrot-skin-avatars # ============================================================================= # JWT配置 # ============================================================================= JWT_SECRET=your-jwt-secret-key-change-this-in-production JWT_EXPIRE_HOURS=168 # ============================================================================= # 日志配置 # ============================================================================= LOG_LEVEL=info LOG_FORMAT=json LOG_OUTPUT=logs/app.log # ============================================================================= # 安全配置 # ============================================================================= # CORS 允许的来源,多个用逗号分隔 SECURITY_ALLOWED_ORIGINS=* # 允许的头像/材质URL域名,多个用逗号分隔 SECURITY_ALLOWED_DOMAINS=localhost,127.0.0.1 # ============================================================================= # 邮件配置 # 腾讯企业邮箱SSL配置示例:smtp.exmail.qq.com, 端口465 # ============================================================================= EMAIL_ENABLED=false EMAIL_SMTP_HOST=smtp.example.com EMAIL_SMTP_PORT=587 EMAIL_USERNAME=noreply@example.com EMAIL_PASSWORD=your-email-password EMAIL_FROM_NAME=CarrotSkin