Damit sind alle 15 QR-Typen gebaut. PDF und Bild brauchen eine hochgeladene Datei. Die liegt in der Datenbank, nicht auf der Platte: damit bleibt es bei einem Volumen, das gesichert werden muss — ein zweites wird beim Sichern zu leicht vergessen. Geprueft wird der Dateiinhalt, nicht die Endung; eine Textdatei namens harmlos.pdf kommt nicht durch. SVG ist bewusst nicht erlaubt, weil es Skripte enthalten darf und von derselben Adresse wie die Anwendung ausgeliefert wuerde. Ausgeliefert wird mit nosniff und einer CSP-Sandbox, damit auch ein PDF mit Skripten nichts anrichtet. Dateien haengen am Code: wird er geloescht, geht sie mit. Eine ausgetauschte oder nie gespeicherte Datei wird nach 24 Stunden weggeraeumt. Eine fremde Datei laesst sich nicht an den eigenen Code haengen — sonst koennte man sie einem anderen Code entziehen. Feedback sammelt Note und Kommentar, ohne Name, IP oder Geraetekennung. Die Auswertung mit Durchschnitt, Verteilung und Kommentaren ist aus der Codeliste erreichbar — ein Feedback-Code ohne Auswertung waere nur die halbe Sache.
38 lines
1.6 KiB
Bash
38 lines
1.6 KiB
Bash
# ---------------------------------------------------------------------------
|
|
# QR-Code-Generator — Konfiguration
|
|
# Diese Datei nach ".env" kopieren und anpassen:
|
|
# cp .env.example .env
|
|
# ---------------------------------------------------------------------------
|
|
|
|
# Öffentliche Adresse, unter der die App erreichbar ist. Sie wird in
|
|
# dynamische QR-Codes einkodiert ({BASE_URL}/r/{slug}) und muss deshalb von
|
|
# den Geräten erreichbar sein, die den Code scannen.
|
|
# Im LAN z. B.: http://192.168.1.50:3000
|
|
BASE_URL=http://localhost:3000
|
|
|
|
# Host-Port, unter dem die App veröffentlicht wird (Port-Mapping APP_PORT:3000).
|
|
APP_PORT=3000
|
|
|
|
# Anmeldung mit Benutzern, Gruppen und Rollen.
|
|
# false — jeder, der die App erreicht, darf alles (Einzelplatz/LAN).
|
|
# true — Anmeldung erforderlich. Beim ersten Aufruf legst du den ersten
|
|
# Administrator an.
|
|
# Bewusst hier und nicht in der Oberfläche: so kann man sich nicht aussperren.
|
|
# Wer den Zugang verliert, setzt den Wert zurück auf false und startet neu.
|
|
AUTH_ENABLED=false
|
|
|
|
# Groesste erlaubte Datei fuer die Typen "PDF" und "Bild", in Megabyte.
|
|
# Die Dateien liegen in der Datenbank — wer die sichert, hat alles. Sehr
|
|
# grosse Werte machen die Sicherung entsprechend schwer.
|
|
MAX_UPLOAD_MB=10
|
|
|
|
# --- PostgreSQL ------------------------------------------------------------
|
|
POSTGRES_USER=qrcode
|
|
POSTGRES_PASSWORD=bitte-aendern
|
|
POSTGRES_DB=qrcode
|
|
|
|
# Verbindungsstring der App zur Datenbank.
|
|
# "db" ist der Servicename aus docker-compose.yml — innerhalb des Compose-
|
|
# Netzwerks wird darüber die Datenbank aufgelöst.
|
|
DATABASE_URL=postgresql://qrcode:bitte-aendern@db:5432/qrcode?schema=public
|