Files
backend/.env.example

155 lines
6.0 KiB
Plaintext
Raw Normal View History

# 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