# ============================================ # 环境配置 # ============================================ # 运行环境: dev (开发), test (测试), prod (生产) ENV=dev # ============================================ # 数据库配置 # ============================================ # MySQL 数据库连接字符串 # 格式: mysql+asyncmy://用户名:密码@主机:端口/数据库名?charset=utf8mb4 DATABASE_URL=mysql+asyncmy://root:password@localhost:3306/dibang?charset=utf8mb4 # ============================================ # JWT 配置 # ============================================ # JWT 密钥,生产环境必须设置强密钥(建议至少32个字符) JWT_SECRET=replace-me-with-strong-secret-key-in-production # 访问令牌过期时间(分钟) ACCESS_TOKEN_EXPIRES_MINUTES=60 # 刷新令牌过期时间(天) REFRESH_TOKEN_EXPIRES_DAYS=14 # ============================================ # 服务器配置 # ============================================ # 服务器监听地址 HOST=0.0.0.0 # 服务器端口 PORT=8000 # ============================================ # CORS 配置 # ============================================ # CORS 允许的源,多个用逗号分隔 # 示例: http://localhost:3000,http://localhost:8080,https://example.com # 使用 * 表示允许所有源(仅开发环境使用) CORS_ORIGINS=* # 是否允许携带凭证 CORS_ALLOW_CREDENTIALS=true # 允许的 HTTP 方法,多个用逗号分隔 # 示例: GET,POST,PUT,DELETE,OPTIONS CORS_ALLOW_METHODS=* # 允许的 HTTP 头,多个用逗号分隔 CORS_ALLOW_HEADERS=* # ============================================ # 数据库连接池配置 # ============================================ # 连接池中保持的连接数 DB_POOL_SIZE=10 # 连接池外可以额外创建的连接数(最大连接数 = DB_POOL_SIZE + DB_MAX_OVERFLOW) DB_MAX_OVERFLOW=20 # 从连接池获取连接的超时时间(秒) DB_POOL_TIMEOUT=30 # 连接回收时间(秒),避免 MySQL wait_timeout 导致的连接过期 DB_POOL_RECYCLE=3600 # 每次使用连接前先 ping,确保连接有效(建议保持 true) DB_POOL_PRE_PING=true