Der Port war fest auf 127.0.0.1 gebunden. Richtig, solange ein Reverse
Proxy davorsteht – beim Ausprobieren in einer Testumgebung heißt es aber
ERR_CONNECTION_REFUSED, sobald man über die IP zugreift, und nichts im
Log deutet darauf hin: Der Kernel lehnt ab, bevor die Anwendung etwas
davon sieht.
APP_BIND ist jetzt eine Variable, Vorgabe bleibt 127.0.0.1. Gilt für die
App und für die Office-Container in allen drei README-Schnipseln.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Die beiden .env.example zusammen waren 251 Zeilen für 40 Schlüssel – gut
gemeint, aber niemand liest einen Absatz pro Variable. Jetzt eine Zeile je
Schlüssel (58 + 89), die Begründungen stehen im README unter
'Einstellungen', gebündelt als die sieben Dinge, die nicht beim Start
auffallen, sondern später.
Dabei durch einen echten Start aus den Beispieldateien gefunden:
STORAGE_PATH fehlte, Vorgabe ./data wird im Container zu /app/data, und
der Start endete in 'mkdir /app/data: permission denied'. Das Abbild setzt
STORAGE_PATH und TMP_PATH jetzt selbst – es kennt seine Verzeichnisse
besser als eine Beispieldatei. Eine .env darf weiter überschreiben.
Geprüft: jeder Schlüssel, den die Anwendung liest, steht weiterhin in
deploy/.env.example; eine frische Instanz startet allein aus den beiden
Beispieldateien.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Go-Backend (chi, pgx, golang-migrate) + React/TS-Frontend als PWA.
Enthalten: Auth inkl. OIDC, Dateien mit Versionen und Papierkorb,
Freigaben (Links + intern), WebDAV, Gruppenordner, Admin/Theming,
Volltextsuche mit OCR, eigener PDF-Betrachter und WOPI-Office
(Collabora/OnlyOffice).
Nicht im Repo: deploy/.env (Sitzungsschlüssel, DB- und Admin-Passwort)
sowie alle Daten- und Build-Verzeichnisse – siehe .gitignore.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>