# ============================================
# 玩玩云 - 环境配置文件示例
# ============================================
# 
# 使用说明:
# 1. 复制此文件为 .env
# 2. 根据实际情况修改配置值
# 3. ⚠️ 生产环境必须修改默认密码和密钥
#

# ============================================
# 服务器配置
# ============================================

# 服务端口
PORT=40001

# 运行环境（production 或 development）
NODE_ENV=production

# 强制HTTPS访问（生产环境建议开启）
# 设置为 true 时，仅接受 HTTPS 访问
ENFORCE_HTTPS=false

# 公开访问端口（nginx监听的端口，用于生成分享链接）
# 标准端口(80/443)可不配置
PUBLIC_PORT=80

# ============================================
# 安全配置
# ============================================

# 加密密钥（必须配置！）
# 用于加密 OSS Access Key Secret 等敏感数据
# 生成方法: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
ENCRYPTION_KEY=your-encryption-key-please-change-this

# JWT密钥（必须修改！）
# 生成方法: openssl rand -base64 32
# 或使用: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
JWT_SECRET=your-secret-key-PLEASE-CHANGE-THIS-IN-PRODUCTION

# Refresh Token 密钥（可选，默认使用 JWT_SECRET 派生）
# 建议生产环境设置独立的密钥
# REFRESH_SECRET=your-refresh-secret-key

# 管理员账号配置（首次启动时创建）
ADMIN_USERNAME=admin
ADMIN_PASSWORD=admin123

# ============================================
# CORS 跨域配置（重要！）
# ============================================

# 允许访问的前端域名
# 
# 格式说明:
#   - 单个域名: https://yourdomain.com
#   - 多个域名: https://domain1.com,https://domain2.com
#   - 开发环境: 留空或设置为 * （不安全，仅开发使用）
#
# ⚠️ 生产环境安全要求:
#   1. 必须配置具体的域名，不要使用 *
#   2. 必须包含协议 (http:// 或 https://)
#   3. 如果使用非标准端口，需要包含端口号
#
# 示例:
#   ALLOWED_ORIGINS=https://pan.example.com
#   ALLOWED_ORIGINS=https://pan.example.com,https://admin.example.com
#   ALLOWED_ORIGINS=http://localhost:8080  # 开发环境
#
ALLOWED_ORIGINS=

# Cookie 安全配置
# 使用 HTTPS 时必须设置为 true
# HTTP 环境设置为 false
COOKIE_SECURE=false

# CSRF 防护配置
# 启用 CSRF 保护（建议生产环境开启）
# 前端会自动从 Cookie 读取 csrf_token 并在请求头中发送
ENABLE_CSRF=false

# ============================================
# 反向代理配置（Nginx/Cloudflare等）
# ============================================

# 信任代理配置
#
# 配置选项:
#   - false: 不信任代理（默认，直接暴露到公网时使用）
#   - 1: 信任第1跳代理（推荐，单层Nginx反向代理时使用）
#   - 2: 信任前2跳代理（Cloudflare + Nginx）
#   - loopback: 仅信任本地回环地址
#   - true: 信任所有代理（不推荐，易被伪造IP）
#
# ⚠️ 重要: 如果使用 Nginx 反向代理并开启 ENFORCE_HTTPS=true
#          必须配置 TRUST_PROXY=1，否则后端无法正确识别HTTPS请求
#
TRUST_PROXY=false

# ============================================
# 存储配置
# ============================================

# 数据库路径
DATABASE_PATH=./data/database.db

# 本地存储根目录（本地存储模式使用）
STORAGE_ROOT=./storage

# ============================================
# OSS 云存储配置（可选）
# ============================================
#
# 说明: 用户可以在 Web 界面配置自己的 OSS 存储
#       支持：阿里云 OSS、腾讯云 COS、AWS S3
#       此处配置仅作为全局默认值（通常不需要配置）
#

# OSS_PROVIDER=aliyun          # 服务商: aliyun/tencent/aws
# OSS_REGION=oss-cn-hangzhou   # 地域
# OSS_ACCESS_KEY_ID=your-key   # Access Key ID
# OSS_ACCESS_KEY_SECRET=secret # Access Key Secret
# OSS_BUCKET=your-bucket       # 存储桶名称
# OSS_ENDPOINT=                # 自定义 Endpoint（可选）

# ============================================
# Session 配置
# ============================================

# Session 密钥（用于验证码等功能）
# 默认使用随机生成的密钥
# SESSION_SECRET=your-session-secret

# Session 过期时间（毫秒），默认 30 分钟
# SESSION_MAX_AGE=1800000

# ============================================
# 开发调试配置
# ============================================

# 日志级别 (error, warn, info, debug)
# LOG_LEVEL=info

# 是否启用调试模式
# DEBUG=false

# ============================================
# 注意事项
# ============================================
#
# 1. 生产环境必须修改以下配置:
#    - ENCRYPTION_KEY: 用于加密敏感数据（64位十六进制）
#    - JWT_SECRET: 使用强随机密钥（64位十六进制）
#    - ADMIN_PASSWORD: 修改默认密码
#    - ALLOWED_ORIGINS: 配置具体域名
#
# 2. 使用 HTTPS 时:
#    - ENFORCE_HTTPS=true
#    - COOKIE_SECURE=true
#    - TRUST_PROXY=1 (如使用反向代理)
#
# 3. 配置优先级:
#    环境变量 > .env 文件 > 默认值
#
# 4. 密钥生成命令:
#    node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
