From cdda55f9b09271194e12241162a008ea258c1eab Mon Sep 17 00:00:00 2001 From: Florian Wilde Date: Fri, 14 Aug 2026 14:29:39 +0200 Subject: [PATCH] AUTH_ENABLED an den Container durchreichen Der Schalter blieb wirkungslos: AUTH_ENABLED stand zwar in der .env und im README, fehlte aber im environment-Block des app-Dienstes. Docker Compose liest die .env nur, um Platzhalter wie \ zu ersetzen - in den Container gelangt ausschliesslich, was unter environment: aufgefuehrt ist. Wer die Anmeldung einschalten wollte, blieb deshalb ohne jede Rueckmeldung im Zustand 'ohne Anmeldung' haengen. Gefunden hat das Florian beim Benutzen. Meine Pruefungen liefen alle gegen 'next start' mit direkt gesetzter Umgebungsvariable und konnten die Luecke zwischen .env und Container deshalb gar nicht sehen. - AUTH_ENABLED steht jetzt im environment des app-Dienstes, mit Hinweis im docker-compose.yml, warum das Ergaenzen dort nicht vergessen werden darf. - Neue Pruefung compose-env.mjs: vergleicht die dokumentierten Variablen mit dem aufgeloesten Compose-Setup und mit der Umgebung des laufenden Containers. Genau diese Klasse von Fehler faellt damit kuenftig auf. - README: Hinweis, dass die .env von git pull nicht angefasst wird und die Zeile in aelteren Installationen fehlt, plus ein Befehl zum Nachpruefen. Geprueft gegen den Container in beiden Stellungen: 63 Pruefungen fuer Anmeldung und Rollen sowie 34 fuer Multi-Domain mit AUTH_ENABLED=true, dazu 293 mit false. --- README.md | 24 ++++++++++++++++++++---- docker-compose.yml | 7 +++++++ 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ee461e3..58d7e7a 100644 --- a/README.md +++ b/README.md @@ -487,10 +487,26 @@ In der `.env`: AUTH_ENABLED=true ``` -Danach `docker compose up -d`. Beim nächsten Aufruf erscheint die -**Ersteinrichtung** und du legst den ersten Administrator an. Diese Seite -schließt sich, sobald es einen Benutzer gibt — danach führt sie zur normalen -Anmeldung. +Danach: + +```bash +docker compose up -d +``` + +Beim nächsten Aufruf erscheint die **Ersteinrichtung** und du legst den +ersten Administrator an. Diese Seite schließt sich, sobald es einen Benutzer +gibt — danach führt sie zur normalen Anmeldung. + +> **Fehlt die Zeile in deiner `.env`?** Die `.env` wird von `git pull` nicht +> angefasst — sie gehört bewusst nicht ins Repository. Wurde sie vor +> Einführung der Anmeldung angelegt, fehlt `AUTH_ENABLED` darin. Einfach +> ergänzen; ohne die Zeile gilt `false`. + +Ob es angekommen ist, zeigt: + +```bash +docker compose exec app env | grep AUTH_ENABLED +``` > **Aussperren ist nicht möglich.** Der Schalter steht bewusst in der `.env` > und nicht in der Oberfläche. Wer den Zugang verliert, setzt diff --git a/docker-compose.yml b/docker-compose.yml index f9383ee..a480278 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -28,9 +28,16 @@ services: db: condition: service_healthy environment: + # Achtung beim Ergänzen: Compose liest die .env nur, um Platzhalter wie + # ${BASE_URL} zu ersetzen. In den Container gelangt ausschließlich, was + # hier aufgeführt ist — eine neue Variable in der .env allein bleibt + # wirkungslos. + # # Öffentliche Adresse der App — landet in jedem dynamischen QR-Code. BASE_URL: ${BASE_URL:-http://localhost:3000} DATABASE_URL: ${DATABASE_URL} + # Anmeldung mit Benutzern, Gruppen und Rollen. + AUTH_ENABLED: ${AUTH_ENABLED:-false} ports: # Direktes Port-Mapping, bewusst ohne Reverse Proxy. - "${APP_PORT:-3000}:3000"