[{"data":1,"prerenderedAt":210},["ShallowReactive",2],{"seo-verification":3,"blog-watchtower-vs-diun-actualizaciones-docker-en-vps-sin-sorpresas-es":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-watchtower-vs-diun-actualizaciones-docker-en-vps-sin-sorpresas-es",{"id":9,"slug":10,"slugs":11,"title":14,"excerpt":15,"readTime":16,"views":17,"isPinned":18,"publishedAt":19,"updatedAt":20,"category":21,"categories":26,"featuredImage":28,"bgImage":29,"posterImage":30,"relatedSolution":28,"intro":31,"sections":32,"ctaTitle":111,"ctaBody":112,"ctaButton":113,"ctaUrl":114,"relatedPosts":115},350,"watchtower-vs-diun-actualizaciones-docker-en-vps-sin-sorpresas",{"fr":12,"en":13,"ar":13,"es":10},"mise-a-jour-automatique-docker-watchtower-diun","mise-a-jour-automatique-docker-watchtower-diun-2","Watchtower vs Diun: actualizaciones Docker en VPS sin sorpresas","Watchtower actualiza tus contenedores automáticamente. Diun te avisa y te deja decidir. Comparativa práctica para elegir según tu entorno de producción.",8,1,false,"2026-09-11T00:00:00+00:00","2026-09-17T14:09:38+00:00",{"id":22,"name":23,"slug":24,"color":25,"icon":24},3,"Despliegue","deploiement","bg-success\u002F10 text-success",[27],{"id":22,"name":23,"slug":24,"color":25,"icon":24},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fmise-a-jour-automatique-docker-watchtower-diun-poster.svg","Las imágenes Docker envejecen en silencio: los parches de seguridad se acumulan, las dependencias se ven afectadas, y nada te avisa. Sin un proceso definido, o nunca parcheas o lo haces manualmente el día que ocurre un incidente. Watchtower y Diun abordan este problema con dos filosofías opuestas — uno actúa por ti, el otro te informa. Esta comparativa te ayuda a elegir según tu contexto, teniendo en cuenta un hecho reciente: Watchtower fue archivado por sus mantenedores a finales de 2025.",[33,37,40,44,47,77,80,96,99,102],{"type":34,"title":35,"body":36},"h2","El problema: imágenes Docker que envejecen en silencio","En un VPS en producción, los contenedores Docker suelen funcionar durante semanas o meses sin actualizarse. No es negligencia — simplemente no hay ninguna señal. La imagen `nginx:latest` que descargaste en enero sigue ahí en septiembre, con las vulnerabilidades que se han corregido desde entonces.\n\nEl coste de no hacer nada está documentado: los CVE no parcheados en las imágenes base son uno de los vectores de entrada más comunes en infraestructuras Docker autoalojadas. La actualización manual — conectarse al VPS, ejecutar `docker pull`, recrear el contenedor — es la práctica habitual. También es la menos fiable: se pospone, se olvida y solo se actualizan los servicios «importantes».\n\nHan surgido dos herramientas para estructurar este proceso: **Watchtower**, que automatiza la actualización en sí misma, y **Diun** (Docker Image Update Notifier), que envía una alerta cuando hay una nueva imagen disponible y deja la acción a tu pipeline. No hacen lo mismo, y confundir las dos filosofías puede provocar una caída en producción.",{"type":34,"title":38,"body":39},"Watchtower: actualización automática, pero archivado desde finales de 2025","Watchtower monitoriza tus contenedores en ejecución, consulta los registries a intervalos regulares y, en cuanto hay una nueva imagen disponible, descarga el nuevo tag, detiene el contenedor existente y lo recrea con las mismas opciones — volúmenes, variables de entorno, red. Todo sin intervención humana.\n\n**Lo que hace en la práctica:**\n\n- Polling configurable por duración (cada N segundos) o expresión cron\n- Soporte de registries privados con autenticación\n- Modo `WATCHTOWER_NOTIFICATIONS` para recibir alertas sin realizar actualizaciones\n- Filtrado por labels de Docker para incluir o excluir contenedores concretos\n\n**El riesgo en producción es real.** Si una imagen `:latest` introduce un cambio incompatible de API o un comportamiento que rompe algo, Watchtower recreará tu contenedor con esa imagen — sin pruebas, sin ventana de mantenimiento, potencialmente a las 3 de la madrugada. El contenedor se reinicia con la versión incorrecta, y el descubrimiento llega a través de una alerta de monitorización o una llamada de soporte.\n\n**Actualización importante sobre el estado:** el repositorio de Watchtower en GitHub fue **archivado por sus mantenedores el 17 de finales de 2025**. Ahora es de solo lectura. La última versión publicada es la `v1.7.1`. El proyecto sigue siendo funcional y las imágenes Docker existentes continúan funcionando, pero ya no recibirá correcciones de seguridad, nuevas funcionalidades ni soporte para futuras versiones de Docker. Para una herramienta cuyo rol es actualizar tus imágenes, la ironía no es menor.\n\nPara entornos de desarrollo o homelabs donde la comodidad supera a la estabilidad, Watchtower sigue siendo una opción legítima. Para producción, su archivado refuerza una conclusión que ya existía: las actualizaciones automáticas sin un pipeline de validación son un riesgo operativo.",{"type":41,"title":42,"body":43},"tip","Watchtower en modo notify-only","Si ya usas Watchtower y quieres desactivar las actualizaciones automáticas manteniendo las notificaciones, establece la variable `WATCHTOWER_MONITOR_ONLY=true`. El contenedor monitoriza las imágenes y envía alertas, pero no actúa. Es una configuración de transición útil si estás migrando a Diun.",{"type":34,"title":45,"body":46},"Diun: solo alertas, tú mantienes el control","Diun (Docker Image Update Notifier) aborda el problema desde el otro ángulo: monitoriza tus imágenes en los registries y te envía una notificación cuando hay una nueva versión disponible. No actúa. Tus contenedores siguen funcionando sin cambios — la decisión de actualizar permanece en tu pipeline.\n\nCon licencia MIT, Diun está en desarrollo activo: la versión `la version actuelle` se publicó el recientemente. El proyecto cubre un amplio espectro de fuentes (Docker, Containerd, Kubernetes, Swarm, Nomad, Dockerfile, archivo de configuración) y canales de notificación.\n\n**Canales de notificación soportados:**\n\n- Correo electrónico, Slack, Telegram, ntfy, Gotify\n- Microsoft Teams, Discord, webhooks genéricos\n- Healthchecks.io para monitorizar el propio watcher\n\n**Lo que Diun no hace:**\n\n- Nunca descarga una imagen\n- Nunca reinicia un contenedor\n- Nunca modifica ningún archivo de configuración\n\nEsta filosofía es precisamente lo que lo hace adecuado para producción. Cuando Diun señala que hay una nueva imagen disponible, puedes activar tu pipeline de despliegue habitual — con sus pruebas, copia de seguridad previa y ventana de mantenimiento. Te mantienes en una postura controlada.\n\nDiun también es compatible con stacks gestionados por herramientas como Portainer, Coolify o Dokploy: observa las imágenes sin interferir en su orquestación.",{"type":48,"title":49,"headers":50,"rows":54},"comparison","Cuándo elegir uno u otro",[51,52,53],"Contexto","Watchtower","Diun",[55,59,63,66,70,73],[56,57,58],"Entorno de dev \u002F staging","Aceptable (comodidad)","Sobredimensionado",[60,61,62],"Prod con tags versionados (no :latest)","Evitar — recrea con el mismo tag","Recomendado",[64,65,62],"Prod con dependencias de API de terceros","Arriesgado sin prueba previa",[67,68,69],"Homelab \u002F servicios personales","Práctico","Correcto si las alertas están activas",[71,72,62],"Stack gestionado por Coolify, Dokploy, Portainer","Posible conflicto con el orquestador",[74,75,76],"Proyecto sin pipeline de despliegue","Aceptable con monitor-only","Recomendado con ntfy\u002FSlack",{"type":34,"title":78,"body":79},"Instalar Diun en un VPS: ejemplo práctico","La instalación de Diun se realiza en pocos minutos con Docker Compose. El siguiente ejemplo monitoriza todos los contenedores del socket Docker local y envía notificaciones vía ntfy.",{"type":81,"title":82,"steps":83},"steps","Desplegar Diun en tu VPS",[84,87,90,93],{"title":85,"body":86},"Crear el archivo docker-compose.yml","Crea un directorio dedicado y el archivo Compose:\n\n```bash\nmkdir -p \u002Fopt\u002Fdiun && cd \u002Fopt\u002Fdiun\n```\n\nContenido del archivo `docker-compose.yml`:\n\n```bash\nservices:\n  diun:\n    image: crazymax\u002Fdiun:latest\n    restart: unless-stopped\n    volumes:\n      - \u002Fvar\u002Frun\u002Fdocker.sock:\u002Fvar\u002Frun\u002Fdocker.sock\n      - .\u002Fdata:\u002Fdata\n    environment:\n      - TZ=Europe\u002FParis\n      - LOG_LEVEL=info\n      - DIUN_WATCH_WORKERS=20\n      - DIUN_WATCH_SCHEDULE=0 *\u002F6 * * *\n      - DIUN_PROVIDERS_DOCKER=true\n      - DIUN_PROVIDERS_DOCKER_WATCHSTOPPED=true\n      - DIUN_NOTIF_NTFY_ENDPOINT=https:\u002F\u002Fntfy.example.com\n      - DIUN_NOTIF_NTFY_TOPIC=diun-updates\n```\n\nSustituye `ntfy.example.com` por la URL de tu instancia de ntfy (autoalojada en el mismo VPS o externa).",{"title":88,"body":89},"Activar monitorización por label (opcional)","Por defecto, Diun monitoriza todos los contenedores. Para un control más fino, cambia al modo label:\n\n```bash\n- DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=false\n```\n\nLuego añade el label en los contenedores que quieres monitorizar:\n\n```bash\nlabels:\n  - \"diun.enable=true\"\n```\n\nEste enfoque es útil para excluir los contenedores del sistema (proxies, bases de datos) de las notificaciones, y monitorizar solo los contenedores de aplicación.",{"title":91,"body":92},"Iniciar y verificar","```bash\ndocker compose up -d\ndocker compose logs -f diun\n```\n\nDiun realiza un primer pase de descubrimiento al arrancar. Los logs confirman las imágenes detectadas y el próximo ciclo de monitorización. Se puede lanzar una notificación de prueba con:\n\n```bash\ndocker compose exec diun diun notif test\n```",{"title":94,"body":95},"Activar la actualización desde tu pipeline","Cuando Diun envía una notificación, la actualización no debe hacerse a mano. El enfoque correcto es activar tu pipeline habitual — un webhook de Gitea, una GitHub Action, o un job de Woodpecker que descargue la nueva imagen, ejecute tus pruebas y recree el contenedor.\n\nSi aún no tienes un pipeline, el mínimo viable es un script llamado desde el webhook de ntfy:\n\n```bash\n#!\u002Fbin\u002Fbash\n# update-container.sh \u003Cnombre_contenedor>\nCONTAINER=$1\ndocker compose -f \u002Fopt\u002F${CONTAINER}\u002Fdocker-compose.yml pull\ndocker compose -f \u002Fopt\u002F${CONTAINER}\u002Fdocker-compose.yml up -d\n```\n\nLo esencial es que la actualización se **active de forma intencionada**, no en silencio.",{"type":34,"title":97,"body":98},"Ir más lejos: fijar versiones y mantener el control","Las actualizaciones automáticas sin un tag fijo son el riesgo real — ya sea con Watchtower o con un pipeline activado por Diun. El tag `:latest` es un alias que puede apuntar a cualquier versión publicada por el mantenedor. Una actualización de `:latest` puede introducir un cambio incompatible sin que nada en tu configuración cambie.\n\n**La práctica recomendada por la comunidad Docker:**\n\nFija las versiones en tus archivos `docker-compose.yml` en producción:\n\n```bash\n# Evitar en prod\nimage: nginx:latest\n\n# Preferir un tag de versión\nimage: nginx:1.27\n```\n\nReserva `:latest` para los entornos de desarrollo y staging, donde una regresión es detectable antes de afectar a producción.\n\nCon imágenes versionadas, Diun detecta las nuevas releases (nuevos tags) y te notifica — tú eliges la versión a la que migrar, actualizas tu `docker-compose.yml` y despliegas con control total. Esto es lo que el \u003Ca href=\"\u002Fblog\u002Fdocker-compose-production-checklist\">checklist de producción de Docker Compose\u003C\u002Fa> llama «declarar explícitamente tus dependencias».\n\nSi gestionas múltiples contenedores en el mismo VPS, una herramienta de monitorización de logs como \u003Ca href=\"\u002Fblog\u002Fself-host-dozzle-vps\">Dozzle\u003C\u002Fa> complementa útilmente a Diun: Diun monitoriza las imágenes en origen, Dozzle observa los logs de los contenedores tras una actualización.",{"type":41,"title":100,"body":101},"Diun también monitoriza imágenes detenidas","Por defecto, Diun ignora los contenedores detenidos. Activa `DIUN_PROVIDERS_DOCKER_WATCHSTOPPED=true` para monitorizar también las imágenes de contenedores en pausa o detenidos — útil si gestionas servicios batch o contenedores de mantenimiento que reinicias periódicamente.",{"type":103,"title":104,"items":105},"ul","Lo que retener de esta comparativa",[106,107,108,109,110],"Watchtower actúa sin pedirte opinión — útil en desarrollo, arriesgado en producción, y archivado desde el 17 de finales de 2025.","Diun informa sin actuar — compatible con cualquier pipeline de despliegue existente y mantenido activamente (la version actuelle).","Para producción, Diun combinado con tu pipeline es la opción más robusta.","Fijar versiones en docker-compose.yml sigue siendo la base — ni Watchtower ni Diun reemplazan una gestión explícita de tags.","Si tienes Watchtower instalado, el modo `WATCHTOWER_MONITOR_ONLY=true` es una transición inmediata hacia un comportamiento más seguro.","Lanza tu stack Docker en un VPS de ServOrbit","Acceso root, SSD NVMe, IPv4 dedicada: las condiciones para reproducir estos ejemplos exactamente. Diun y tu pipeline de despliegue corren en la misma máquina que tus contenedores de aplicación.","Ver VPS Linux","\u002Fsolutions\u002Fdeveloppeurs",[116,139,153,175,196],{"id":117,"slug":118,"slugs":119,"title":123,"excerpt":124,"readTime":22,"views":125,"isPinned":18,"publishedAt":126,"updatedAt":127,"category":128,"categories":134,"featuredImage":28,"bgImage":29,"posterImage":136,"relatedSolution":137},136,"instalar-docker-en-un-vps",{"fr":120,"en":121,"ar":122,"es":118},"demarrer-avec-docker-vps","installing-docker-on-a-vps-a-clean-base-for-your-apps","تثبيت-docker-على-vps-قاعدة-نظيفة-لتطبيقاتك","Instalar Docker en un VPS: una base limpia para sus apps","Prepare un VPS Docker fiable: aislamiento, Compose, volúmenes, red y buenas prácticas para desplegar sin improvisar.",0,"2026-02-10T00:00:00+00:00","2026-09-07T11:26:10+00:00",{"id":129,"name":130,"slug":131,"color":132,"icon":133},4,"Desarrollo","developpement","bg-warning\u002F10 text-warning","dev",[135],{"id":129,"name":130,"slug":131,"color":132,"icon":133},"\u002Fblog\u002Fcovers\u002Fdemarrer-avec-docker-vps-poster.svg",{"categorySlug":133,"appSlug":138},"docker-starter",{"id":140,"slug":141,"slugs":142,"title":146,"excerpt":147,"readTime":16,"views":125,"isPinned":18,"publishedAt":148,"updatedAt":127,"category":149,"categories":150,"featuredImage":28,"bgImage":29,"posterImage":152,"relatedSolution":28},229,"checklist-docker-compose-en-produccion",{"fr":143,"en":144,"ar":145,"es":141},"docker-compose-production-checklist","docker-compose-in-production-10-point-checklist","docker-compose-في-الإنتاج-قائمة-التحقق-من-10-نقاط","Docker Compose en producción: checklist de 10 puntos","Checklist de Docker Compose en producción: 10 ajustes esenciales, gestión de secretos sin downtime, copias de volúmenes sin corrupción, CVE-2026-17106.","2026-08-06T00:00:00+00:00",{"id":22,"name":23,"slug":24,"color":25,"icon":24},[151],{"id":22,"name":23,"slug":24,"color":25,"icon":24},"\u002Fblog\u002Fcovers\u002Fdocker-compose-production-checklist-poster.svg",{"id":154,"slug":155,"slugs":156,"title":160,"excerpt":161,"readTime":129,"views":17,"isPinned":18,"publishedAt":162,"updatedAt":127,"category":163,"categories":169,"featuredImage":28,"bgImage":29,"posterImage":171,"relatedSolution":172},167,"alojar-dozzle-en-un-vps",{"fr":157,"en":158,"ar":159,"es":155},"self-host-dozzle-vps","how-to-self-host-dozzle-on-a-vps-real-time-docker-log-viewer","استضافة-dozzle-على-vps-عارض-سجلات-docker-لحظيا","Alojar Dozzle en un VPS: logs Docker en tiempo real","Despliegue Dozzle en su VPS: un visor de logs Docker open source y sin estado. Siga y busque en directo los logs de sus contenedores, sin SSH.","2026-07-06T00:00:00+00:00",{"id":164,"name":165,"slug":166,"color":167,"icon":168},7,"Autoalojamiento","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[170],{"id":164,"name":165,"slug":166,"color":167,"icon":168},"\u002Fblog\u002Fcovers\u002Fself-host-dozzle-vps-poster.svg",{"categorySlug":173,"appSlug":174},"monitorizacion-observabilidad","dozzle",{"id":176,"slug":177,"slugs":178,"title":182,"excerpt":183,"readTime":129,"views":125,"isPinned":18,"publishedAt":184,"updatedAt":185,"category":186,"categories":191,"featuredImage":28,"bgImage":29,"posterImage":193,"relatedSolution":194},194,"autoalojar-ntfy-en-un-vps",{"fr":179,"en":180,"ar":181,"es":177},"self-host-ntfy-vps","self-host-ntfy-on-a-vps-push-notifications-for-scripts-and-cicd","استضافة-ntfy-على-vps-إشعارات-فورية-من-سكريبتاتك-وcicd","Alojar ntfy en un VPS: notificaciones push para sus scripts","Despliegue ntfy en su VPS y envíe notificaciones push desde cualquier script, cron o pipeline CI\u002FCD con un simple curl — sin SaaS ni clave de API.","2026-07-28T00:00:00+00:00","2026-09-11T11:34:11+00:00",{"id":16,"name":187,"slug":188,"color":189,"icon":190},"Seguridad y monitorización","securite-monitoring","bg-rose-500\u002F10 text-rose-400","security",[192],{"id":16,"name":187,"slug":188,"color":189,"icon":190},"\u002Fblog\u002Fcovers\u002Fself-host-ntfy-vps-poster.svg",{"categorySlug":173,"appSlug":195},"ntfy",{"id":197,"slug":198,"slugs":199,"title":203,"excerpt":204,"readTime":129,"views":17,"isPinned":18,"publishedAt":205,"updatedAt":127,"category":206,"categories":207,"featuredImage":28,"bgImage":29,"posterImage":209,"relatedSolution":28},224,"apps-self-hosted-rutina-de-parches",{"fr":200,"en":201,"ar":202,"es":198},"routine-correctifs-apps-self-hosted","self-hosted-apps-the-patching-routine","التطبيقات-المستضافة-ذاتيا-روتين-التصحيحات","Aplicaciones self-hosted: la rutina de parches","Inventario, avisos de seguridad, ventana de parcheo, copia de seguridad y verificación: la rutina que falta en la mayoría de los parques self-hosted.","2026-08-05T00:00:00+00:00",{"id":16,"name":187,"slug":188,"color":189,"icon":190},[208],{"id":16,"name":187,"slug":188,"color":189,"icon":190},"\u002Fblog\u002Fcovers\u002Froutine-correctifs-apps-self-hosted-poster.svg",1789665035444]