Files
qrcode-generator/.env.example
T
Florian Wilde c8d60d8006 Anmeldung ueber Authentik und andere OIDC-Anbieter
Anmeldefluss mit PKCE (S256), State und Nonce. Das ID-Token wird gegen den
JWKS des Anbieters geprueft — Signatur, Aussteller, Empfaenger, Ablauf und
Nonce; alles Noetige kommt aus dem Discovery-Dokument, damit die Anbindung
nicht auf Authentik festgelegt ist.

Wiedererkannt wird jemand an der Kennung des Anbieters (sub), nicht an der
E-Mail-Adresse — Adressen aendern sich. Ein bestehendes Konto mit derselben
Adresse wird verknuepft statt verdoppelt, aber nur bei bestaetigter Adresse:
sonst koennte sich beim Anbieter jemand eine fremde Adresse eintragen und
damit ein hiesiges Konto uebernehmen.

Uebernommen wird bewusst nur, wer jemand ist — plus die Instanz-Administration,
wenn OIDC_ADMIN_GROUP gesetzt ist. Gruppen und Rollen bleiben Sache dieser
Anwendung: die Gruppen im Verzeichnis bedeuten etwas anderes als die hier.

Konten aus dem Verzeichnis haben kein Passwort mehr (passwordHash ist jetzt
optional); Konto-Bereich und Passwort-Anmeldung sagen das statt an einer
leeren Pruefung zu scheitern.

Anleitung mit allen Feldern in Authentik: docs/authentik.md
2026-08-15 00:12:21 +02:00

69 lines
2.8 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
# --- Anmeldung ueber Authentik oder einen anderen OIDC-Anbieter -------------
# Setzt AUTH_ENABLED=true voraus. Einrichtung siehe docs/authentik.md.
OIDC_ENABLED=false
# Basis-URL des Anbieters, unter der /.well-known/openid-configuration liegt.
# Bei Authentik: https://auth.example.com/application/o/<slug>/
OIDC_ISSUER=
OIDC_CLIENT_ID=
OIDC_CLIENT_SECRET=
# Beschriftung des Knopfs auf der Anmeldeseite.
OIDC_BUTTON_LABEL=Mit Authentik anmelden
# Angeforderte Bereiche. "openid" ist Pflicht, "email" wird gebraucht.
OIDC_SCOPES=openid email profile
# Nur noch ueber den Anbieter anmelden? Dann verschwindet das Passwortfeld.
# Vorsicht: Faellt der Anbieter aus, kommt niemand mehr hinein — zum Loesen
# hier auf false setzen und neu starten.
OIDC_ONLY=false
# Rolle, die neu angelegte Benutzer in der Standardgruppe bekommen.
# VIEWER (nur lesen), EDITOR (Codes anlegen und aendern) oder ADMIN.
OIDC_DEFAULT_ROLE=VIEWER
# Gruppe beim Anbieter, deren Mitglieder die Verwaltung oeffnen duerfen.
# Leer lassen, um die Administratorrechte hier in der Anwendung zu pflegen.
OIDC_ADMIN_GROUP=
# Name des Anspruchs, in dem die Gruppen stehen (Authentik: groups).
OIDC_GROUPS_CLAIM=groups
# --- 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