svc-nginx-proxy-manager¶
A. Identidad¶
- service_id:
svc-nginx-proxy-manager - nombre: Nginx Proxy Manager
- estado: activo al
2026-05-31 - owner: Gabi
- criticidad: alta
- fecha de alta:
preexistente a OpenClaw - ultima revision:
2026-06-01
B. Proposito¶
- resumen funcional: proxy reverso, publicacion HTTPS y gestion de certificados.
- rol dentro del VPS: punto unico de entrada publica y terminacion TLS.
- por que existe: publica servicios por dominio sin exponerlos directamente al host si no hace falta.
C. Ubicacion¶
- path VPS:
/docker/nginx-proxy-manager - path repo/docs:
docs/governance/services/svc-nginx-proxy-manager.md - compose file:
/docker/nginx-proxy-manager/docker-compose.yml .envreal:pendiente de validar- archivos criticos:
/docker/nginx-proxy-manager/docker-compose.yml/docker/nginx-proxy-manager/data/docker/nginx-proxy-manager/letsencryptdatabase.sqlitedentro dedata/
D. Docker¶
- stack:
nginx-proxy-manager - container names:
nginx-proxy-manager- image/tag:
jc21/nginx-proxy-manager:latest - restart policy:
unless-stopped - healthcheck:
pendiente de validar si existe healthcheck Docker declarativo - networks:
proxy-networknginx-proxy-manager_default- volumes:
- bind mounts sobre
/docker/nginx-proxy-manager/data - bind mounts sobre
/docker/nginx-proxy-manager/letsencrypt - bind mounts:
/docker/nginx-proxy-manager/data/docker/nginx-proxy-manager/letsencrypt- exposed ports:
80/tcp81/tcp443/tcp- published ports:
80:8081:81443:443- internal ports:
80/tcp81/tcp443/tcp
E. Red¶
- redes Docker:
proxy-networkpara hablar con servicios publicadosnginx-proxy-manager_defaultcomo red interna del stack- red publica/proxy: si, es el proxy publico del VPS
- redes internas:
nginx-proxy-manager_default - quien puede hablar con quien:
- Internet llega a NPM por
80/443 - operadores llegan al admin por
81 - NPM habla con OpenClaw por
proxy-network - puertos internos:
80/tcp81/tcp443/tcp- puertos externos:
80/tcp81/tcp443/tcp- firewall: la exposicion depende de los puertos publicados permitidos en el host
- observaciones de red: es el puente entre Internet y los servicios publicados
F. NPM / Proxy / Dominio¶
- dominio: sirve
openclaw.alpuntodeventa.com.arywww.portainer.alpuntodeventa.com.arydoc.alpuntodeventa.com.ar; dominio propio del adminno observado - proxy host: si, es el servicio que los administra
- forward hostname:
openclaw-gatewaypara el host publico confirmado de OpenClaw - forward port:
18789para OpenClaw - SSL: si, Let's Encrypt activo
- websocket:
validado PASS al 2026-06-01para el proxy publico de OpenClaw; handshakewss, TLS,Origin,connect.challenge,connectyhello-okya quedaron evidenciados enTEST-WEBSOCKET-001 - headers especiales: inyecta
X-Forwarded-*al backend - HSTS: si para OpenClaw publico
- renovacion de certificado: automatica desde NPM mientras DNS y challenge sigan validos
G. Datos y persistencia¶
- datos criticos:
- configuracion de proxy hosts
- certificados SSL
- metadata administrativa en
data/ - volumenes:
- no usa volumenes Docker nombrados conocidos al
2026-05-31 - carpetas bind:
/docker/nginx-proxy-manager/data/docker/nginx-proxy-manager/letsencrypt- que se puede regenerar:
- contenedor
- red default del stack
- que NO se puede perder:
- configuracion de proxy hosts
- certificados y metadata SSL
- base administrativa de NPM
H. Backups¶
- ruta backup:
/root/openclaw-backups/daily/<timestamp>/npm-stack.tgz - frecuencia: diario
03:00 - retencion: diarios
30 dias, semanales12, logs90 dias - restore probado: si, documentado
- RPO:
24 horas - RTO:
30-45 minutosen mismo VPS
I. Usos registrados¶
- usage_id:
use-npm-openclaw-public - app/servicio consumidor:
svc-openclaw - proposito: publicacion HTTPS de OpenClaw
- base/schema si aplica: no aplica
- usuario tecnico si aplica: no aplica
- red usada:
proxy-network - permisos: reach HTTP interno hacia
openclaw-gateway:18789 - criticidad: alta
- impacto si falla: OpenClaw sigue corriendo pero deja de ser accesible por dominio
-
backup/restore asociado:
npm-stack.tgz+ RESTORE-NPM.md -
usage_id:
use-npm-portainer-public - app/servicio consumidor:
svc-portainer - proposito: publicacion HTTPS real de Portainer por dominio
- base/schema si aplica: no aplica
- usuario tecnico si aplica: no aplica
- red usada:
proxy-network - permisos: reach HTTPS interno hacia
portainer:9443 - criticidad: media
- impacto si falla: se pierde acceso por dominio a Portainer
-
backup/restore asociado:
npm-stack.tgz+ RESTORE-NPM.md -
usage_id:
use-npm-knowledge-public - app/servicio consumidor:
knowledge-portal - proposito: publicacion HTTPS real del Knowledge Portal por dominio
- base/schema si aplica: no aplica
- usuario tecnico si aplica: no aplica
- red usada:
proxy-network - permisos: reach HTTP interno hacia
knowledge-portal:8085 - criticidad: media
- impacto si falla: el portal sigue corriendo pero deja de ser accesible por dominio
- backup/restore asociado:
npm-stack.tgz+ RESTORE-NPM.md
J. Dependencias¶
- depende de:
- DNS publico
- Let's Encrypt
proxy-network- servicios que dependen de este:
svc-openclaw- cualquier servicio publicado por dominio desde este proxy
- orden de arranque: primero NPM, luego validacion de proxy hosts y certificados
- impacto si cae: los servicios publicados pueden seguir sanos internamente, pero se rompe el acceso por dominio y la terminacion TLS
K. Operacion¶
- como validar salud:
docker pscurl -I http://127.0.0.1:81curl -I https://openclaw.alpuntodeventa.com.ar/- comandos utiles:
docker logs nginx-proxy-managerdocker exec nginx-proxy-manager curl -I http://openclaw-gateway:18789/- revision de
data/nginx/proxy_host/*.conf - logs:
- logs del contenedor
nginx-proxy-manager - archivos de configuracion generados en
data/nginx/proxy_host/ - como reiniciar: reiniciar solo el stack NPM
- como detener: detener solo NPM sabiendo que corta acceso publico
- como recuperar: usar RESTORE-NPM.md
L. Seguridad¶
- secretos: no documentar valores; los certificados y metadata sensible viven en
letsencrypt/ydata/ - usuarios tecnicos: admin de NPM
pendiente de detallar sin exponer credenciales - exposicion publica: si,
80/81/443 - hardening:
- centraliza TLS
- evita publicar directamente OpenClaw
- separa trafico interno por
proxy-network - riesgos:
- es punto unico de entrada publica
- concentra certificados y metadata de proxy
- el puerto
81requiere especial cuidado por exposicion administrativa
M. Estado y decisiones¶
- decisiones tomadas:
- mantener NPM como reverse proxy central
- usar Let's Encrypt
- publicar OpenClaw detras de
openclaw-gateway:18789 - por que esta asi: reduce complejidad operativa y centraliza certificados y dominios
- pendientes:
- validar si el admin de NPM tiene dominio propio
- revalidar el flujo websocket autenticado completo con un dispositivo Control UI aprobado si se necesita cerrar el warning actual
- riesgos aceptados:
- dependencia operativa de NPM para toda publicacion publica