OPERATIONS.md 2.3 KB

Operations

Apache

  • Server: Apache HTTPD
  • Erforderlich: mod_rewrite aktiv
  • Erforderlich: AllowOverride All im Projektpfad
  • Root-.htaccess muss vorhanden sein und wird für Routing/Zugriffsschutz genutzt.

Cron Cleanup

Täglich ausführen:

php /pfad/zum/projekt/bin/cleanup.php

Retention

  • Drafts: config/app.local.php -> retention.draft_days (Default 14)
  • Submissions: config/app.local.php -> retention.submission_days (Default 90)

Konfiguration (Sample-Setup)

  • Versionierte Vorlagen: config/app.sample.php, config/mail.sample.php
  • Stabile Loader-Dateien im Repo: config/app.php, config/mail.php
  • Lokale Runtime-Dateien: config/app.local.php, config/mail.local.php
  • Erstsetup:
    • cp config/app.sample.php config/app.local.php
    • cp config/mail.sample.php config/mail.local.php
  • config/*.local.php sind lokal und sollen nicht in Git versioniert werden.

Logs

  • storage/logs/cleanup.log
  • storage/logs/mail.log
  • storage/logs/app.log
  • storage/logs/php_runtime.log
  • storage/logs/php_fatal.log

Rate Limiting

  • Konfiguration: config/app.local.php -> rate_limit
  • Persistenz: storage/rate_limit/
  • Detaillierte Doku: docs/RATE_LIMITING.md
  • Bei erhöhten 429-Antworten zuerst requests/window_seconds prüfen und gegen reale Nutzerlast kalibrieren.
  • Für Tests kann das Limiting global deaktiviert werden: rate_limit.enabled = false.

Backup

Regelmäßig sichern:

  • storage/submissions/
  • storage/uploads/
  • config/*.local.php

storage/drafts/ ist temporär und kann bei Bedarf ausgeschlossen werden.

Restore

  1. Projektdateien deployen.
  2. Backup von storage/submissions und storage/uploads zurückspielen.
  3. config/*.local.php wiederherstellen.
  4. Schreibrechte prüfen.

Troubleshooting

  • Keine Mails: Mailfunktion des Hosters prüfen, mail.log ansehen.
  • Upload Fehler: upload_max_filesize / post_max_size und Schema-Limits prüfen.
  • Login geht nicht: config/app.local.php -> admin.credentials prüfen (username + password_hash).
  • ZIP Download fehlgeschlagen: ZipArchive Erweiterung auf Hosting prüfen.
  • Viele 429 Antworten: docs/RATE_LIMITING.md prüfen, Limits anpassen oder storage/rate_limit/ kontrollieren.
  • 500 ohne Apache/PHP-Fehlerausgabe: storage/logs/php_fatal.log und storage/logs/php_runtime.log prüfen.