fix(admin): Laenge des Seed-Passworts loggen, $-Falle dokumentieren

Ein $ im Wert wird von Docker Compose als Variable gelesen und schneidet
ab: Sicher$Passwort2026 kommt als Sicher an (gemessen). Angelegt wird ein
Konto mit einem Passwort, das niemand kennt; die Anmeldung scheitert mit
'invalid credentials', obwohl alles richtig eingetippt ist. Die Datenbank
laeuft dabei weiter, weil Postgres denselben abgeschnittenen Wert bekommt.

Der Start nennt jetzt die Laenge des Passworts (nicht den Wert) und warnt
unter 12 Zeichen mit dem Hinweis auf $$. Ohne diese Zahl war der Fehler
von aussen nicht zu sehen: Compose meldet zwar 'variable is not set', aber
auf stderr beim up, nicht im Container-Log.

Escape-Tabelle in README und beiden .env.example. Ein Backslash hilft
nicht.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
HoneyandClaude Opus 5 committed 2026-08-24 11:54:43 +02:00
1 parent 370d8ce0c7
commit 218b238afc
5 files changed
+92 -1

No files matched your search

+22
View File
@@ -143,6 +143,28 @@ Start.
Leerzeichen. Es gibt keine Liste erlaubter Zeichen – wer die erst nachschlagen
muss, wählt am Ende ein schwächeres Passwort.
**Ein `$` ist die Ausnahme, und zwar in *jedem* Wert.** Docker Compose liest
es als Variable und schneidet lautlos ab. Gemessen:
| in der `.env` | kommt an |
|---|---|
| `abc$def` | `abc` |
| `abc$$def` | `abc$def` ✓ |
| `'abc$def'` | `abc$def` ✓ |
| `abc\$def` | `abc\` |
Ein Backslash hilft also **nicht**. Das trifft besonders `ADMIN_PASSWORD`:
Angelegt wird dann ein Konto mit einem Passwort, das niemand kennt, und die
Anmeldung scheitert mit „invalid credentials", obwohl alles richtig eingetippt
ist. Nachsehen, was wirklich angekommen ist:
```bash
docker compose exec app printenv ADMIN_PASSWORD
```
Seit dem 24.08.2026 nennt der Start zusätzlich die **Länge** des Passworts und
warnt, wenn sie auffällig klein ist.
**`PUBLIC_URL`** ist die Adresse, unter der der **Browser** die Cloud sieht,
ohne Schrägstrich am Ende. Ein falscher Wert startet klaglos und fällt erst
auf, wenn ein Freigabe-Link oder ein OIDC-Rücksprung ins Leere zeigt.