Saltar a contenido

svc-portainer

A. Identidad

  • service_id: svc-portainer
  • nombre: Portainer
  • estado: activo al 2026-05-31
  • owner: Gabi
  • criticidad: media-alta
  • fecha de alta: preexistente a OpenClaw
  • ultima revision: 2026-06-01

B. Proposito

  • resumen funcional: consola de administracion Docker y stacks del VPS.
  • rol dentro del VPS: interfaz operativa para inspeccion y administracion.
  • por que existe: reduce friccion operativa para revisar contenedores, redes, volumenes y stacks.

C. Ubicacion

  • path VPS: contenedor standalone con volumen Docker
  • path repo/docs: docs/governance/services/svc-portainer.md
  • compose file: no corre como Compose activo; conserva metadata legacy en portainer_data_new/_data/compose/2/docker-compose.yml
  • .env real: no aplica en el estado conocido actual
  • archivos criticos:
  • /var/lib/docker/volumes/portainer_data_new/_data
  • /var/lib/docker/volumes/portainer_data_new/_data/compose/2/docker-compose.yml
  • /var/run/docker.sock
  • portainer.db dentro del volumen activo

D. Docker

  • stack: standalone con metadata legacy de stack portainer
  • container names:
  • portainer
  • image/tag: portainer/portainer-ce:2.39.2
  • restart policy: unless-stopped
  • healthcheck: pendiente de validar si existe healthcheck Docker declarativo
  • networks:
  • proxy-network
  • portainer2_default como legado sin contenedores
  • volumes:
  • portainer_data_new
  • portainer_data legado conservado
  • bind mounts:
  • /var/run/docker.sock:/var/run/docker.sock
  • exposed ports:
  • 8000/tcp
  • 9443/tcp
  • published ports:
  • 8000:8000
  • 9443:9443
  • internal ports:
  • 8000/tcp
  • 9443/tcp

E. Red

  • redes Docker:
  • proxy-network
  • portainer2_default legado sin contenedores
  • red publica/proxy: acceso HTTPS local validado y dominio publico real www.portainer.alpuntodeventa.com.ar observado por NPM
  • redes internas: no tiene red interna dedicada confirmada fuera de proxy-network
  • quien puede hablar con quien:
  • operadores pueden llegar al contenedor por 9443
  • el contenedor puede hablar con Docker por docker.sock
  • la red legacy portainer2_default queda solo documentada como legado
  • puertos internos:
  • 8000/tcp
  • 9443/tcp
  • puertos externos:
  • 8000/tcp
  • 9443/tcp
  • firewall: expuesto por puertos publicados; requiere control operatorio
  • observaciones de red: el runtime real esta en proxy-network, no en la red legacy

F. NPM / Proxy / Dominio

  • dominio: www.portainer.alpuntodeventa.com.ar
  • proxy host: si, observado en proxy_host/2.conf
  • forward hostname: portainer
  • forward port: 9443
  • SSL: si, por Let's Encrypt via certificado npm-2
  • websocket: no aplica conocido al 2026-05-31
  • headers especiales: no documentados
  • HSTS: no se confirmo header HSTS en la respuesta publica observada
  • renovacion de certificado: depende de NPM y de Let's Encrypt

G. Datos y persistencia

  • datos criticos:
  • portainer.db
  • metadata de stacks
  • configuracion operativa del endpoint local
  • volumenes:
  • portainer_data_new activo
  • portainer_data legado conservado
  • carpetas bind:
  • /var/run/docker.sock
  • que se puede regenerar:
  • contenedor Portainer
  • red legacy vacia si en algun momento se decide retirarla
  • que NO se puede perder:
  • volumen portainer_data_new
  • portainer.db
  • metadata de compose/

H. Backups

  • ruta backup: /root/openclaw-backups/daily/<timestamp>/portainer-volume.tgz
  • frecuencia: diario 03:00
  • retencion: diarios 30 dias, semanales 12, logs 90 dias
  • restore probado: si, documentado
  • RPO: 24 horas
  • RTO: 30-45 minutos en mismo VPS

I. Usos registrados

  • usage_id: use-portainer-openclaw-admin
  • app/servicio consumidor: svc-openclaw
  • proposito: inspeccion administrativa del stack y sus recursos Docker
  • base/schema si aplica: no aplica
  • usuario tecnico si aplica: operador Portainer
  • red usada: no aplica como consumo de red entre apps
  • permisos: lectura y administracion sobre Docker via docker.sock
  • criticidad: media
  • impacto si falla: se pierde visibilidad y administracion facil del stack
  • backup/restore asociado: portainer-volume.tgz + RESTORE-PORTAINER.md

  • usage_id: use-portainer-npm-admin

  • app/servicio consumidor: svc-nginx-proxy-manager
  • proposito: inspeccion administrativa del contenedor y sus recursos
  • base/schema si aplica: no aplica
  • usuario tecnico si aplica: operador Portainer
  • red usada: no aplica como consumo de red entre apps
  • permisos: lectura y administracion sobre Docker via docker.sock
  • criticidad: media
  • impacto si falla: se mantiene NPM funcionando, pero se pierde consola de administracion
  • backup/restore asociado: portainer-volume.tgz + RESTORE-PORTAINER.md

J. Dependencias

  • depende de:
  • Docker daemon del host
  • docker.sock
  • volumen portainer_data_new
  • svc-nginx-proxy-manager si se usa el dominio publicado
  • servicios que dependen de este:
  • operadores humanos para administrar svc-openclaw y svc-nginx-proxy-manager
  • orden de arranque: primero Docker, luego Portainer
  • impacto si cae: los servicios siguen funcionando, pero se pierde la consola administrativa

K. Operacion

  • como validar salud:
  • docker ps --filter name=^/portainer$
  • docker exec portainer /portainer --version
  • curl -k -I https://127.0.0.1:9443
  • comandos utiles:
  • docker logs portainer
  • docker volume inspect portainer_data_new
  • docker inspect portainer
  • logs:
  • logs del contenedor portainer
  • contenido del volumen portainer_data_new
  • como reiniciar: reiniciar el contenedor portainer
  • como detener: detener el contenedor portainer
  • como recuperar: usar RESTORE-PORTAINER.md

L. Seguridad

  • secretos: no exponer credenciales; la metadata sensible vive dentro del volumen
  • usuarios tecnicos: usuarios administradores de Portainer pendiente de detallar sin credenciales
  • exposicion publica: puertos 8000/9443 publicados y dominio www.portainer.alpuntodeventa.com.ar observado detras de NPM
  • hardening:
  • version fijada en 2.39.2
  • volumen activo identificado
  • legado documentado antes de retiro
  • riesgos:
  • usa docker.sock, por lo tanto tiene privilegio alto sobre el host Docker
  • conserva legado portainer_data y portainer2_default
  • si se expone publicamente, aumenta la superficie administrativa

M. Estado y decisiones

  • decisiones tomadas:
  • fijar imagen en 2.39.2
  • preservar portainer_data_new
  • documentar portainer_data y portainer2_default como legado
  • mantener runtime real en proxy-network
  • por que esta asi: se privilegio compatibilidad con Docker 29.x y continuidad operativa sin borrar legado util para rollback o auditoria
  • pendientes:
  • definir retiro controlado del legado portainer_data
  • definir retiro controlado de portainer2_default
  • riesgos aceptados:
  • alto privilegio sobre Docker por uso de docker.sock