Unifi-Voucher-Tool/tools/README.md
Friederich Loheide 36e06ac817 Sicherheits-Header, Werkzeuge und Dokumentation
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>
2026-09-23 06:49:14 +00:00

42 lines
1.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.
```bash
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.
```bash
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.