Files
chat/config.json
T
Ty Clifford eb57cde99f - Implemented across bootstrap.php, chat frontend, and dashboard:
Per-tier audio bitrate: Free 64, Plus 96, Pro 128 kbps.
Configurable text/voice reply threads and depth.
Registration/login-only honeypot and internal CAPTCHA.
Optional Google reCAPTCHA v2/v3 with server verification.
Archive/export support for replies and bitrate.
Dashboard controls for all settings.
Verified JavaScript, JSON, SQLite migrations, desktop/mobile UI, and 
browser console. Native PHP lint was unavailable because PHP is not 
installed.
Google implementation follows Siteverify and reCAPTCHA v3.
2026-06-09 10:59:58 -04:00

123 lines
2.5 KiB
JSON

{
"app": {
"base_url": ""
},
"chat": {
"max_message_length": 500,
"max_username_length": 12,
"poll_interval_ms": 2000,
"poll_timeout_ms": 12000,
"poll_max_backoff_ms": 15000,
"messages_per_page": 100,
"max_rendered_messages": 500,
"replies_enabled": true,
"reply_max_depth": 4,
"session_lock_ip": true,
"session_lock_cookie": true,
"allow_guest": false
},
"archive": {
"enabled": true,
"archive_dir": "archive",
"format": "sqlite"
},
"voice": {
"enabled": true,
"max_duration_seconds": 60,
"max_upload_bytes": 12582912,
"auto_play_default": true,
"upload_dir": "uploads/voice",
"transcoding": {
"enabled": false,
"ffmpeg_path": "ffmpeg",
"profile": "m4a_aac",
"audio_bitrate_kbps": 128,
"timeout_seconds": 45,
"fallback_to_source": true
}
},
"database": {
"main_db": "db/chat.sqlite",
"archive_path": "archive/{year}/{month}/{day}.sqlite",
"mysql": {
"enabled": false,
"auto_import": false,
"dsn": "",
"username": "",
"password": "",
"sync_interval_seconds": 900
}
},
"ui": {
"default_theme": "dark",
"allow_theme_toggle": true,
"app_title": "Chat : )",
"app_subtitle": "Be kind."
},
"security": {
"min_password_length": 4,
"max_login_attempts": 10,
"session_timeout_hours": 24,
"bcrypt_cost": 10,
"allowed_origins": [],
"captcha": {
"registration_enabled": true,
"login_enabled": true,
"honeypot": {
"enabled": true
},
"internal": {
"enabled": true,
"difficulty": "easy",
"ttl_seconds": 300,
"max_attempts": 3
},
"google": {
"enabled": false,
"version": "v2",
"site_key": "",
"secret_key": "",
"v3_min_score": 0.5,
"hostname": ""
}
}
},
"subscriptions": {
"enabled": true
},
"mailgun": {
"api_key": "",
"domain": "",
"from": "",
"api_base": "https://api.mailgun.net/v3"
},
"stripe": {
"secret_key": "",
"webhook_secret": "",
"success_url": "",
"cancel_url": "",
"portal_return_url": ""
},
"stats": {
"enabled": true,
"ip_hash_salt": "change-this-to-a-long-random-value"
},
"admin": {
"password": "changeme123"
},
"colors": {
"user_palette": [
"#00ff9f",
"#00b8ff",
"#ff2d78",
"#ff9f00",
"#ff3c3c",
"#bf5fff",
"#00ffff",
"#ffff00",
"#ff6b35",
"#39ff14"
]
}
}