Auf dieser Seite
Tag 2 - OpenCloud 7, Dex OIDC und vollständiges Backup
Upgrade auf OpenCloud 7.0.0, Dex-OIDC-Broker mit Google und Apple, Nginx-Anpassungen, erstes vollständiges Backup und operative Dokumentation.
Einleitung
Tag 2 (22. Mai 2026) konzentriert sich auf den Authentifizierungs-Perimeter und die Reifung des am Vortag deployten OpenCloud-Stacks: Versions-Upgrade, OIDC-Broker mit Dex (Google und Apple), Nginx-Anpassungen, erstes vollständiges Backup und operative Dokumentation.
Das Erst-Deployment (Debian, Docker, TLS, getrennte Hostnames) wurde am 21. abgeschlossen; heute wird auf dieser Basis in Produktion unter cloud.km0digital.com weitergearbeitet.
Status
Zum Abschluss verifizierte Komponenten
- OpenCloud:
opencloudeu/opencloud-rolling:7.0.0auf127.0.0.1:9200. - Dex (OIDC):
ghcr.io/dexidp/dex:v2.41.1auf127.0.0.1:5556. - Nginx vhost:
/etc/nginx/sites-available/opencloud- TLS →/dex/+/. - OC_DOMAIN:
cloud.km0digital.commitINSECURE=false. - Dex-Issuer:
https://cloud.km0digital.com/dex- Connectors Google + Apple.
Übliche Checks: docker compose ps, nginx -t und HTTP-Header gegen die öffentliche Cloud-URL.
Architektur
Authentifizierung + Anwendung
Browser ── HTTPS :443 cloud.km0digital.com ── Nginx
├─ /dex/ → Dex 127.0.0.1:5556
├─ /login.html → /var/www/opencloud-auth/
└─ / → OpenCloud 127.0.0.1:9200
└─ Volumes opencloud_* + dex_dex-dataDie Unternehmenswebsite auf demselben Host läuft in einem anderen Virtual Host: km0digital.com → statischer Container auf Loopback.
Upgrade
OpenCloud 6.2.0 → 7.0.0
- Ziel war die Annäherung an den 7.0.1-Zweig; das Image 7.0.0 wurde als Tag angewendet und validiert (7.0.1 wurde nicht deployt, da nicht verfügbar oder nicht validiert).
- Variable
OC_DOCKER_TAG=7.0.0in/opt/opencloud/opencloud-compose/.env. - Korrektur in
opencloud.yamlRuntime: Eintragsharing.service_accountin OpenCloud 7.x erforderlich. - Kontrollierter Neustart:
docker compose pull && docker compose up -d. - Log-Review auf
fatal/error; Dienst in Betrieb gelassen.
OIDC
Multi-Provider mit Dex (Google + Apple)
Das ad-hoc-Experiment mit Keycloak (Nginx-Vorlagen unter keycloak*.conf nicht aktiviert) wurde zugunsten eines schlanken Dex-Brokers unter /opt/opencloud/dex/ verworfen:
- docker-compose.yml: Dex-Dienst, Volume
dex_dex-data, Veröffentlichung nur auf Loopback :5556. - config.yaml: Issuer, SQLite, OAuth2-Clients, Connectors.
- web/themes/km0/: Login-UI mit KM0-Branding (Logo, CSS, i18n CA/ES/EN).
- setup-apple.sh: erzeugt Apple-Client-JWT (~180 Tage).
OpenCloud nutzt externen Issuer (OC_OIDC_ISSUER → /dex, Client opencloud-web). alwaysShowLoginScreen: true erzwingt die Auswahl Google vs. Apple.
Öffentliche Einstiege
Zugangs-URLs
- cloud.km0digital.com/: OpenCloud-Web-Oberfläche.
- /dex/: OIDC-Issuer / Dex-Login.
- /login.html: statischer Google-/Apple-Selector.
https://cloud.km0digital.com/dex/callback. Apple-Credentials unter /opt/, keine Secrets hier.Nginx
Integration im OpenCloud-vhost
- location /dex/: →
http://127.0.0.1:5556/dex/mit weitergeleiteten Headern für OIDC. - location = /login.html: statische Datei unter
/var/www/opencloud-auth/login.html. - location /: OpenCloud auf :9200 mit SSE, TUS und WebSockets von Tag 1.
Mit INSECURE=false und stabilem FQDN verlässt der Stack den gelockerten Labor-Modus.
Compose
DNS-Auflösung im Container
In external-proxy/opencloud.yml wurde extra_hosts: ${OC_DOMAIN}:host-gateway ergänzt, damit der Container den öffentlichen Hostnamen wie der Host auflöst. Ohne das können Login-Fehler nach Google-OAuth auftreten (access-denied oder inkonsistente Sitzungen).
Backup
Erste vollständige Kopie der Installation
Skript: /opt/opencloud/scripts/backup-opencloud-installation.sh. Erste Ausführung: 2026-05-22 19:51 → /opt/backup_opencloud_installation/20260522-195106/ mit Link latest.
- opt-opencloud/: vollständiger Baum
/opt/opencloud/. - host-nginx/: aktiver vhost + Repo-Vorlagen.
- letsencrypt/: TLS des Cloud-Hostnames.
- docker-volumes/: Tarballs
opencloud-data,opencloud-config,dex-data. - manifest/: Runtime-Snapshot und Backup-Log.
Vorfälle
Dokumentierte Symptome und Abhilfe
- GET .../photo/$value 404: kein Avatar hochgeladen - harmloses Konsolen-Rauschen.
- 502 auf alte URLs /signin/: veraltete Sitzung vor dem Dex-Schnitt - Site-Daten löschen oder privates Fenster.
- access-denied nach Google-Login: Whitelist in
role_assignmentoder DNS -driver: defaultoderextra_hostsnutzen. - Dex in Neustart-Schleife:
docker logsprüfen; Provider-JSON unter/opt/validieren.
Recherche
Heute nicht deployt
- Collabora / WOPI: Review von Office-Bearbeitung im Browser - vorerst nur Core; mögliches Addon später.
- Apache HTTP Server: bestätigt ungenutzt (nur Nginx). Apache Tika in Upstream-Docs nicht deployt.
- OpenCloud-Web-Branding: KM0-Overlay am 21. Mai zurückgenommen; KM0-Branding im Dex-Login bleibt.
Nächster Schritt
Tag 3
Tag 3 konsolidiert versionierte Git-Repositories, migriert die Website auf km0digital.com und führt die Autoagents-Schleife in beiden Projekten ein. In der Zwischenzeit: die Services erkunden oder den Bericht zu Tag 3 lesen.