app.sample.php 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  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. // Feste Zugangsdaten als Tabelle (hardcoded).
  37. // Hash mit: php -r "echo password_hash('DEIN-PASSWORT', PASSWORD_DEFAULT), PHP_EOL;"
  38. 'credentials' => [
  39. [
  40. 'username' => 'admin',
  41. 'password_hash' => '',
  42. ],
  43. ],
  44. 'session_timeout_seconds' => 3600,
  45. ],
  46. 'storage' => [
  47. 'drafts' => $root . '/storage/drafts',
  48. 'submissions' => $root . '/storage/submissions',
  49. 'uploads' => $root . '/storage/uploads',
  50. 'rate_limit' => $root . '/storage/rate_limit',
  51. 'logs' => $root . '/storage/logs',
  52. 'locks' => $root . '/storage/locks',
  53. ],
  54. ];