env: prod server: http: addr: "0.0.0.0:8080" tcp: addr: "0.0.0.0:9000" proxy_protocol: true tls: cert_file: "" key_file: "" max_frame_size: 65536 idle_timeout: 120s keepalive: 30s recv_buffer: 16777216 send_buffer: 16777216 multicore: true compress_min_size: 512 id: snowflake_worker_id: 1 log: level: info encoding: json console: true file: path: "logs/spark-server.log" max_size_mb: 100 max_backups: 7 max_age_days: 7 compress: true mysql: dsn: "spark:@tcp(mysql:3306)/spark?charset=utf8mb4&parseTime=True&loc=Local" slow_threshold: 200ms log_level: "" max_open_conns: 64 max_idle_conns: 16 conn_max_lifetime: 30m conn_max_idle_time: 10m redis: addr: "redis:6379" username: "" password: "" db: 0 deliver_queue_key: "deliver:queue" deliver_processing_key: "deliver:processing" deliver_done_prefix: "deliver:done:" jwt: secret: "dev-only-change-me" issuer: "spark-im" ttl: 168h refresh_ttl: 720h denylist_prefix: "denylist:" refresh_prefix: "refresh:" taskpool: size: 256 queue: 1024 deliver: workers: 8 take_timeout: 5s done_ttl: 10m session: outbound_queue_size: 1024 rate_limit: message_per_second: 20 auth_per_second: 5 sync_inbox_per_minute: 60 sync_messages_per_minute: 120 history_per_minute: 200 upload_per_second: 10 message: max_content_size: 65536 sync_limit: 200 msgid_expire_ms: 300000 object_storage: endpoint: "rustfs:9000" access_key: "" secret_key: "" bucket: "spark" region: "us-east-1" use_ssl: false presign_ttl: 15m chat_expire_days: 365