Auf dieser Seite
4 Min. Lesezeit

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.0 auf 127.0.0.1:9200.
  • Dex (OIDC): ghcr.io/dexidp/dex:v2.41.1 auf 127.0.0.1:5556.
  • Nginx vhost: /etc/nginx/sites-available/opencloud - TLS → /dex/ + /.
  • OC_DOMAIN: cloud.km0digital.com mit INSECURE=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-data

Die 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.0 in /opt/opencloud/opencloud-compose/.env.
  • Korrektur in opencloud.yaml Runtime: Eintrag sharing.service_account in 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

Redirect-URI in der Google Cloud Console: 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.
Enthält nicht den vhost der KM0-Unternehmenswebsite noch andere Stacks außerhalb von OpenCloud.

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_assignment oder DNS - driver: default oder extra_hosts nutzen.
  • Dex in Neustart-Schleife: docker logs prü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.