'Feuerwehr Mitgliedsantrag', 'base_url' => '/', 'contact_email' => 'kontakt@example.org', 'submission_success_message' => 'Ihr Antrag wurde erfolgreich empfangen. Bei Fragen kontaktieren Sie %contact_email%.', 'disclaimer' => [ 'title' => 'Wichtiger Hinweis', 'text' => "Bitte lesen Sie diesen Hinweis vor Beginn sorgfaeltig.\n\nMit dem Fortfahren bestaetigen Sie, dass Ihre Angaben vollstaendig und wahrheitsgemaess sind.\nIhre Daten werden ausschliesslich zur Bearbeitung des Mitgliedsantrags verwendet.", 'accept_label' => 'Hinweis gelesen, weiter zum Antrag', ], 'address_disclaimer' => [ 'text' => 'Bitte geben Sie Ihre vollstaendige Meldeadresse inklusive Hausnummer an.', ], 'retention' => [ 'draft_days' => 14, 'submission_days' => 90, ], 'uploads' => [ 'max_size' => 10 * 1024 * 1024, 'allowed_extensions' => ['pdf', 'jpg', 'jpeg', 'png', 'webp'], 'allowed_mimes' => [ 'application/pdf', 'image/jpeg', 'image/png', 'image/webp', ], ], 'rate_limit' => [ 'enabled' => true, 'requests' => 30, 'window_seconds' => 300, ], 'verification' => [ 'required' => true, 'inactivity_seconds' => 3600, 'otp_ttl_seconds' => 600, 'otp_attempt_limit' => 5, 'resend_cooldown_seconds' => 60, ], 'admin' => [ // Feste Zugangsdaten als Tabelle (hardcoded). // Hash mit: php -r "echo password_hash('DEIN-PASSWORT', PASSWORD_DEFAULT), PHP_EOL;" // Alternativ: Online Tool: https://bcrypt-generator.com/ 'credentials' => [ [ 'username' => 'admin', 'password_hash' => '', ], ], 'session_timeout_seconds' => 3600, ], 'storage' => [ 'drafts' => $root . '/storage/drafts', 'submissions' => $root . '/storage/submissions', 'uploads' => $root . '/storage/uploads', 'rate_limit' => $root . '/storage/rate_limit', 'logs' => $root . '/storage/logs', 'locks' => $root . '/storage/locks', ], ];