app.sample.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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. 'submission_success_message' => 'Ihr Antrag wurde erfolgreich empfangen. Bei Fragen kontaktieren Sie %contact_email%.',
  9. 'disclaimer' => [
  10. 'title' => 'Wichtiger Hinweis',
  11. '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.",
  12. 'accept_label' => 'Hinweis gelesen, weiter zum Antrag',
  13. ],
  14. 'address_disclaimer' => [
  15. 'text' => 'Bitte geben Sie Ihre vollstaendige Meldeadresse inklusive Hausnummer an.',
  16. ],
  17. 'retention' => [
  18. 'draft_days' => 14,
  19. 'submission_days' => 90,
  20. ],
  21. 'uploads' => [
  22. 'max_size' => 10 * 1024 * 1024,
  23. 'allowed_extensions' => ['pdf', 'jpg', 'jpeg', 'png', 'webp'],
  24. 'allowed_mimes' => [
  25. 'application/pdf',
  26. 'image/jpeg',
  27. 'image/png',
  28. 'image/webp',
  29. ],
  30. ],
  31. 'rate_limit' => [
  32. 'enabled' => true,
  33. 'requests' => 30,
  34. 'window_seconds' => 300,
  35. ],
  36. 'verification' => [
  37. 'required' => true,
  38. 'inactivity_seconds' => 3600,
  39. 'otp_ttl_seconds' => 600,
  40. 'otp_attempt_limit' => 5,
  41. 'resend_cooldown_seconds' => 60,
  42. ],
  43. 'admin' => [
  44. // Feste Zugangsdaten als Tabelle (hardcoded).
  45. // Hash mit: php -r "echo password_hash('DEIN-PASSWORT', PASSWORD_DEFAULT), PHP_EOL;"
  46. // Alternativ: Online Tool: https://bcrypt-generator.com/
  47. 'credentials' => [
  48. [
  49. 'username' => 'admin',
  50. 'password_hash' => '',
  51. ],
  52. ],
  53. 'session_timeout_seconds' => 3600,
  54. ],
  55. 'storage' => [
  56. 'drafts' => $root . '/storage/drafts',
  57. 'submissions' => $root . '/storage/submissions',
  58. 'uploads' => $root . '/storage/uploads',
  59. 'rate_limit' => $root . '/storage/rate_limit',
  60. 'logs' => $root . '/storage/logs',
  61. 'locks' => $root . '/storage/locks',
  62. ],
  63. ];