Dia 2 — OpenCloud 7, Dex OIDC i còpia integral

Actualització a OpenCloud 7.0.0, broker OIDC Dex amb Google i Apple, ajustos Nginx, primera còpia integral i documentació operativa.

Introducció

El dia 2 (22 de maig de 2026) se centra en el perímetre d'autenticació i en madurar l'stack OpenCloud ja desplegat el dia anterior: actualització de versió, broker OIDC amb Dex (Google i Apple), ajustos de Nginx, primera còpia integral i documentació operativa.

El desplegament inicial (Debian, Docker, TLS, hostnames separats) va quedar tancat el 21; avui es treballa sobre aquesta base en producció a cloud.km0digital.com.

Estat

Components verificats en tancar

  • OpenCloud: opencloudeu/opencloud-rolling:7.0.0 a 127.0.0.1:9200.
  • Dex (OIDC): ghcr.io/dexidp/dex:v2.41.1 a 127.0.0.1:5556.
  • Nginx vhost: /etc/nginx/sites-available/opencloud — TLS → /dex/ + /.
  • OC_DOMAIN: cloud.km0digital.com amb INSECURE=false.
  • Emissor Dex: https://cloud.km0digital.com/dex — connectors Google + Apple.

Comprovacions habituals: docker compose ps, nginx -t i capçaleres HTTP contra la URL pública del cloud.

Arquitectura

Autenticació + aplicació

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
                                    └─ volums opencloud_* + dex_dex-data

La web corporativa al mateix host continua en un altre virtual host: km0digital.com → contenidor estàtic en loopback.

Actualització

OpenCloud 6.2.0 → 7.0.0

  • Es va demanar acostar-se a la branca 7.0.1; la imatge 7.0.0 va ser l'etiqueta aplicada i validada (7.0.1 no es va desplegar per no estar disponible o validada).
  • Variable OC_DOCKER_TAG=7.0.0 a /opt/opencloud/opencloud-compose/.env.
  • Correcció a opencloud.yaml runtime: entrada sharing.service_account requerida a OpenCloud 7.x.
  • Reinici controlat: docker compose pull && docker compose up -d.
  • Revisió de logs en nivells fatal/error; servei deixat en marxa.

OIDC

Multi-proveïdor amb Dex (Google + Apple)

Es va descartar l'experiment ad hoc amb Keycloak (plantilles nginx sota keycloak*.conf no habilitades) en favor d'un broker Dex lleuger a /opt/opencloud/dex/:

  • docker-compose.yml: servei Dex, volum dex_dex-data, publicació només en loopback :5556.
  • config.yaml: emissor, SQLite, clients OAuth2, connectors.
  • web/themes/km0/: UI de login amb marca KM0 (logo, CSS, i18n CA/ES/EN).
  • setup-apple.sh: genera JWT de client Apple (~180 dies).

OpenCloud queda amb emissor extern (OC_OIDC_ISSUER/dex, client opencloud-web). alwaysShowLoginScreen: true força el selector Google vs Apple.

Entrades públiques

URLs d'accés

Redirect URI a Google Cloud Console: https://cloud.km0digital.com/dex/callback. Credencials Apple sota /opt/ — sense detallar secrets aquí.

Nginx

Integració al vhost OpenCloud

  • location /dex/:http://127.0.0.1:5556/dex/ amb capçaleres reenviades per a OIDC.
  • location = /login.html: fitxer estàtic a /var/www/opencloud-auth/login.html.
  • location /: OpenCloud al :9200 mantenint SSE, TUS i WebSockets del dia 1.

Amb INSECURE=false i FQDN estable, l'stack abandona el mode laboratori relaxat.

Compose

Resolució DNS al contenidor

A external-proxy/opencloud.yml es va afegir extra_hosts: ${OC_DOMAIN}:host-gateway perquè el contenidor resolgui el hostname públic com l'host. Sense això poden aparèixer fallades de login després d'OAuth de Google (access-denied o sessions incoherents).

Còpia de seguretat

Primera còpia integral de la instal·lació

Script: /opt/opencloud/scripts/backup-opencloud-installation.sh. Primera execució: 2026-05-22 19:51 → /opt/backup_opencloud_installation/20260522-195106/ amb enllaç latest.

  • opt-opencloud/: arbre complet /opt/opencloud/.
  • host-nginx/: vhost actiu + plantilles del repo.
  • letsencrypt/: TLS del hostname del cloud.
  • docker-volumes/: tarballs opencloud-data, opencloud-config, dex-data.
  • manifest/: snapshot de runtime i log de la còpia.
No inclou el vhost de la web corporativa km0 ni altres stacks aliens a OpenCloud.

Incidències

Símptomes i remeis documentats

  • GET .../photo/$value 404: sense avatar pujat — soroll benign a la consola.
  • 502 en URLs antigues /signin/: sessió obsoleta abans del tall Dex — netejar dades del lloc o finestra privada.
  • access-denied després del login Google: llista blanca a role_assignment o DNS — fer servir driver: default o extra_hosts.
  • Dex en bucle de reinici: revisar docker logs; validar JSON de proveïdors a /opt/.

Investigació

Sense desplegament avui

  • Collabora / WOPI: revisió d'edició Office al navegador — mantenir només core; possible addon futur.
  • Apache HTTP Server: confirmat que no s'utilitza (només Nginx). Apache Tika en docs upstream no desplegat.
  • Branding OpenCloud Web: overlay KM0 revertit el 21 de maig; branding KM0 al login Dex es manté.

Pendents

Següents passos

Valorar OpenCloud 7.0.1 quan la imatge estigui validada, completar Apple Sign In si falta, instal·lar cron per a la còpia integral i revisar la rotació de l'accés administratiu. Explora els serveis o escriu-nos per col·laborar.