{ "listen": ":8080", "admin_password_hash": "", "admin_password": "CHANGE_ME_ADMIN_PASSWORD", "client_signature_key": "ymhut-box-feedback-client-v1", "package_encryption_key": "ymhut-box-feedback-package-v1", "timestamp_window_seconds": 600, "max_request_bytes": 12582912, "max_package_bytes": 10485760, "storage_dir": "./storage", "database_path": "./storage/feedback.sqlite", "mail": { "host": "mail.example.com", "port": 465, "secure": "ssl", "username": "sender@example.com", "password": "CHANGE_ME_MAIL_PASSWORD", "from_address": "sender@example.com", "from_name": "YMhut Box Feedback", "developer_address": "developer@example.com", "timeout_seconds": 20 }, "rate_limit": { "submission_per_minute": 20, "submission_burst": 5, "status_per_minute": 120, "status_burst": 30, "captcha_per_minute": 60, "captcha_burst": 10, "login_per_minute": 12, "login_burst": 3, "admin_read_per_minute": 300, "admin_read_burst": 60, "admin_write_per_minute": 90, "admin_write_burst": 20 }, "upload_guard": { "max_zip_files": 80, "max_decompressed_bytes": 31457280, "max_single_file_bytes": 8388608, "max_compression_ratio": 120, "max_readable_text_bytes": 262144, "allow_unexpected_zip_files": true }, "backup": { "dir": "./storage/backups" }, "webhooks": [ { "name": "ops", "url": "https://example.com/webhook", "secret": "CHANGE_ME_WEBHOOK_SECRET", "enabled": false, "events": [ "feedback.created", "feedback.updated", "feedback.status_changed", "feedback.comment_created", "mail.failed" ], "timeout_seconds": 5, "max_retries": 2 } ] }