database: driver: sqlite3 dsn: "file:tss-rocks.db?_fk=1&cache=shared" server: port: 8080 host: localhost jwt: secret: "your-secret-key-here" # 在生产环境中应该使用环境变量 expiration: 24h # token 过期时间 logging: level: debug # debug, info, warn, error format: json # json, console storage: type: s3 # local or s3 local: root_dir: "./storage/media" s3: region: "us-east-1" bucket: "your-bucket-name" access_key_id: "your-access-key-id" secret_access_key: "your-secret-access-key" endpoint: "" # Optional, for MinIO or other S3-compatible services custom_url: "" # Optional, for CDN or custom domain (e.g., https://cdn.example.com/media) proxy_s3: false # If true, backend will proxy S3 requests instead of redirecting upload: max_size: 10 # 最大文件大小(MB) allowed_types: # 允许的文件类型 - image/jpeg - image/png - image/gif - image/webp - image/svg+xml - application/pdf - application/msword - application/vnd.openxmlformats-officedocument.wordprocessingml.document - application/vnd.ms-excel - application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - application/zip - application/x-rar-compressed - text/plain - text/csv allowed_extensions: # 允许的文件扩展名(小写) - .jpg - .jpeg - .png - .gif - .webp - .svg - .pdf - .doc - .docx - .xls - .xlsx - .zip - .rar - .txt - .csv rate_limit: # IP限流配置 ip_rate: 50 # 每秒请求数 ip_burst: 25 # 突发请求数 # 路由限流配置 route_rates: "/api/v1/auth/login": rate: 5 # 每秒5个请求 burst: 10 # 突发10个请求 "/api/v1/auth/register": rate: 2 # 每秒2个请求 burst: 5 # 突发5个请求 "/api/v1/media/upload": rate: 10 # 每秒10个请求 burst: 20 # 突发20个请求 access_log: enable_console: true # 启用控制台输出 enable_file: true # 启用文件日志 file_path: "./logs/access.log" # 日志文件路径 format: "json" # 日志格式 (json 或 text) level: "info" # 日志级别 rotation: max_size: 100 # 每个日志文件的最大大小(MB) max_age: 30 # 保留旧日志文件的最大天数 max_backups: 10 # 保留的旧日志文件的最大数量 compress: true # 是否压缩旧日志文件 local_time: true # 使用本地时间作为轮转时间