Sicherheit: - .htaccess im Projektstamm mit X-Content-Type-Options, X-Frame-Options, Referrer-Policy, Permissions-Policy und einer Content-Security-Policy; da alle Assets lokal liegen, erlaubt sie nur noch die eigene Herkunft (Ausnahme: hCaptcha, falls aktiviert) - includes/, tools/, tests/, updater/storage und uploads/ schützen sich über eigene .htaccess-Dateien – auch bei Installation im Unterordner - Docker: AllowOverride All, damit diese Regeln überhaupt greifen, und ein Volume für uploads/, damit Logos ein Image-Update überstehen Werkzeuge: - tools/screenshots.py erzeugt alle Bilder in docs/screenshots aus der Demo-Instanz; tools/README.md beschreibt beides - Einstellungs-Tabs sind per ?tab=… direkt verlinkbar (serverseitig, also auch ohne JavaScript) Dokumentation: Readme um Markenfarben, Bild-Upload, lokale Assets, Sicherheits-Header (inkl. Nginx-Entsprechung) und einen Abschnitt "Entwicklung" ergänzt; Screenshots neu erzeugt, Version 2.6.0. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1.4 KiB
1.4 KiB
Werkzeuge
Demo-Instanz (tools/demo/build.py)
Baut aus dem Projekt eine lauffähige Kopie ohne Datenbank: Database und
Auth werden durch Stubs mit festen Beispieldaten ersetzt (tools/demo/overlay/).
Das Original bleibt unverändert.
python3 tools/demo/build.py /tmp/uvt-demo
php -S 127.0.0.1:8123 -t /tmp/uvt-demo
Nützlich für:
- Screenshots für die Dokumentation – immer mit denselben Daten
- Smoke-Test – jede Seite einmal rendern, ohne MySQL aufzusetzen
Demo-spezifische Zustände werden über Query-Parameter erreicht:
| Parameter | Wirkung |
|---|---|
?demo=result / ?demo=bulk |
Voucher-Ergebnis bzw. Bulk-Liste auf index.php |
?demo=new |
frisch erzeugter Schlüssel auf admin/api_keys.php |
?anon=1 |
nicht angemeldet (für die Login-Seite) |
?theme=dark |
erzwingt den Dark Mode |
?brand=custom / ?brand=nopanel |
Beispiel-Branding der Login-Seite |
Screenshots (tools/screenshots.py)
Rendert die Bilder aus docs/screenshots/ neu. Voraussetzung ist ein
headless Chromium; der Pfad kommt aus $CHROME_BIN oder wird in den
üblichen Verzeichnissen gesucht.
python3 tools/demo/build.py /tmp/uvt-demo
php -S 127.0.0.1:8123 -t /tmp/uvt-demo &
CHROME_BIN=/usr/bin/chromium python3 tools/screenshots.py
Die Skripte sind Hilfsmittel für die Entwicklung – im Betrieb werden sie nicht
benötigt und sind per .htaccess nicht über HTTP erreichbar.