| [server] | port | Listening port, default 3000. |
| host | Bind address. 127.0.0.1 for local only, 0.0.0.0 for external access. |
| worker_count | Push worker threads. Recommended CPU cores x 1-2 (default 4). |
| auth_token | API Auth Token (Optional). If enabled, request header must carry Authorization: Bearer <token>. Leave empty or comment out to disable. |
| [push.apns] | p8_key_path | P8 Private Key Path (Recommended). Compared to P12, never expires and supports multiple Apps. |
| key_id | P8 Key ID (10 chars), from Apple Developer. |
| team_id | Team ID (10 chars), from Apple Developer Membership. |
| sandbox | Use sandbox environment. true for dev, false for prod. |
| cert_path | P12 Certificate Path (Optional). Required if using P12 auth. |
| cert_password | P12 Certificate Password (Optional). |
| pool_max_idle_per_host | HTTP/2 Max Idle Connections per Host. Default 2. |
| pool_idle_timeout_secs | Idle connection timeout (seconds). Default 259200 (3 days). |
| connect_timeout_ms | TCP connection timeout (ms). Default 10000. |
| request_timeout_ms | Single request timeout (ms). Default 30000. |
| http2_keepalive_interval_secs | HTTP/2 Ping interval (seconds). Default 3600. |
| http2_keepalive_timeout_secs | HTTP/2 Ping timeout (seconds). Default 20. |
| max_retries | Max retries (network/server errors only). Default 3. |
| initial_retry_delay_ms | Initial retry delay (ms). Default 1000. |
| max_retry_delay_ms | Max retry delay (ms). Default 30000. |
| retry_backoff_multiplier | Retry backoff multiplier (exponential). Default 2.0. |
| [push.fcm] | service_account_path | Firebase Service Account JSON file path. |
| (通用网络配置) | Supports all pool_*, connect_*, request_*, http2_*, retry_* parameters above. |
| [wal] | path | Write-Ahead Log path. For crash recovery, ensuring no message loss. |
| max_size_mb | Max size per log file (MB). Rotate when exceeded. |
| max_files | Max number of old log files to keep. |
| max_age_days | Days to keep old log files. Default 7 days. |
| cleanup_interval_secs | Interval to clean up expired logs (seconds). |
| [engine] | queue_capacity | In-memory queue capacity. New requests exceeding this limit return 503 Service Unavailable.<br/>Formula: capacity ≥ peak_QPS × avg_processing_time |
| [security] | rate_limit_per_second | Rate limit per IP per second. 0 to disable (not recommended). |
| body_limit_bytes | Request body size limit (bytes). |