{
  "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
    }
  ]
}
