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.0a127.0.0.1:9200. - Dex (OIDC):
ghcr.io/dexidp/dex:v2.41.1a127.0.0.1:5556. - Nginx vhost:
/etc/nginx/sites-available/opencloud— TLS →/dex/+/. - OC_DOMAIN:
cloud.km0digital.comambINSECURE=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-dataLa 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.0a/opt/opencloud/opencloud-compose/.env. - Correcció a
opencloud.yamlruntime: entradasharing.service_accountrequerida 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
- cloud.km0digital.com/: interfície web OpenCloud.
- /dex/: emissor OIDC / login Dex.
- /login.html: selector estàtic Google / Apple.
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.
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_assignmento DNS — fer servirdriver: defaultoextra_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.