Saltar a contenido

Change Packet Update Validation 001

Packet rector de la ventana real 2026-06-08 para Docker, Portainer, OpenClaw y NPM.

Este documento conserva la evidencia PRE-UPDATE original y agrega el resultado real de ejecucion:

  • Docker 29.5.2 -> PASS
  • Portainer 2.39.3 -> PASS
  • OpenClaw 2026.6.1 -> PASS
  • NPM 2.15.1 -> PASS

0. Identificacion del packet

  • change_packet_id: CP-20260608-UPDATE-VALIDATION-001
  • fecha de preparacion: 2026-06-08
  • responsable: Codex
  • tipo de cambio: ventana real controlada de updates
  • ventana propuesta: 2026-06-08
  • estado: ACTUALIZADO CON RESULTADO REAL DE VENTANA
  • aprobacion: APROBADO POR GABI PARA EJECUCION CONTROLADA
  • ejecucion: EJECUTADO COMPLETO
  • decision vigente: VERDE / VENTANA CERRADA

SAFE POINT obligatorio

  • git status -sb -> ## main...origin/main M docs/governance/INDEX.md ?? docs/governance/change-packets/2026-06-08-update-validation-change-packet.md
  • git rev-parse HEAD -> 42cee5f84d773c82438e513f2834f755d7e1efa4

Observacion:

  • docs/governance/INDEX.md ya estaba modificado antes de esta corrida
  • este packet existia sin trackear antes de actualizar su contenido

Resultado ejecutivo de la ventana real

  • backup reciente validado: /root/openclaw-backups/daily/20260607-030001
  • bundle Docker previo capturado:
  • docker.io 29.1.3-0ubuntu3~24.04.2
  • containerd 2.2.1-0ubuntu1~24.04.2
  • docker-buildx-plugin 0.34.1-1~ubuntu.24.04~noble
  • docker-compose-plugin 5.1.4-1~ubuntu.24.04~noble
  • docker-ce, docker-ce-cli y containerd.io no estaban instalados
  • resultado por servicio:
  • Docker actualizado a 29.5.2, con recovery manual posterior de docker.socket y docker.service, y smoke POST en VERDE
  • Portainer actualizado a 2.39.3, contenedor running, upstream 9443 y HTTPS publico en VERDE
  • OpenClaw actualizado a 2026.6.1, con health, auth, HTTPS, handshake websocket y flujo autenticado websocket en VERDE
  • NPM actualizado a 2.15.1, con admin 81, 5 proxy hosts publicos, 5 upstreams internos, certificados y websocket en VERDE
  • baseline final dejado en el VPS:
  • Docker 29.5.2
  • Portainer 2.39.3
  • OpenClaw 2026.6.1
  • NPM 2.15.1

Nota de lectura:

  • las secciones PRE-UPDATE conservadas mas abajo siguen siendo validas como evidencia previa
  • cualquier texto historico que diga NO EJECUTAR TODAVIA queda supersedido por este resultado ejecutivo y por la evidencia real de la ventana

1. Alcance PRE-UPDATE conservado

Las definiciones de esta seccion se preservan como trazabilidad del plan usado antes de ejecutar la ventana real 2026-06-08.

  • alcance: preparar la primera corrida formal de los tests: TEST-DOCKER-UPDATE-001, TEST-PORTAINER-UPDATE-001, TEST-OPENCLAW-UPDATE-001, TEST-NPM-UPDATE-001
  • modo de trabajo de esta corrida: revision documental + auditoria remota read-only + clasificacion de riesgo
  • fuera de alcance:
  • ejecutar updates reales
  • ejecutar docker pull
  • ejecutar docker compose pull
  • actualizar Docker
  • actualizar Portainer
  • actualizar OpenClaw
  • actualizar NPM
  • modificar configuraciones
  • reiniciar servicios
  • inventar evidencia faltante

2. Estado real final confirmado

  • baseline global vigente: VERDE
  • fuente documental releida: CHANGE-GATES.md, UPDATE-SERVICE.md, catalog/TESTS.md, fichas de svc-openclaw, svc-nginx-proxy-manager, svc-portainer, catalog/BACKUPS.md
  • estado actual de los tests:
  • TEST-DOCKER-UPDATE-001 -> CERRADO / PASS
  • TEST-PORTAINER-UPDATE-001 -> CERRADO / PASS
  • TEST-OPENCLAW-UPDATE-001 -> CERRADO / PASS
  • TEST-NPM-UPDATE-001 -> CERRADO / PASS
  • TEST-WEBSOCKET-001 -> CERRADO / PASS
  • evidencia runtime fresca tomada: 2026-06-08 01:31:38 -03
  • lectura operativa: el VPS quedo operativo con baseline final Docker 29.5.2, Portainer 2.39.3, OpenClaw 2026.6.1 y NPM 2.15.1

3. Exigencia de CHANGE-GATES

CHANGE-GATES.md exige responder una por una las 13 preguntas rectoras y, si alguna da si, actualizar Governance dentro del mismo cierre.

Para esta corrida de auditoria, la respuesta actual es:

  1. ¿Creo o cambie un servicio? no
  2. ¿Agregue o cambie una red? no
  3. ¿Agregue o cambie un volumen o bind mount? no
  4. ¿Agregue o cambie un dominio? no
  5. ¿Agregue o cambie una configuracion de NPM o proxy? no
  6. ¿Agregue o cambie un puerto? no
  7. ¿Agregue o cambie un backup? no
  8. ¿Agregue o cambie un restore o runbook? no
  9. ¿Agregue o cambie un usuario tecnico? no
  10. ¿Agregue o cambie una dependencia? no
  11. ¿Agregue o cambie un uso de servicio compartido? no
  12. ¿Cambie datos criticos o persistencia? no
  13. ¿Agregue o cambie una validacion, un test o un criterio de regresion? no

Conclusion:

  • la ventana real no requirio cambios adicionales en catalog/TESTS.md
  • si correspondio actualizar este packet, VALIDATION-STATE.md, PROJECT-STATE.md, ROADMAP.md y las fichas afectadas para reflejar el estado final real

4. Exigencia de UPDATE-SERVICE

UPDATE-SERVICE.md obliga a:

  1. abrir la ficha actual del servicio
  2. pasar por CHANGE-GATES.md
  3. actualizar estado, fecha de revision y evidencia afectada
  4. ajustar catalogos relacionados
  5. validar si cambia backup, restore, dependencia o salud
  6. revisar que no se haya filtrado un secreto

Regla de cierre:

  • el cambio solo queda cerrado cuando Governance refleja el estado real nuevo

Conclusion para esta corrida:

  • se cumplio la lectura PRE-UPDATE y tambien la evidencia POST
  • TEST-DOCKER-UPDATE-001, TEST-PORTAINER-UPDATE-001, TEST-OPENCLAW-UPDATE-001, TEST-NPM-UPDATE-001 y TEST-WEBSOCKET-001 quedaron cerrados en PASS

5. Comandos ejecutados

SAFE POINT local

  • git status -sb
  • git rev-parse HEAD

Relectura documental local

  • Get-Content -Raw docs/governance/CHANGE-GATES.md
  • Get-Content -Raw docs/governance/runbooks/UPDATE-SERVICE.md
  • Get-Content -Raw docs/governance/catalog/TESTS.md
  • Get-Content -Raw docs/governance/change-packets/2026-06-08-update-validation-change-packet.md
  • Get-Content -Raw docs/governance/services/svc-portainer.md
  • Get-Content -Raw docs/governance/services/svc-openclaw.md
  • Get-Content -Raw docs/governance/services/svc-nginx-proxy-manager.md
  • Get-Content -Raw docs/governance/catalog/BACKUPS.md

Conectividad y auditoria remota read-only

  • ssh -o BatchMode=yes openclaw-vps "echo ok"
  • ssh openclaw-vps 'bash -s' con comandos de solo lectura para:
  • date -Is
  • docker version --format '{{.Server.Version}}'
  • docker info --format ...
  • docker ps --format ...
  • docker inspect openclaw-openclaw-gateway-1 --format ...
  • docker exec openclaw-openclaw-gateway-1 sh -lc 'openclaw health --json'
  • docker inspect portainer --format ...
  • docker exec portainer /portainer --version
  • docker inspect nginx-proxy-manager --format ...
  • docker exec nginx-proxy-manager sh -lc "node -p 'require(\"/app/package.json\").version'"
  • curl -sI http://127.0.0.1:81
  • curl -sI https://openclaw.alpuntodeventa.com.ar/
  • docker exec nginx-proxy-manager curl -sI http://openclaw-gateway:18789/
  • docker exec nginx-proxy-manager curl -skI https://portainer:9443
  • docker inspect nginx-proxy-manager --format ...
  • docker exec nginx-proxy-manager nginx -v
  • docker exec nginx-proxy-manager certbot --version
  • docker exec nginx-proxy-manager python3 --version
  • docker exec nginx-proxy-manager node -e "<query SQLite /data/database.sqlite>"
  • docker exec nginx-proxy-manager sed -n ... /data/nginx/proxy_host/*.conf
  • docker exec nginx-proxy-manager openssl x509 -in /etc/letsencrypt/live/*/fullchain.pem ...
  • docker exec nginx-proxy-manager grep -E ... /etc/letsencrypt/renewal/*.conf
  • docker exec nginx-proxy-manager cat /app/global/certbot-dns-plugins.json
  • docker exec nginx-proxy-manager ls -la /etc/letsencrypt/renewal-hooks/{pre,post,deploy}
  • curl -skI https://portainer.alpuntodeventa.com.ar/
  • curl -skI https://doc.alpuntodeventa.com.ar/
  • curl -skI https://grafana.alpuntodeventa.com.ar/
  • curl -skI https://developers.alpuntodeventa.com.ar/
  • docker exec nginx-proxy-manager curl -skI http://knowledge-portal:8085/
  • docker exec nginx-proxy-manager curl -skI http://grafana:3000/
  • docker exec nginx-proxy-manager curl -skI http://scalar-sandbox:8080/
  • find /root/openclaw-backups/daily ...
  • stat -c ...
  • find <backup-dir> -maxdepth 1 -type f -printf ...
  • tar -tzf <backup-dir>/npm-stack.tgz
  • cat /docker/nginx-proxy-manager/docker-compose.yml

Evidencia local adicional

  • Get-ChildItem -Force C:\APV\backups\openclaw

6. Evidencia PRE-UPDATE recolectada

6.1 Docker

  • version actual observada: 29.1.3
  • estado operativo: Docker responde y sostiene los contenedores auditados en running
  • host relacionado: Ubuntu 24.04.4 LTS, kernel 6.8.0-124-generic, driver overlay2, cgroup v2
  • ubicacion documental: docs/governance/knowledge/infrastructure/SERVICES-AND-DEPENDENCIES.md
  • dependencias criticas conocidas: Runtime Host, disco, red, Docker daemon; de esta capa dependen OpenClaw, NPM, Portainer y observabilidad
  • backup disponible: indirecto por corrida diaria /root/openclaw-backups/daily/20260607-030001 con artefactos de OpenClaw, NPM, Portainer y observabilidad

6.2 Portainer

  • version actual observada: 2.39.2
  • imagen observada: portainer/portainer-ce:2.39.2
  • estado operativo: status=running, sin healthcheck Docker declarado
  • reachability: docker exec nginx-proxy-manager curl -skI https://portainer:9443 -> HTTP/1.1 200 OK
  • backup disponible: portainer-volume.tgz presente en /root/openclaw-backups/daily/20260607-030001
  • ubicacion documental: docs/governance/services/svc-portainer.md
  • dependencias criticas conocidas: Docker daemon, docker.sock, volumen portainer_data_new, svc-nginx-proxy-manager si se usa el dominio publicado

6.3 OpenClaw

  • version actual observada: 2026.5.5
  • imagen observada: ghcr.io/openclaw/openclaw:2026.5.5
  • estado operativo: status=running, health=healthy
  • health funcional: openclaw health --json -> ok: true, defaultAgentId: main, sessions.count: 1
  • reachability publica: curl -sI https://openclaw.alpuntodeventa.com.ar/ -> HTTP/2 200
  • backup disponible: openclaw-stack.tgz presente en /root/openclaw-backups/daily/20260607-030001
  • ubicacion documental: docs/governance/services/svc-openclaw.md
  • dependencias criticas conocidas: svc-nginx-proxy-manager, provider OpenAI, proxy-network, binds de config, workspace y auth-profile-secrets
  • observacion operativa: el health reporta eventLoop.degraded=true por event_loop_utilization y cpu, aunque el veredicto general del comando sigue en ok: true

6.4 Nginx Proxy Manager

  • version actual observada: 2.12.6
  • imagen observada: jc21/nginx-proxy-manager:latest
  • version interna de runtime observada: 2.12.6 (356eaa0), OpenResty 1.27.1.2, debian 12 bookworm, Certbot 4.1.1, Python 3.11.2
  • estado operativo: status=running, sin healthcheck Docker declarado
  • mounts observados:
  • /docker/nginx-proxy-manager/data -> /data
  • /docker/nginx-proxy-manager/letsencrypt -> /etc/letsencrypt
  • admin local: curl -sI http://127.0.0.1:81 -> HTTP/1.1 200 OK
  • upstream OpenClaw: docker exec nginx-proxy-manager curl -sI http://openclaw-gateway:18789/ -> HTTP/1.1 200 OK
  • upstream Portainer: docker exec nginx-proxy-manager curl -skI https://portainer:9443 -> HTTP/1.1 200 OK
  • upstreams adicionales observados:
  • knowledge-portal:8085 -> HTTP/1.1 200 OK
  • grafana:3000 -> HTTP/1.1 302 Found
  • scalar-sandbox:8080 -> HTTP/1.1 200 OK
  • proxy hosts configurados y renderizados:
  • openclaw.alpuntodeventa.com.ar -> openclaw-gateway:18789
  • portainer.alpuntodeventa.com.ar -> portainer:9443
  • doc.alpuntodeventa.com.ar -> knowledge-portal:8085
  • grafana.alpuntodeventa.com.ar -> grafana:3000
  • developers.alpuntodeventa.com.ar -> scalar-sandbox:8080
  • reachability publica adicional:
  • https://portainer.alpuntodeventa.com.ar/ -> HTTP/2 200
  • https://doc.alpuntodeventa.com.ar/ -> HTTP/2 200
  • https://grafana.alpuntodeventa.com.ar/ -> HTTP/2 302 /login
  • https://developers.alpuntodeventa.com.ar/ -> HTTP/2 200
  • certificados activos observados:
  • npm-2 -> portainer.alpuntodeventa.com.ar, vence 2026-08-30
  • npm-3 -> openclaw.alpuntodeventa.com.ar, vence 2026-08-27
  • npm-4 -> doc.alpuntodeventa.com.ar, vence 2026-08-30
  • npm-5 -> grafana.alpuntodeventa.com.ar, vence 2026-08-30
  • npm-6 -> developers.alpuntodeventa.com.ar, vence 2026-08-31
  • challenge y renovacion observados:
  • todos los certificados activos usan authenticator = webroot
  • todos los registros de certificate.meta muestran dns_challenge=false
  • en renewal/*.conf aparecen pref_challs = dns-01, http-01 para npm-3, npm-4 y npm-6, pero no hay evidencia de un DNS challenge realmente activo en runtime
  • plugins DNS observados:
  • la imagen incluye el manifiesto generico /app/global/certbot-dns-plugins.json
  • no aparecio evidencia de plugins DNS instalados o configurados para uso real en los certificados activos
  • renewal-hooks/pre, post y deploy estan vacios
  • backup disponible: npm-stack.tgz presente en /root/openclaw-backups/daily/20260607-030001
  • artefactos incluidos en npm-stack.tgz: docker-compose.yml, data/database.sqlite, data/keys.json, data/nginx/proxy_host/*.conf, letsencrypt/live/*, letsencrypt/renewal/*.conf, letsencrypt/archive/*, letsencrypt/accounts/*
  • ubicacion documental: docs/governance/services/svc-nginx-proxy-manager.md
  • dependencias criticas conocidas: DNS publico, Let's Encrypt, proxy-network, reachability a backends y binds data/ + letsencrypt/

6.5 Evidencia de backup disponible

  • ultima corrida observada: /root/openclaw-backups/daily/20260607-030001
  • mtime del directorio: 2026-06-07 03:00:29.574896685 -0300
  • artefactos observados:
  • SHA256SUMS
  • manifest.txt
  • npm-stack.tgz
  • openclaw-stack.tgz
  • portainer-volume.tgz
  • observability-stack.tgz
  • obs-prometheus-volume.tgz
  • obs-grafana-volume.tgz
  • obs-alertmanager-volume.tgz
  • evidencia externa local: C:\APV\backups\openclaw\ existe con carpetas daily y logs

7. Release notes oficiales revisadas

Fecha de consulta:

  • 2026-06-08

Fuentes y lectura aplicada:

  • Docker Engine 29.x: https://docs.docker.com/engine/release-notes/29/
  • Portainer releases: https://github.com/portainer/portainer/releases y release 2.39.3
  • OpenClaw releases: https://github.com/openclaw/openclaw/releases y release 2026.6.1
  • Nginx Proxy Manager releases: https://github.com/NginxProxyManager/nginx-proxy-manager/releases y release v2.15.1

7.1 Docker 29.x

  • actual: 29.1.3
  • ultima estable observada: 29.5.2 publicada el 2026-05-20
  • lectura relevante:
  • 29.5.1 publicada el 2026-05-18 corrige multiples vulnerabilidades en docker cp, incluyendo ejecucion arbitraria con privilegios de host root y redireccion de bind mounts al filesystem del host
  • 29.5.2 corrige una regresion introducida en 29.5.1 para docker cp con bind mounts y symlinks internos
  • 29.5.0 agrega cambios de runtime, entre ellos nuevo driver por defecto rootless y namespace de tiempo privado por defecto en kernels compatibles
  • lectura operativa: el valor principal del salto 29.1.3 -> 29.5.2 es seguridad dentro de la misma rama mayor

7.2 Portainer

  • actual: 2.39.2
  • ultima estable observada: 2.39.3 LTS publicada el 2026-06-03
  • correccion importante: la hipotesis inicial de "ya esta en ultima version" ya no aplica al 2026-06-08; la ultima estable es 2.39.3, no 2.39.2
  • lectura relevante:
  • 2.39.2 publicada el 2026-05-07 corrige problemas de permisos, dashboard, visibilidad de contenedores y varias vulnerabilidades
  • 2.39.3 agrega fixes de seguridad y estabilidad, incluyendo un SSRF en GitLab Registry Proxy, una falla de escalacion de acceso por equipos, actualizaciones de dependencias Go y fixes menores de operacion
  • lectura operativa: es un patch LTS de bajo salto, pero sigue siendo componente administrativo con privilegio alto sobre Docker

7.3 OpenClaw

  • actual: 2026.5.5
  • ultima estable observada: 2026.6.1 publicada el 2026-06-03
  • lectura relevante:
  • el release trae cambios amplios en runtime, Control UI, Skills, plugins, auth y persistencia en SQLite
  • hay mejoras explicitas de recuperacion de sesiones, llamadas de tools, auth profiles, plugin install index y rutas WebSocket/mobile
  • el release menciona hardening en config, limites y validaciones de runtime
  • lectura operativa: no parece un patch menor. El salto toca justo las superficies mas sensibles para este VPS: health, auth, HTTPS, Control UI y websocket

7.4 Nginx Proxy Manager

  • actual: 2.12.6
  • ultima estable observada: 2.15.1 publicada el 2026-06-03
  • lectura relevante:
  • 2.15.0 advierte expresamente un cambio mayor de base: Debian Trixie, OpenResty, Certbot y Python actualizados
  • el mismo release pide cautela porque plugins DNS de Certbot pueden dejar de funcionar o requerir ajustes
  • 2.15.0 tambien corrige CVEs de OpenResty
  • 2.15.1 agrega dos fixes rapidos: vuelve a Lua 5.1.5 y corrige el caso de archivos internos de nginx sobremontados
  • lectura operativa: es el salto con mayor riesgo transversal porque NPM es el unico frente publico de OpenClaw y Portainer

8. Tabla de decision preliminar

Servicio Actual Objetivo recomendado Motivo Riesgo Requiere update real Recomendacion
Docker 29.1.3 29.5.2 misma rama 29.x con fixes de seguridad relevantes y fix de regresion en 29.5.2 medio-alto si GO CANDIDATO
Portainer 2.39.2 2.39.3 patch LTS nuevo con fixes de seguridad y estabilidad; 2.39.2 ya no es latest al 2026-06-08 medio si GO CANDIDATO
OpenClaw 2026.5.5 2026.6.1 ultima estable con mejoras de runtime, auth, sesiones y UI, pero el salto toca superficies funcionales criticas medio-alto si GO CANDIDATO
Nginx Proxy Manager 2.12.6 2.15.1 hay gap real y fixes de seguridad; la evidencia nueva baja el riesgo de plugins DNS porque los certificados activos estan en webroot y dns_challenge=false alto si GO CANDIDATO

9. Decision preliminar por servicio

9.1 Docker

  • clasificacion: GO
  • recomendacion: conviene actualizar dentro de la rama 29.x y fijar como target 29.5.2, con pin exacto de apt para docker-ce y docker-ce-cli
  • motivo: el gap no es cosmetico; 29.5.1 corrige vulnerabilidades serias y 29.5.2 corrige la regresion inmediata de ese mismo tren
  • package pin exacto requerido:
  • docker-ce=5:29.5.2-1~ubuntu.24.04~noble
  • docker-ce-cli=5:29.5.2-1~ubuntu.24.04~noble
  • origen oficial:
  • repo apt oficial de Docker: https://download.docker.com/linux/ubuntu
  • artefactos exactos observados en noble/stable amd64:
    • dists/noble/pool/stable/amd64/docker-ce_29.5.2-1~ubuntu.24.04~noble_amd64.deb
    • dists/noble/pool/stable/amd64/docker-ce-cli_29.5.2-1~ubuntu.24.04~noble_amd64.deb
  • prerequisitos oficiales:
  • host Ubuntu Noble 24.04 LTS amd64
  • repo oficial de Docker configurado con su clave GPG
  • remover paquetes conflictivos si existieran: docker.io, docker-compose, docker-compose-v2, docker-doc, podman-docker, containerd, runc
  • considerar la advertencia oficial de firewall: Docker solo es compatible con iptables-nft o iptables-legacy; reglas creadas con nft puro no estan soportadas
  • dependencias asociadas segun metadata oficial:
  • docker-ce depende de: containerd.io (>= 1.7.27), docker-ce-cli, iptables, nftables, libc6 (>= 2.34), libnftables1 (>= 1.0.2), libsystemd0
  • docker-ce-cli depende de: libc6 (>= 2.34)
  • docker-ce-cli recomienda: docker-buildx-plugin, docker-compose-plugin
  • compatibilidad observada desde fuentes oficiales:
  • el salto 29.1.3 -> 29.5.2 se mantiene en la misma rama mayor 29.x
  • no hay nota oficial que declare ruptura de Compose file format para 29.5.2; la especificacion Compose actual sigue siendo la recomendada y esta implementada por Compose v2
  • el principal cambio tecnico intermedio aparece en 29.5.0: namespace de tiempo privado por defecto en kernels compatibles y cambio del driver de red rootless por defecto
  • riesgo principal: cualquier cambio pega a todo el runtime Docker del VPS
  • riesgos concretos de downgrade:
  • 29.0.0 introdujo soporte de asignacion de subred desde pools por defecto; si se downgradea a una version sin ese soporte, la red queda inutilizable y debe borrarse y recrearse
  • 29.0.0 actualizo containerd a 2.1.5; el cambio reduce el ulimit -n por defecto de 1048576 a 1024, por lo que una ida y vuelta de versiones puede modificar el comportamiento de cargas sensibles a nofile
  • si no se captura el bundle exacto pre-cambio de containerd.io, docker-buildx-plugin y docker-compose-plugin, el rollback de paquetes auxiliares pierde reproducibilidad exacta aunque el pin del engine quede documentado
  • pruebas minimas pre:
  • backup reciente confirmado
  • docker version
  • docker ps
  • TEST-OPENCLAW-HTTPS-001
  • TEST-NPM-HTTPS-001
  • TEST-PORTAINER-HTTPS-001
  • pruebas minimas post:
  • docker version
  • docker ps
  • TEST-OPENCLAW-HEALTH-001
  • TEST-OPENCLAW-HTTPS-001
  • TEST-NPM-UPSTREAM-001
  • TEST-NPM-HTTPS-001
  • TEST-PORTAINER-HTTPS-001
  • rollback esperado: reinstalar desde el repo oficial la version especifica anterior usando el mismo mecanismo documentado por Docker para instalar una version concreta, mas revalidacion inmediata de docker version, docker ps y reachability base antes de tocar capas superiores

9.2 Portainer

  • clasificacion: GO CANDIDATO
  • recomendacion: no corresponde SKIP JUSTIFICADO; al 2026-06-08 ya existe 2.39.3 LTS como ultima estable y es mejor target que 2.39.2
  • motivo: el salto es corto y trae fixes de seguridad sobre un servicio administrativo
  • riesgo principal: usa docker.sock, asi que cualquier regresion afecta la consola de admin
  • pruebas minimas pre:
  • backup portainer-volume.tgz reciente
  • docker exec portainer /portainer --version
  • docker exec nginx-proxy-manager curl -skI https://portainer:9443
  • pruebas minimas post:
  • docker exec portainer /portainer --version
  • docker exec nginx-proxy-manager curl -skI https://portainer:9443
  • TEST-PORTAINER-HTTPS-001
  • rollback esperado: restore de portainer-volume.tgz y vuelta a imagen anterior si la UI no vuelve por 9443

9.3 OpenClaw

  • clasificacion: GO CANDIDATO
  • recomendacion: el target recomendado es 2026.6.1, pero solo con ventana controlada y checklist funcional ampliado
  • motivo: el release toca auth, sesiones, runtime, Control UI y rutas asociadas al comportamiento de websocket
  • riesgo principal: una regresion puede dejar health en verde parcial pero romper auth, UI o flujo wss
  • pruebas minimas pre:
  • backup openclaw-stack.tgz reciente
  • openclaw health --json
  • TEST-OPENCLAW-HTTPS-001
  • TEST-OPENCLAW-AUTH-001
  • TEST-WEBSOCKET-001
  • pruebas minimas post:
  • TEST-OPENCLAW-HEALTH-001
  • TEST-OPENCLAW-HTTPS-001
  • TEST-OPENCLAW-AUTH-001
  • TEST-WEBSOCKET-001
  • TEST-NPM-UPSTREAM-001
  • rollback esperado: restore de openclaw-stack.tgz y vuelta a imagen 2026.5.5 si falla health, auth, HTTPS o websocket

9.4 Nginx Proxy Manager

  • clasificacion: GO CANDIDATO
  • recomendacion: el target recomendado pasa a 2.15.1, pero solo dentro de una ventana controlada y con smoke ampliado sobre los 5 proxy hosts vigentes
  • motivo: la release 2.15.0 marca un cambio mayor de base, pero la evidencia actual muestra certificados activos por Let's Encrypt con dns_challenge=false, authenticator=webroot, hooks vacios y sin evidencia de plugins DNS en uso
  • riesgo principal: sigue siendo el punto unico de entrada publica y cualquier falla afecta HTTPS, certificados y reachability no solo de OpenClaw y Portainer, sino tambien de doc, grafana y developers
  • pruebas minimas pre:
  • backup npm-stack.tgz reciente
  • TEST-NPM-HTTPS-001
  • TEST-NPM-UPSTREAM-001
  • TEST-OPENCLAW-HTTPS-001
  • curl -I https://portainer.alpuntodeventa.com.ar/
  • curl -I https://doc.alpuntodeventa.com.ar/
  • curl -I https://grafana.alpuntodeventa.com.ar/
  • curl -I https://developers.alpuntodeventa.com.ar/
  • pruebas minimas post:
  • TEST-NPM-HTTPS-001
  • TEST-NPM-UPSTREAM-001
  • TEST-OPENCLAW-HTTPS-001
  • TEST-PORTAINER-HTTPS-001
  • curl -I https://doc.alpuntodeventa.com.ar/
  • curl -I https://grafana.alpuntodeventa.com.ar/
  • curl -I https://developers.alpuntodeventa.com.ar/
  • verificacion de carga SSL y logs de renovacion/certbot sin error visible
  • rollback esperado: restore de npm-stack.tgz y vuelta a imagen previa si falla HTTPS, upstream o certificados

NPM PRE-DECISION evidence

  • hallazgos:
  • la version realmente corriendo sigue siendo 2.12.6, aunque el compose actual esta atado a jc21/nginx-proxy-manager:latest
  • el runtime actual usa debian 12 bookworm, OpenResty 1.27.1.2, Certbot 4.1.1 y Python 3.11.2
  • hay 5 proxy hosts activos y todos responden en el smoke actual: openclaw, portainer, doc, grafana y developers
  • todos los certificados activos observados son Let's Encrypt y vencen entre 2026-08-27 y 2026-08-31
  • la SQLite muestra dns_challenge=false en todos los certificados activos y los archivos renewal/*.conf usan authenticator = webroot
  • no aparecio evidencia de plugins DNS instalados ni hooks custom de renovacion en uso real; lo unico observado es el manifiesto generico /app/global/certbot-dns-plugins.json que trae la imagen
  • no hay overmount de archivos internos de nginx; los unicos binds vigentes son ./data:/data y ./letsencrypt:/etc/letsencrypt
  • el backup npm-stack.tgz cubre compose, SQLite, configs renderizados, cuentas ACME, certificados live, renewal y archive
  • riesgos:
  • v2.15.0 cambia base image a Debian Trixie y actualiza OpenResty, Certbot y Python; el salto no es cosmetico
  • NPM concentra hoy 5 dominios publicos; una regresion no impactaria solo a OpenClaw y Portainer
  • el uso de latest en compose aumenta el riesgo de drift si el contenedor se recrea fuera de una ventana controlada
  • la fix de v2.15.1 sobre internal nginx conf over-mounted no parece dirigida a este runtime porque no existe ese patron de montaje
  • no hay evidencia post-update; la compatibilidad de datos persistidos queda inferida por backup completo y por que las notas de v2.15.0 mencionan fix de SQLite, no ruptura declarada
  • evidencia faltante:
  • no falta evidencia pre-update critica para decidir
  • sigue faltando la evidencia post-update de una ventana real
  • queda pendiente verificar en la misma ventana que cargan bien los 5 hosts, los certificados y los logs de certbot
  • recomendacion final: GO CANDIDATO

10. Riesgos concentrados

  • Docker: riesgo transversal sobre todos los contenedores; aun asi el salto dentro de 29.x tiene buen argumento de seguridad
  • Portainer: riesgo operativo medio; componente admin con privilegio alto, pero el salto a 2.39.3 es corto y bien justificado
  • OpenClaw: riesgo funcional medio-alto; la decision depende de repetir en la misma ventana health + auth + HTTPS + websocket
  • NPM: riesgo alto, pero ya no queda bloqueado por falta de evidencia pre-update; el riesgo real ahora es de ejecucion y radio de impacto sobre 5 dominios

11. Evidencia faltante despues de la ventana

  • Docker: falta solo evidencia post-update de una ventana real
  • Portainer: falta solo evidencia post-update de una ventana real
  • OpenClaw: falta refrescar auth y websocket en la misma ventana del cambio real
  • NPM: falta solo evidencia post-update de una ventana real con smoke ampliado sobre openclaw, portainer, doc, grafana, developers y logs SSL

Estado final de los tests de update:

  • TEST-DOCKER-UPDATE-001 -> CERRADO / PASS
  • TEST-PORTAINER-UPDATE-001 -> CERRADO / PASS
  • TEST-OPENCLAW-UPDATE-001 -> CERRADO / PASS
  • TEST-NPM-UPDATE-001 -> CERRADO / PASS
  • TEST-WEBSOCKET-001 -> CERRADO / PASS

12. Recomendacion operativa unica

  • proximo paso unico recomendado: sostener el baseline final Docker 29.5.2, Portainer 2.39.3, OpenClaw 2026.6.1 y NPM 2.15.1, dejando el drift de trustedProxies como mejora no bloqueante para una ventana aparte

13. Plan PRE-UPDATE conservado

Esta seccion conserva el plan usado antes de la ejecucion real 2026-06-08. Queda como trazabilidad historica y no como instruccion vigente de reejecucion automatica.

Reglas de esta ventana preparada:

  • NO ejecutar todavia
  • NO ejecutar docker pull
  • NO reiniciar servicios fuera de la ventana aprobada
  • NO cambiar runtime fuera del objetivo documentado
  • NO modificar certificados
  • NO renovar SSL
  • aprobacion final obligatoria: autorizacion explicita de Gabi antes del primer comando mutante

13.1 Orden recomendado

  1. Docker -> objetivo 29.5.2
  2. Portainer -> objetivo 2.39.3
  3. OpenClaw -> objetivo 2026.6.1
  4. Nginx Proxy Manager -> objetivo 2.15.1

Motivo del orden:

  • Docker primero porque sostiene el runtime base de todos los contenedores
  • Portainer segundo porque depende de Docker, pero no expone el frente publico principal del negocio
  • OpenClaw tercero porque depende de Docker y de NPM, y su validacion funcional requiere comprobar health, auth, HTTPS y websocket
  • NPM ultimo porque es el frente publico HTTPS y cualquier falla impacta openclaw, portainer, doc, grafana y developers

13.2 GO / NO-GO previo a la ventana

Para pasar a GO, todos estos puntos deben quedar en si:

  • backup reciente confirmado para openclaw-stack.tgz, npm-stack.tgz y portainer-volume.tgz
  • versiones objetivo exactas fijadas por servicio
  • release notes oficiales revisadas para cada target
  • smoke PRE base en verde
  • rollback claro y documentado por servicio
  • autorizacion explicita final de Gabi

Criterios NO-GO:

  • falta backup reciente
  • versiones objetivo no fijadas
  • release notes no revisadas
  • smoke PRE falla
  • no existe rollback claro
  • falta autorizacion explicita final de Gabi

13.3 Checks PRE inmediatos

Checks globales obligatorios antes del primer update:

  • ssh openclaw-vps "date -Is"
  • ssh openclaw-vps "docker version"
  • ssh openclaw-vps "docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Image}}'"
  • ssh openclaw-vps "docker info --format 'ServerVersion={{.ServerVersion}} Driver={{.Driver}} CgroupVersion={{.CgroupVersion}}'"
  • ssh openclaw-vps "find /root/openclaw-backups/daily -maxdepth 1 -mindepth 1 -type d | sort | tail -n 1"
  • ssh openclaw-vps "stat -c '%n %y' /root/openclaw-backups/daily/<timestamp-pendiente>"
  • ssh openclaw-vps "ls -lh /root/openclaw-backups/daily/<timestamp-pendiente>/openclaw-stack.tgz /root/openclaw-backups/daily/<timestamp-pendiente>/npm-stack.tgz /root/openclaw-backups/daily/<timestamp-pendiente>/portainer-volume.tgz"
  • ssh openclaw-vps "sha256sum /root/openclaw-backups/daily/<timestamp-pendiente>/openclaw-stack.tgz /root/openclaw-backups/daily/<timestamp-pendiente>/npm-stack.tgz /root/openclaw-backups/daily/<timestamp-pendiente>/portainer-volume.tgz"

Checks PRE funcionales inmediatos:

  • ssh openclaw-vps "docker exec openclaw-openclaw-gateway-1 sh -lc 'openclaw health --json'"
  • ssh openclaw-vps "docker exec openclaw-openclaw-gateway-1 sh -lc 'openclaw agent --agent main --message \"Respondé solamente: OpenClaw OK\" --json'"
  • ssh openclaw-vps "docker exec nginx-proxy-manager curl -sI http://openclaw-gateway:18789/"
  • ssh openclaw-vps "docker exec nginx-proxy-manager curl -skI https://portainer:9443"
  • ssh openclaw-vps "curl -sI http://127.0.0.1:81"
  • ssh openclaw-vps "curl -skI https://openclaw.alpuntodeventa.com.ar/"
  • ssh openclaw-vps "curl -skI https://portainer.alpuntodeventa.com.ar/"
  • ssh openclaw-vps "curl -skI https://doc.alpuntodeventa.com.ar/"
  • ssh openclaw-vps "curl -skI https://grafana.alpuntodeventa.com.ar/"
  • ssh openclaw-vps "curl -skI https://developers.alpuntodeventa.com.ar/"

Check PRE adicional de websocket:

  • usar el mismo metodo ya documentado por TEST-WEBSOCKET-001
  • si no se puede repetir el flujo autenticado completo en esa ventana, dejar el punto como PENDIENTE y no ejecutar el update de OpenClaw

13.4 Comandos propuestos por servicio

Docker

Objetivo exacto:

  • 29.5.2
  • package pin de apt: docker-ce=5:29.5.2-1~ubuntu.24.04~noble docker-ce-cli=5:29.5.2-1~ubuntu.24.04~noble

Paquetes asociados desde el mismo origen oficial:

  • repo: https://download.docker.com/linux/ubuntu
  • dependencia requerida: containerd.io (>= 1.7.27)
  • paquetes recomendados: docker-buildx-plugin, docker-compose-plugin

Bundle reproducible recomendado a relevar en la misma ventana antes del primer comando mutante:

  • dpkg-query -W docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • apt-cache madison docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Observacion importante:

  • la documentacion oficial de Ubuntu para Docker fija de forma explicita el VERSION_STRING de docker-ce y docker-ce-cli; no publica un lockstep obligatorio unico para containerd.io, buildx y compose-plugin
  • por eso el pin exacto obligatorio para 29.5.2 queda cerrado en engine y CLI, mientras que el bundle auxiliar debe capturarse en el host antes del cambio para preservar rollback exacto

Comandos de preparacion y ejecucion propuesta:

  • ssh openclaw-vps "apt-cache madison docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin"
  • ssh openclaw-vps "sudo apt-mark showhold"
  • ssh openclaw-vps "sudo apt-get update"
  • ssh openclaw-vps "dpkg-query -W docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin"
  • ssh openclaw-vps \"sudo apt-get install -y docker-ce=5:29.5.2-1~ubuntu.24.04~noble docker-ce-cli=5:29.5.2-1~ubuntu.24.04~noble containerd.io docker-buildx-plugin docker-compose-plugin\"

Portainer

Objetivo exacto:

  • portainer/portainer-ce:2.39.3

Comandos de preparacion y ejecucion propuesta:

  • ssh openclaw-vps "docker inspect portainer --format '{{.Image}} {{.HostConfig.RestartPolicy.Name}} {{range .Mounts}}{{.Name}} {{.Destination}} {{end}}'"
  • ssh openclaw-vps "docker image inspect portainer/portainer-ce:2.39.2 --format '{{.RepoTags}}'"
  • ssh openclaw-vps "cd /root && docker stop portainer && docker rm portainer && docker run -d --name portainer --restart unless-stopped --network proxy-network -p 8000:8000 -p 9443:9443 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data_new:/data portainer/portainer-ce:2.39.3"

OpenClaw

Objetivo exacto:

  • ghcr.io/openclaw/openclaw:2026.6.1

Comandos de preparacion y ejecucion propuesta:

  • ssh openclaw-vps "cd /opt/stacks/openclaw && grep -n 'ghcr.io/openclaw/openclaw' docker-compose.yml"
  • ssh openclaw-vps "cd /opt/stacks/openclaw && cp docker-compose.yml docker-compose.yml.pre-update-2026-06-08"
  • ssh openclaw-vps "cd /opt/stacks/openclaw && sed -i 's#ghcr.io/openclaw/openclaw:2026.5.5#ghcr.io/openclaw/openclaw:2026.6.1#' docker-compose.yml"
  • ssh openclaw-vps "cd /opt/stacks/openclaw && docker compose up -d"

Nginx Proxy Manager

Objetivo exacto:

  • jc21/nginx-proxy-manager:2.15.1

Comandos de preparacion y ejecucion propuesta:

  • ssh openclaw-vps "cd /docker/nginx-proxy-manager && grep -n 'image:' docker-compose.yml"
  • ssh openclaw-vps "cd /docker/nginx-proxy-manager && cp docker-compose.yml docker-compose.yml.pre-update-2026-06-08"
  • ssh openclaw-vps "cd /docker/nginx-proxy-manager && sed -i 's#jc21/nginx-proxy-manager:latest#jc21/nginx-proxy-manager:2.15.1#' docker-compose.yml"
  • ssh openclaw-vps "cd /docker/nginx-proxy-manager && docker compose up -d"

Observacion:

  • en NPM hay un pendiente estructural previo: el compose actual sigue usando latest
  • la ventana real debe fijar 2.15.1 antes de cerrar el cambio

13.5 Checks POST por servicio

Docker POST

  • ssh openclaw-vps "docker version"
  • ssh openclaw-vps "docker ps --format 'table {{.Names}}\t{{.Status}}\t{{.Image}}'"
  • ssh openclaw-vps "docker info --format 'ServerVersion={{.ServerVersion}} Driver={{.Driver}} CgroupVersion={{.CgroupVersion}}'"

Portainer POST

  • ssh openclaw-vps "docker ps --filter name=^/portainer$ --format 'table {{.Names}}\t{{.Status}}\t{{.Image}}'"
  • ssh openclaw-vps "docker exec portainer /portainer --version"
  • ssh openclaw-vps "docker exec nginx-proxy-manager curl -skI https://portainer:9443"
  • ssh openclaw-vps "curl -skI https://portainer.alpuntodeventa.com.ar/"

OpenClaw POST

  • ssh openclaw-vps "docker ps --filter name=openclaw-openclaw-gateway-1 --format 'table {{.Names}}\t{{.Status}}\t{{.Image}}'"
  • ssh openclaw-vps "docker exec openclaw-openclaw-gateway-1 sh -lc 'openclaw health --json'"
  • ssh openclaw-vps "docker exec openclaw-openclaw-gateway-1 sh -lc 'openclaw agent --agent main --message \"Respondé solamente: OpenClaw OK\" --json'"
  • ssh openclaw-vps "docker exec nginx-proxy-manager curl -sI http://openclaw-gateway:18789/"
  • ssh openclaw-vps "curl -skI https://openclaw.alpuntodeventa.com.ar/"
  • TEST-WEBSOCKET-001 repetido en la misma ventana

NPM POST

  • ssh openclaw-vps "docker ps --filter name=^/nginx-proxy-manager$ --format 'table {{.Names}}\t{{.Status}}\t{{.Image}}'"
  • ssh openclaw-vps "docker exec nginx-proxy-manager sh -lc \"node -p 'require(\\\"/app/package.json\\\").version'\""
  • ssh openclaw-vps "curl -sI http://127.0.0.1:81"
  • ssh openclaw-vps "docker exec nginx-proxy-manager curl -sI http://openclaw-gateway:18789/"
  • ssh openclaw-vps "docker exec nginx-proxy-manager curl -skI https://portainer:9443"
  • ssh openclaw-vps "docker exec nginx-proxy-manager curl -sI http://knowledge-portal:8085/"
  • ssh openclaw-vps "docker exec nginx-proxy-manager curl -sI http://grafana:3000/login"
  • ssh openclaw-vps "docker exec nginx-proxy-manager curl -sI http://scalar-sandbox:8080/"
  • ssh openclaw-vps "curl -skI https://openclaw.alpuntodeventa.com.ar/"
  • ssh openclaw-vps "curl -skI https://portainer.alpuntodeventa.com.ar/"
  • ssh openclaw-vps "curl -skI https://doc.alpuntodeventa.com.ar/"
  • ssh openclaw-vps "curl -skI https://grafana.alpuntodeventa.com.ar/"
  • ssh openclaw-vps "curl -skI https://developers.alpuntodeventa.com.ar/"
  • ssh openclaw-vps "docker exec nginx-proxy-manager sh -lc 'ls -1 /etc/letsencrypt/live && grep -R \"authenticator =\\|pref_challs =\" /etc/letsencrypt/renewal/*.conf'"

13.6 Smoke test global posterior

Smoke global obligatorio al terminar la ventana:

  • Docker
  • docker version
  • docker ps
  • docker info basico
  • Portainer
  • contenedor running
  • upstream interno 9443 responde 200
  • HTTPS publico responde 200
  • OpenClaw
  • health ok
  • HTTPS publico responde 200
  • auth basica validada
  • websocket validado si se puede repetir el flujo documentado
  • NPM
  • admin local 81 responde 200
  • 5 proxy hosts publicos responden
  • 5 upstreams internos responden
  • certificados visibles y vigentes

Mapa minimo de 5 proxy hosts publicos a validar:

  • openclaw.alpuntodeventa.com.ar
  • portainer.alpuntodeventa.com.ar
  • doc.alpuntodeventa.com.ar
  • grafana.alpuntodeventa.com.ar
  • developers.alpuntodeventa.com.ar

Mapa minimo de 5 upstreams internos a validar:

  • openclaw-gateway:18789
  • portainer:9443
  • knowledge-portal:8085
  • grafana:3000
  • scalar-sandbox:8080

13.7 Rollback por servicio

Docker rollback

  • validacion documental: la documentacion oficial de Docker para Ubuntu no tiene un runbook separado de downgrade; el procedimiento soportado y documentado es instalar una version especifica del engine desde el repo apt oficial
  • procedimiento oficial de downgrade documentado para esta ventana:
  • frenar la ventana y no continuar con Portainer, OpenClaw ni NPM
  • relevar versiones instaladas y disponibles: dpkg-query -W docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin y apt-cache madison docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
  • reinstalar la version objetivo anterior con apt install usando version explicita para docker-ce y docker-ce-cli, mas los paquetes asociados desde el mismo repo oficial
  • revalidar de inmediato: docker version, docker ps, docker info, TEST-OPENCLAW-HTTPS-001, TEST-NPM-HTTPS-001, TEST-PORTAINER-HTTPS-001
  • compatibilidad hacia atras esperada:
  • volver de 29.5.2 a 29.1.3 sigue dentro de la rama mayor 29.x
  • no hay advertencia oficial de ruptura de Compose file format en este salto
  • la limitacion explicita encontrada afecta redes creadas con la nueva capacidad de asignacion de subred desde pools por defecto: si se cae a una version sin soporte, la red debe borrarse y recrearse
  • limite documentado:
  • el repo no tenia hasta esta corrida un runbook especifico de rollback de Docker Engine
  • Docker no publica un bundle fijo y obligatorio de containerd.io, buildx y compose-plugin para 29.5.2; si esos paquetes no se capturan antes del cambio, el rollback exacto queda parcial
  • accion segura minima si falla: no tocar Portainer, OpenClaw ni NPM; estabilizar engine y revalidar docker version, docker ps y reachability base

Portainer rollback

  • volver a imagen anterior: portainer/portainer-ce:2.39.2
  • si el estado no recupera: restaurar portainer-volume.tgz sobre portainer_data_new
  • base documental: docs/governance/runbooks/RESTORE-PORTAINER.md

OpenClaw rollback

  • volver a imagen anterior: ghcr.io/openclaw/openclaw:2026.5.5
  • volver a docker-compose.yml.pre-update-2026-06-08 si fue creado en la misma ventana
  • si el estado no recupera: restaurar openclaw-stack.tgz
  • base documental: docs/governance/runbooks/RESTORE-OPENCLAW.md

NPM rollback

  • volver a imagen anterior efectiva: jc21/nginx-proxy-manager:latest con la advertencia de que ese tag no fija digest historico exacto
  • estrategia mas segura: restaurar npm-stack.tgz completo sobre /docker/nginx-proxy-manager incluyendo data/ y letsencrypt/
  • limite documentado: si se requiere reproducibilidad exacta del runtime anterior, falta fijar el digest o tag historico exacto de la imagen hoy en uso
  • base documental: docs/governance/runbooks/RESTORE-NPM.md

13.8 Criterio de corte si algo falla

Se corta la ventana en el primer fallo de cualquiera de estos puntos:

  • docker version o docker ps no vuelven sanos tras el update de Docker
  • Portainer no responde por 9443 interno o por HTTPS publico
  • OpenClaw pierde health, auth, HTTPS o websocket
  • NPM pierde 81, un upstream critico, un host publico critico o la carga visible de certificados
  • aparece evidencia de drift no esperado en compose, volumen, red o mounts

Accion al cortar:

  1. no continuar con el siguiente servicio
  2. aplicar rollback solo del servicio que acaba de fallar
  3. revalidar el baseline minimo
  4. dejar la ventana en NO-GO hasta nueva decision explicita

13.9 Estado de preparacion

  • ventana real preparada: si
  • comandos listos pero no ejecutados: si
  • targets exactos definidos:
  • Docker -> 29.5.2
  • Portainer -> 2.39.3
  • OpenClaw -> 2026.6.1
  • NPM -> 2.15.1
  • pendientes explicitos:
  • repetir TEST-WEBSOCKET-001 dentro de la ventana real
  • autorizacion explicita final de Gabi

14. Referencias usadas

Governance local

  • docs/governance/CHANGE-GATES.md
  • docs/governance/runbooks/UPDATE-SERVICE.md
  • docs/governance/catalog/TESTS.md
  • docs/governance/services/svc-portainer.md
  • docs/governance/services/svc-openclaw.md
  • docs/governance/services/svc-nginx-proxy-manager.md
  • docs/governance/catalog/BACKUPS.md
  • docs/governance/knowledge/infrastructure/SERVICES-AND-DEPENDENCIES.md

Fuentes oficiales externas

  • Docker Engine 29.5.2 release notes: https://docs.docker.com/engine/release-notes/29/
  • Portainer releases: https://github.com/portainer/portainer/releases
  • Portainer 2.39.3 LTS: https://github.com/portainer/portainer/releases/tag/2.39.3
  • OpenClaw releases: https://github.com/openclaw/openclaw/releases
  • OpenClaw 2026.6.1: https://github.com/openclaw/openclaw/releases/tag/v2026.6.1
  • Nginx Proxy Manager releases: https://github.com/NginxProxyManager/nginx-proxy-manager/releases
  • Nginx Proxy Manager v2.15.1: https://github.com/NginxProxyManager/nginx-proxy-manager/releases/tag/v2.15.1