app.sample.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. declare(strict_types=1);
  3. $root = dirname(__DIR__);
  4. return [
  5. 'project_name' => 'Feuerwehr Mitgliedsantrag',
  6. 'base_url' => '/',
  7. 'contact_email' => 'kontakt@example.org',
  8. 'disclaimer' => [
  9. 'title' => 'Wichtiger Hinweis',
  10. '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.",
  11. 'accept_label' => 'Hinweis gelesen, weiter zum Antrag',
  12. ],
  13. 'address_disclaimer' => [
  14. 'text' => 'Bitte geben Sie Ihre vollstaendige Meldeadresse inklusive Hausnummer an.',
  15. ],
  16. 'retention' => [
  17. 'draft_days' => 14,
  18. 'submission_days' => 90,
  19. ],
  20. 'uploads' => [
  21. 'max_size' => 10 * 1024 * 1024,
  22. 'allowed_extensions' => ['pdf', 'jpg', 'jpeg', 'png', 'webp'],
  23. 'allowed_mimes' => [
  24. 'application/pdf',
  25. 'image/jpeg',
  26. 'image/png',
  27. 'image/webp',
  28. ],
  29. ],
  30. 'rate_limit' => [
  31. 'enabled' => true,
  32. 'requests' => 30,
  33. 'window_seconds' => 300,
  34. ],
  35. 'admin' => [
  36. // Hash mit password_hash('DEIN-PASSWORT', PASSWORD_DEFAULT) erzeugen.
  37. 'password_hash' => '',
  38. // Fallback nur fuer initiales Setup, danach loeschen.
  39. 'password_plain_fallback' => '',
  40. 'session_timeout_seconds' => 3600,
  41. ],
  42. 'storage' => [
  43. 'drafts' => $root . '/storage/drafts',
  44. 'submissions' => $root . '/storage/submissions',
  45. 'uploads' => $root . '/storage/uploads',
  46. 'rate_limit' => $root . '/storage/rate_limit',
  47. 'logs' => $root . '/storage/logs',
  48. 'locks' => $root . '/storage/locks',
  49. ],
  50. ];