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.
This commit is contained in:
Florian Wilde
2026-08-14 14:29:39 +02:00
parent 6b2baa66c5
commit cdda55f9b0
2 changed files with 27 additions and 4 deletions
+20 -4
View File
@@ -487,10 +487,26 @@ In der `.env`:
AUTH_ENABLED=true AUTH_ENABLED=true
``` ```
Danach `docker compose up -d`. Beim nächsten Aufruf erscheint die Danach:
**Ersteinrichtung** und du legst den ersten Administrator an. Diese Seite
schließt sich, sobald es einen Benutzer gibt — danach führt sie zur normalen ```bash
Anmeldung. 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` > **Aussperren ist nicht möglich.** Der Schalter steht bewusst in der `.env`
> und nicht in der Oberfläche. Wer den Zugang verliert, setzt > und nicht in der Oberfläche. Wer den Zugang verliert, setzt
+7
View File
@@ -28,9 +28,16 @@ services:
db: db:
condition: service_healthy condition: service_healthy
environment: 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. # Öffentliche Adresse der App — landet in jedem dynamischen QR-Code.
BASE_URL: ${BASE_URL:-http://localhost:3000} BASE_URL: ${BASE_URL:-http://localhost:3000}
DATABASE_URL: ${DATABASE_URL} DATABASE_URL: ${DATABASE_URL}
# Anmeldung mit Benutzern, Gruppen und Rollen.
AUTH_ENABLED: ${AUTH_ENABLED:-false}
ports: ports:
# Direktes Port-Mapping, bewusst ohne Reverse Proxy. # Direktes Port-Mapping, bewusst ohne Reverse Proxy.
- "${APP_PORT:-3000}:3000" - "${APP_PORT:-3000}:3000"