7 Commits
Author SHA1 Message Date
marcandClaude Opus 5 86da975424 config: 0.0.0.0 als Vorgabe für APP_BIND im Betrieb
Auf Marcs Wunsch. Die bisherige Vorgabe 127.0.0.1 passt nur, wenn der
Reverse Proxy auf demselben Rechner läuft – steht er woanders (bei Marc
auf einem VPS), kommt er an loopback gar nicht heran, und die Vorgabe war
schlicht der falsche Wert für den häufigeren Fall.

Der Preis steht jetzt an allen drei Stellen dabei, statt nur gemeint zu
sein: Der Port ist dann auch aus dem eigenen Netz offen, und TLS endet
erst am Proxy. Im README dazu eine Tabelle, welcher Wert zu welchem
Aufbau gehört – eigener Rechner, anderer Rechner, Tunnel, oder Proxy im
selben Docker-Netz (dann braucht es gar kein ports:).

build/docker-compose.yml behält 127.0.0.1: Das ist die
Entwicklungsumgebung auf diesem Rechner, dort ist loopback richtig.

Gegengeprüft: Frische Kopie aus den Beispieldateien veröffentlicht auf
0.0.0.0; APP_BIND=127.0.0.1 in der .env engt wieder auf loopback ein.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 17:06:29 +02:00
marcandClaude Opus 5 471679ff64 refactor(repo): deploy/ heißt jetzt build/ – der Name sagte das Gegenteil
"deploy" klang nach Ausrollen, drin steht das Gegenteil: das Bau-Rezept
und das Compose, das aus dem Quelltext baut. Ausgerollt wird mit
docker-compose.example.yml im Wurzelverzeichnis. Marc ist genau darüber
gestolpert.

Zwei Dinge mussten dafür vorher fest werden, sonst hätte das Umbenennen
die Entwicklungsdatenbank gekostet: Compose leitet den Projektnamen aus
dem Ordnernamen ab und hätte unter "build" ein neues, leeres Projekt mit
neuem, leerem Volume angelegt. Der Projektname steht deshalb jetzt im
Compose (name: aether), und das Volume trägt seinen alten Namen
ausdrücklich weiter (deploy_postgres_data) – unschön, aber die Daten
bleiben.

Ebenfalls angepasst: .gitignore. Dort stand deploy/.env; nach dem
Umbenennen wäre build/.env nur noch von der allgemeinen .env-Zeile
gedeckt gewesen.

Nachgeprüft nach dem Umzug: Abbild baut, Stapel startet, 113 Dateien in
der Datenbank wie vorher, Volume unverändert deploy_postgres_data,
GET / → 200.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-02 09:24:09 +02:00
HoneyandClaude Opus 5 bad958d886 fix(office): Schnipsel ohne Profil – sie starten jetzt beim Einfuegen
profiles: [office] war als Sparmassnahme gedacht: Der Container laeuft nur
auf Wunsch. In Portainer/Dockge/Komodo gibt es aber kein --profile, und der
Dienst entstand dort nie – ohne Fehlermeldung, ohne Hinweis, ohne Weg ueber
die Bedienung.

Eine Voreinstellung, bei der das Einfuegen des Schnipsels nichts bewirkt,
ist die falsche. Alle drei Schnipsel starten jetzt mit  (geprueft: app office postgres). Abschalten: docker compose stop
office. Wer ein Profil will, haengt die Zeile selbst an.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 12:21:23 +02:00
HoneyandClaude Opus 5 deee0662d0 docs(office): COMPOSE_PROFILES statt --profile fuer Oberflaechen
Der Office-Container entstand nie, ohne Fehlermeldung: profiles: [office]
startet nur mit --profile office, und in Portainer/Dockge/Komodo gibt es
diesen Schalter gar nicht.

COMPOSE_PROFILES=office in der .env wirkt genauso und braucht keine
Kommandozeile – Compose liest die Variable fuer sich selbst. Gemessen mit
den echten Dateien: ohne die Zeile 'app postgres', mit ihr
'app office postgres'.

Steht jetzt in beiden .env.example, beiden Compose-Kopfzeilen, README und
TESTING.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 12:09:56 +02:00
HoneyandClaude Opus 5 370d8ce0c7 feat(deploy): APP_BIND – Port wahlweise nur lokal oder im Netz
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>
2026-08-24 11:45:47 +02:00
HoneyandClaude Opus 5 16ab6f385b docs(office): OIDC ins schlanke Beispiel, Office-Server als Schnipsel
Das Wurzel-Beispiel enthielt keinen einzigen OIDC-Schlüssel – wer sich
über PocketID anmelden will, fand nirgends, wohin damit. Jetzt drin,
samt der Warnung zu OIDC_LINK_BY_USERNAME: vor der ersten Anmeldung
setzen, danach existiert das zweite Konto schon.

Der Office-Container ist aus dem Beispiel raus. Es gibt drei zur Auswahl,
jeder bringt eigene Variablen mit, und man will genau einen – sie stehen
jetzt als anhängbare Schnipsel im README (Collabora, OnlyOffice,
Euro-Office). Alle drei gegen das Beispiel geprüft: docker compose config
läuft durch.

Euro-Office (seit 09.06.2026, in Nextcloud Hub 26) ist ein
OnlyOffice-Fork und läuft über denselben Adapter – OFFICE_PROVIDER
bleibt onlyoffice, nur ein anderes Abbild.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 10:08:16 +02:00
HoneyandClaude Opus 5 13681958dd docs(deploy): schlankes Compose-Beispiel im Wurzelverzeichnis
Das Compose in deploy/ war zu über der Hälfte Kommentar (73 von 137
Zeilen) und mischte zwei Zwecke. Jetzt getrennt:

  Wurzel   docker-compose.example.yml + .env.example  – betreiben,
           zieht das fertige Abbild, braucht keinen Quelltext
  deploy/  docker-compose.yml + .env.example          – entwickeln,
           baut aus dem Quelltext, kennt alle Schalter

Die schlanke .env.example führt nur die Pflichtwerte und Office; die
vollständige Liste mit Erklärungen bleibt in deploy/.env.example.
Die kopierte /docker-compose.yml ist ignoriert – sie gehört in die
Umgebung, nicht ins Repo.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-24 09:33:20 +02:00