README.es.md

August 15, 2026 · View on GitHub

English · Español · Polski · 简体中文 · Deutsch · Français · Português (Brasil)

drydock

drydock

Observador de actualizaciones de imágenes de contenedores: 23 registros, 20 proveedores de notificaciones y acciones.

Version Multi-arch License AGPL-3.0
CI OpenSSF Scorecard OpenSSF Best Practices Code Coverage Mutation testing
GHCR pulls Mentioned in Awesome Docker Crowdin localization


Warning

¿Actualizando desde una versión anterior? Lea primero las notas de actualización. Tres correcciones de refuerzo de seguridad se enviaron por primera vez en 1.4.6 y se ejecutan en toda la línea 1.5, por lo que cualquiera que actualice desde una versión anterior a 1.4.6 se verá afectado independientemente de la versión a la que acceda (1.4.6, cualquier 1.5.x o posterior). No están en desuso y no tienen período de gracia: OIDC ahora requiere authorization_endpoint en los metadatos de descubrimiento de su proveedor, claves de limitación de velocidad no autenticadas en la dirección del par TCP (depósito compartido detrás de un proxy inverso) y las URL del proxy de activación HTTP deben usar http(s)://. Consulte UPGRADE-NOTES.md antes de actualizar.

Warning

¿Actualizando a 1.6.0-rc.3 o posterior? Se aplican más refuerzos de seguridad sin período de gracia. Una instancia sin autenticación configurada, o con autenticación anónima habilitada pero no confirmada, ahora se cierra de forma segura al actualizar, igual que una instalación nueva: el contenedor sigue ejecutándose; las solicitudes protegidas de la API devuelven 401; las rutas públicas de descubrimiento y estado de autenticación siguen disponibles; y /health devuelve 503. La interfaz SPA puede cargar, pero no puede leer datos protegidos. Configure DD_ANONYMOUS_AUTH_CONFIRM=true o DD_AUTH_BASIC_*/OIDC antes de actualizar. La cookie de sesión cambia de connect.sid a drydock.sid, cerrando una vez todas las sesiones existentes. Los activadores HTTP, el webhook de Hass y las descargas de iconos de registros ahora resuelven nombres mediante una consulta DNS protegida que bloquea destinos de metadatos de nube y link-local, y nunca sigue redirecciones. Use allowmetadata=true solo en un activador DD_NOTIFICATION_HTTP_* que realmente lo necesite. Consulte DEPRECATIONS.md para ver la guía completa.

📑 Contenidos


🚀 Inicio rápido

Recomendado: use un proxy de socket para restringir a qué puntos finales de la API de Docker puede acceder Drydock. Esto evita darle al contenedor acceso completo al socket Docker.

services:
  drydock:
    image: codeswhat/drydock
    depends_on:
      socket-proxy:
        condition: service_healthy
    environment:
      - DD_WATCHER_LOCAL_HOST=socket-proxy
      - DD_WATCHER_LOCAL_PORT=2375
      - DD_AUTH_BASIC_ADMIN_USER=admin
      - "DD_AUTH_BASIC_ADMIN_HASH=<paste-argon2id-hash>"
    ports:
      - 3000:3000

  socket-proxy:
    image: tecnativa/docker-socket-proxy
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - CONTAINERS=1
      - IMAGES=1
      - EVENTS=1
      - SERVICES=1
      - INFO=1          # Required for daemon identity detection (notification prefixes)
      # Add POST=1 and NETWORKS=1 for container actions and auto-updates
    healthcheck:
      test: wget --spider http://localhost:2375/version || exit 1
      interval: 5s
      timeout: 3s
      retries: 3
      start_period: 5s
    restart: unless-stopped
Alternativa: sockguard proxy de socket

sockguard es un filtro de socket Docker de denegación predeterminado del mismo ecosistema CodesWhat, con un ajuste preestablecido creado para drydock:

services:
  drydock:
    image: codeswhat/drydock
    depends_on:
      sockguard:
        condition: service_healthy
    environment:
      - DD_WATCHER_LOCAL_HOST=sockguard
      - DD_WATCHER_LOCAL_PORT=2375
      - DD_AUTH_BASIC_ADMIN_USER=admin
      - "DD_AUTH_BASIC_ADMIN_HASH=<paste-argon2id-hash>"
    ports:
      - 3000:3000

  sockguard:
    image: codeswhat/sockguard
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./sockguard.yaml:/etc/sockguard/config.yaml:ro
    environment:
      - SOCKGUARD_CONFIG_FILE=/etc/sockguard/config.yaml
    healthcheck:
      test: wget --spider http://localhost:2375/version || exit 1
      interval: 5s
      timeout: 3s
      retries: 3
      start_period: 5s
    restart: unless-stopped

Consulte el ajuste preestablecido app/configs/portwing.yaml de sockguard para obtener un sockguard.yaml inicial (el mismo ajuste preestablecido portwing se envía en sus propios ejemplos).

Alternativa: inicio rápido con montaje directo en enchufe
docker run -d \
  --name drydock \
  -p 3000:3000 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -e DD_AUTH_BASIC_ADMIN_USER=admin \
  -e "DD_AUTH_BASIC_ADMIN_HASH=<paste-argon2id-hash>" \
  codeswhat/drydock:latest

Advertencia: El acceso directo al socket otorga al contenedor control total sobre el demonio Docker. Utilice la configuración de proxy de socket anterior para implementaciones de producción. Consulte la Guía de seguridad de Docker Socket para conocer todas las opciones, incluido TLS remoto y Docker sin raíz.

Genere un hash de contraseña (argon2 CLI: instálelo a través de su administrador de paquetes):

echo -n "yourpassword" | argon2 $(openssl rand -base64 32) -id -m 16 -t 3 -p 4 -l 64 -e

O con Node.js 24.7+ (no se necesitan paquetes adicionales):

node -e 'const c=require("node:crypto");const s=c.randomBytes(32);const h=c.argon2Sync("argon2id",{message:process.argv[1],nonce:s,memory:65536,passes:3,parallelism:4,tagLength:64});console.log("argon2id\$65536\$3$4$"+s.toString("base64")+"$"+h.toString("base64"));' "yourpassword"

Drydock v1.6 acepta solo hash de autenticación básica argon2id. Se rechazan los hashes heredados {SHA}, $apr1$/$1$, crypt y de texto sin formato; regenerarlos antes de actualizar. La autenticación es requerida de forma predeterminada. Consulte los auth docs para OIDC, acceso anónimo y otras opciones. El acceso anónimo debe confirmarse explícitamente con DD_ANONYMOUS_AUTH_CONFIRM=true tanto en instalaciones nuevas como actualizadas. Sin esa confirmación, una instancia sin autenticación configurada o con autenticación anónima no confirmada se inicia cerrada de forma segura: las solicitudes protegidas de la API devuelven 401, las rutas públicas de descubrimiento y estado de autenticación siguen disponibles y /health devuelve 503.

La imagen incluye archivos binarios trivy y cosign para escaneo de vulnerabilidades locales y verificación de imágenes.

Consulte la guía de inicio rápido para Docker Compose, seguridad de socket, proxy inverso y registros alternativos.


🆕 Actualizaciones recientes

Aspectos destacados de v1.7.0-rc.1
  • Actualizaciones conscientes de dependencias: las etiquetas o los metadatos de Compose crean un grafo de dependencias validado, muestran las oleadas exactas en la vista previa y ejecutan actualizaciones o reinicios de dependientes en orden determinista, con manejo seguro de ciclos, fallos y vistas previas obsoletas. (Discusión #219)
  • Experiencia del operador: PWA instalable, enlaces de puertos con nombre, tiempo de actividad del contenedor en vivo, atajos de teclado y detección con espera para contenedores recién descubiertos.
  • Migración incompatible de disparadores: DD_TRIGGER_* ahora impide el arranque y las etiquetas antiguas dd.trigger.include / dd.trigger.exclude ya no enrutan trabajo; use DD_ACTION_*, DD_NOTIFICATION_* y sus etiquetas con ámbito.
  • Refuerzo de seguridad y ciclo de vida: la autenticación, las solicitudes de agentes, los registros, WebSockets y las solicitudes a registros tienen límites explícitos; se ocultan valores sensibles de comandos y hooks; el descubrimiento de Home Assistant se resincroniza después del arranque y retira trabajo de proveedores sin publicaciones obsoletas. (#708)
  • Historial de estrellas propio: el proveedor de mismo origen /api/star-history sirve gráficos de Drydock, Sockguard y Portwing mediante una lista permitida, sin depender de un rastreador externo.

Notas completas en CHANGELOG.md.

Aspectos destacados de v1.6.0
  • El transporte de agentes/Edge de Portwing madura: comprobaciones y actualizaciones nativas de Docker controladas por el controlador para Portwing 0.9.0+, transmisión continua de registros Edge, firma de solicitudes Ed25519 (v2) y nombres visibles propiedad del agente vinculados a su clave. (#632, #637)
  • Política de actualización declarativa con estabilización de madurez: precedencia dd.updatePolicy.* de tres niveles, cuenta atrás en vivo hasta liberar un candidato retenido y una notificación maturity-cleared dedicada. (Discusión #307, Discusión #406)
  • Plantillas por regla, preferencias de campana y el nuevo evento container-unhealthy, además de MQTT bidireccional de Home Assistant, cuyo botón Instalar ejecuta una actualización real. (Discusión #205, Discusión #198)
  • Todas las vistas de listas principales son adaptables: una DataTable compartida con selector persistente tabla/tarjeta en las diez vistas, que cambia a tarjetas por debajo de unos 640 px. (#498)
  • Se completa la paridad de /api/v1: se eliminan el alias sin versión /api/* y WS /api/log/stream (410 Gone); un shim opcional DD_COMPAT_WUDCARD cubre wud-card/Homepage. (Discusión #469)
  • Refuerzo de seguridad: el acceso anónimo se cierra de forma segura también al actualizar, los activadores HTTP están protegidos frente a SSRF, WebSocket valida el origen completo y la cookie de sesión pasa a llamarse drydock.sid.

Notas completas en CHANGELOG.md.

Aspectos destacados de v1.6.0-rc.13
  • La comparación de digest parte de candidatos del mismo repositorio: getOrderedRepoDigests filtra RepoDigests por el repositorio de la imagen en vez de confiar en el primer elemento; un ancla obsoleta ya guardada se repara sola. (#670)
  • nanoid fijado en 3.3.18 en todos los espacios de trabajo para CVE-2026-67213 y, en e2e, CVE-2026-67214. (#673)
  • El gráfico Star History se aloja localmente: una ruta del mismo origen /api/star-history reemplaza la integración de terceros, con caché en el borde y un SVG alternativo si falla la consulta. (#672)
  • Actualización de CVE en imágenes base: node:24-alpine usa Node 24.19.0 y la etapa de compilación de aquasec/trivy usa 0.73.0, eliminando CVE HIGH/MEDIUM. (#682)
  • Resolución de alias del paquete de iconos: el extractor sigue cadenas de alias de Iconify e incorpora Font Awesome Brands; una prueba fija todos los iconos utilizados en el paquete. (#683)
Aspectos destacados de v1.6.0-rc.12
  • Renovación de dependencias de seguridad: brace-expansion 5.0.9, ip-address 10.3.1 y fast-uri 4.1.2 corrigen sus CVE asociadas. (#659)
  • Reloj de madurez: el distintivo hot/mature resuelve primero updatePolicy.maturityMinAgeDays por contenedor y luego el umbral global, igual que el bloqueo; los fallos de fecha de publicación se registran con warn en vez de debug. (#604)
  • Período de gracia al registrar agentes: los bloqueos transitorios agent-mismatch/no-update-trigger-configured se suavizan en las vistas mientras se registran los componentes; la admisión sigue cerrada. (#605)
  • Registros WS y autenticación anónima: las actualizaciones WebSocket de registros aceptan sesiones cuando la autenticación anónima es el modo registrado. (#636)
  • Respuestas 501 explícitas: las acciones de ciclo de vida en agentes sin transporte Docker del controlador devuelven 501 con la causa en vez de un 404 ambiguo. (#637)
Aspectos destacados de v1.6.0-rc.11
  • Transporte Portwing: las marcas exactas transport=docker-api, execution=controller, events=portwing de Portwing 0.9.0 enrutan comprobaciones nativas, actualizaciones individuales/por lotes, acciones de ciclo de vida, vistas previas y restauraciones mediante Standard HTTP autenticado o Edge. Portwing sigue siendo la fuente de eventos y el inventario sin procesar no puede borrar resultados del controlador. (#632, #637, Portwing #76)
  • Notificaciones: plantillas de cuerpo y título por regla/por proveedor con vista previa en vivo, además de categorías de campana en la aplicación respaldadas por auditorías y umbrales de gravedad de actualización.
  • Panel: reemplazo de cuadrícula CSS sin dependencia con reordenamiento táctil/ratón, cambio de tamaño limitado, diseños responsivos, visibilidad de widgets, restablecimiento y sincronización opcional de preferencias entre dispositivos.
  • Política de actualización: precedencia declarativa de observador/etiqueta/UI, anulación/reversión de seguimiento de auditoría, cuenta regresiva de madurez/anulación manual y visibilidad informativa de etiquetas fijadas con una vista de etiquetas actual → más nueva apilada.
  • Recursos del contenedor: la columna Recursos sigue visible de forma predeterminada, pero puede ocultarse de manera persistente; los accesos a fuente, notas de versión y registro permanecen en el menú Más y en los pies de tarjeta.
  • Rendimiento y recuperación: deduplicación de listas de etiquetas por encuesta, proyecciones agregadas más ligeras, historiales de registros grandes virtualizados, transferencia de registros en vivo inmutable, tiempo de espera de arranque de autenticación, migraciones de preferencias completas y autocuración de fragmentos obsoletos.
  • Se aplicaron migraciones v1.6: los alias de entorno/etiqueta WUD, los formatos de autenticación heredados, los conmutadores de vigilancia obsoletos, los alias de plantilla, Kafka clientId y las configuraciones públicas de Hub/DHI de solo token con formato incorrecto ya no se ejecutan. Los alias de taxonomía de activación permanecen hasta una publicación final de advertencia de nivel de error.

Guía completa de migración en DEPRECATIONS.md.

Aspectos destacados de v1.5.2
  • Política de actualización segura para la recreación: las puertas de madurez, las etiquetas/resúmenes omitidos y las posposiciones ahora sobreviven a la recreación de contenedores para cargas de trabajo de agentes locales y remotos.
  • Confiabilidad de etiquetas fijadas: las etiquetas completamente fijadas detectan reconstrucciones de resúmenes de la misma etiqueta nuevamente, mientras que la interfaz de usuario puede mostrar una etiqueta de la misma familia más nueva y no procesable sin cambiar el comportamiento de actualización o activación.
  • Recuperación de reversión: la creación de reemplazo, la conexión de red o el inicio fallidos ahora limpian el candidato antes de restaurar el contenedor original, y las fallas repetidas no pueden ocurrir en cascada a través de cambios de nombre de reversión anidados.
  • Recreación de contenedores más segura: las direcciones MAC asignadas por Daemon ya no se fijan en los reemplazos, mientras que las direcciones MAC de la red primaria configuradas explícitamente permanecen conservadas.
  • Encuesta de imágenes locales más silenciosa: las imágenes creadas o cargadas localmente sin resumen de registro omiten búsquedas remotas en lugar de generar errores de autorización recurrentes.

Historial completo en CHANGELOG.md.


📸 Capturas de pantalla y demostración en vivo

Drydock detecting and applying a container update

Detecte una actualización, vea exactamente qué cambios y aplíquela. Se manejan copias de seguridad, verificación de estado y reversión.

Luz oscuro
Dashboard Light Dashboard Dark

¿Por qué mirar capturas de pantalla cuando puedes experimentarlo tú mismo?

Try the Live Demo

Totalmente interactivo: interfaz de usuario real, datos simulados, no requiere instalación. Se ejecuta completamente en el navegador.


🤔 Por qué Drydock

Las imágenes de los contenedores quedan obsoletas silenciosamente. Una imagen base parchea un CVE, una aplicación corta una versión, una etiqueta se mueve. A menos que esté observando cada registro manualmente, sus contenedores en ejecución se retrasan hasta que algo se rompe o es explotado.

La mayoría de las herramientas obligan a hacer concesiones. Los actualizadores automáticos (Watchtower, Ouroboros) se activan y reinician con poca visibilidad o control, y ahora prácticamente no reciben mantenimiento. Los paneles (Portainer) administran contenedores pero no están diseñados para inteligencia de actualización. Drydock es monitor primero: observa 23 registros y le dice exactamente qué cambió (mayor, menor, parche o resumen) antes de que suceda algo, luego actúa solo cuando usted lo permite. Y va más allá que cualquiera de ellos. El escaneo de vulnerabilidades Trivy/Grype bloquea actualizaciones no seguras, cosign verifica firmas, las copias de seguridad de imágenes previas a la actualización se revierten automáticamente en caso de falla en la verificación de estado, los agentes distribuidos cubren hosts remotos y 20 integraciones de notificaciones y acciones cierran el ciclo. El ciclo de vida completo de la actualización, con una interfaz de usuario web y una API REST.


✨ Características

CaracterísticaDescripción
🔭Monitorizar primero la detecciónObserva cada contenedor en ejecución y clasifica cada actualización disponible como principal, menor, parche o resumen antes de que suceda algo. Nada cambia hasta que tú lo digas.
📦23 proveedores de registroDocker Hub, GHCR, ECR, ACR, GCR, GAR, GitLab, Quay, Harbour, Artifactory, Nexus y 12 más. Público y privado, en la nube y autohospedado, con autenticación y TLS por registro.
🔔20 activadores17 canales de notificación (Slack, Discord, Telegram, Teams, SMTP, MQTT, ntfy y más) además de acciones de Docker, Docker Compose y Command, con plantillas por evento/proveedor, vista previa en vivo, filtrado de umbral y modo por lotes.
🥊Update BouncerEl escaneo de vulnerabilidades Trivy/Grype bloquea las actualizaciones no seguras antes de que se implementen, con verificación de firma Cosign y generación de SBOM (CycloneDX y SPDX).
↩️Copia de seguridad de imágenes y reversión automáticaInstantáneas de imágenes previas a la actualización con retención configurable, reversión automática en caso de falla en la verificación de estado y reversión manual con un solo clic desde la interfaz de usuario.
🪝Ganchos de ciclo de vidaComandos de shell previos y posteriores a la actualización a través de etiquetas de contenedor, con tiempos de espera por gancho y control de cancelación en caso de falla.
🗂️Actualizaciones Docker ComposeExtraiga y vuelva a crear servicios de Compose a través de la API Docker Engine con parches de imágenes que preservan YAML.
🎛️Política por contenedorLas reglas de etiquetas Regex y el enrutamiento de activación utilizan etiquetas dd.*; Las puertas de madurez, saltar/posponer/fijar y las ventanas de mantenimiento se almacenan a través de UI/API o la configuración del observador.
🛰️Agentes distribuidosSupervise hosts Docker remotos mediante SSE. Los agentes Portwing 0.9.0+ funcionan por Standard HTTP entrante o transporte WebSocket Edge saliente; Drydock 1.6.0-rc.11+ puede ejecutar en el controlador comprobaciones nativas de registros y actualizaciones Docker individuales o por lotes a través de cualquiera de las rutas autenticadas. Edge también transporta registros continuos sin puerto de entrada; DD_EXPERIMENTAL_PORTWING=false sigue siendo la desactivación de emergencia.
🖥️Panel webInterfaz de usuario de Vue 3 con una cuadrícula de widgets personalizable sin dependencia, vistas de tablas/tarjetas responsivas, actualizaciones SSE en vivo, controles de campana de notificación y detalles, registros y estadísticas por contenedor.
🔗API REST y webhooksPuntos finales autenticados por token para activación de actualizaciones y vigilancia de CI/CD, además de ingesta de webhooks de registro firmados para eventos push.
🔐Autenticación OIDCAsegure el tablero con OpenID Connect (Authelia, Auth0, Authentik). De forma predeterminada, todos los flujos de autenticación deniegan el acceso ante cualquier fallo (fail-closed).
📈Métricas PrometheusPunto final /metrics incorporado con omisión de autenticación opcional para pilas de monitoreo Prometheus y Grafana.
🌍17 configuraciones regionales de UISistema de traducción completamente cableado con inglés completo y 16 configuraciones regionales mantenidas por la comunidad sincronizadas a través de Crowdin, conmutables en Config.
🔒Expresión regular inmune a ReDoSCada patrón de etiquetas proporcionado por el usuario se compila a través de re2js (un puerto RE2 JS puro) para una coincidencia de tiempo lineal que no puede detenerse por un patrón de retroceso catastrófico.

🔌 Integraciones admitidas

📦 Registros (23)

Docker Hub · GHCR · ECR · ACR · GCR · GAR · GitLab · Muelle · LSCR · Puerto · Artifactory · Nexus · Gitea · Forgejo · Codeberg · MAU · TrueForge · Personalizado · DOCR · DHI · IBM Cloud · Oracle Cloud · Alibaba Cloud

⚡ Acciones (3)

Docker · Docker Compose · Comando

🔔 Notificaciones (17)

Informar · Discord · Google Chat · Gotify · HTTP · IFTTT · Kafka · Matrix · Mattermost · MQTT · MS Teams · NTFY · Pushover · Rocket.Chat · Slack · SMTP · Telegram

🔐 Autenticación

Anónimo (suscripción a través de DD_ANONYMOUS_AUTH_CONFIRM=true) · Básico (nombre de usuario + hash de contraseña) · OIDC (Authelia, Auth0, Authentik). De forma predeterminada, todos los flujos de autenticación deniegan el acceso ante cualquier fallo (fail-closed).

🥊 Update Bouncer

El escaneo de vulnerabilidades impulsado por Trivy o Grype bloquea las actualizaciones no seguras antes de que se implementen. Incluye verificación de firma Cosign y generación de SBOM (CycloneDX y SPDX).


⚖️ Comparación de funciones

¿Cómo se compara drydock con otras herramientas de actualización de contenedores?

✅ = compatible   ❌ = no compatible   ⚠️ = parcial/limitado   † = archivado, ya no se mantiene

Característica drydock WUD Diun Watchtower † Ouroboros †
Interfaz web / panel
Actualización automática de contenedores
Actualizaciones de Docker Compose⚠️
Canales de activación / notificación201617~19~6
Proveedores de registro2313⚠️⚠️⚠️
Autenticación OIDC / SSO
API REST⚠️⚠️
Métricas de Prometheus
MQTT / Home Assistant
Copia y reversión de imágenes
Agrupación de contenedores / stacks⚠️
Hooks del ciclo de vida (antes/después)
API de webhooks para CI/CD
Iniciar/detener/reiniciar/actualizar contenedores
Agentes distribuidos (remotos)⚠️
Registro de auditoría
Análisis de seguridad (Trivy/Grype)
Actualizaciones compatibles con SemVer
Monitorización de digest
Multi-arquitectura (amd64/arm64)
Visor de registros del contenedor
Mantenimiento activo

Datos basados en documentación disponible públicamente a marzo de 2026. Se aceptan contribuciones si alguna información es inexacta.


🔄 Migración

Migrando desde WUD (¿Qué pasa Docker?)

Drydock v1.6 ya no carga variables de entorno WUD_* o etiquetas wud.* en tiempo de ejecución. Vuelva a escribirlos antes de iniciar el servicio actualizado; El estado persistente aún migra automáticamente. Utilice docker exec -it drydock node dist/index.js config migrate --dry-run para obtener una vista previa y luego docker exec -it drydock node dist/index.js config migrate --file .env --file compose.yaml para reescribir la configuración con los nombres DD_* y dd.*.


🗺️ Hoja de ruta

Temas y aspectos destacados de la versión

Esta dirección cubre al menos los próximos doce meses, hasta agosto de 2027. Solo temas generales; consulte CHANGELOG.md para conocer el detalle de cada versión.

VersiónTemaAspectos destacados
v1.3.xSeguridad y EstabilidadEscaneo Trivy, Update Bouncer, SBOM, 7 nuevos registros, 4 nuevos activadores, motor re2js regex
v1.4.xModernización y refuerzo de la interfaz de usuarioTailwind 4 + componentes personalizados, 6 temas, paleta Cmd/K, OpenAPI 3.1, actualizaciones YAML nativas de redacción, escaneo de doble ranura, refuerzo OIDC
v1.5.0Observabilidad e i18ndivisión de taxonomía de activación (DD_ACTION_*/DD_NOTIFICATION_*), visor de registros WebSocket, personalización del panel, monitoreo de recursos, bandeja de salida de notificaciones + DLQ, resumen de escaneo de seguridad, 17 configuraciones regionales, reproducción de ID del último evento SSE, acceso telefónico al agente perimetral con autenticación Ed25519 (experimental, DD_EXPERIMENTAL_PORTWING=true)
v1.5.1Seguridad y mantenimientoCorrección de autenticación de extracción GCR/GAR, finalización de TLS de registro (M-2), refuerzo de inyección de env-var de gancho, compatibilidad con DD_SESSION_SECRET__FILE, redacción de credenciales de volcado de depuración, verificación de permisos de archivos secretos, corrección de bloqueo de puerta de madurez, traducibilidad completa de la interfaz de usuario + traducciones de la comunidad, puerta de aplicación automática de ventana de mantenimiento, visualización del tiempo de actividad del contenedor, versión de software de superficie dividida de columna Etiqueta/Versión (etiqueta OCI, con escritura dual dd.inspect.tag.path + opción de enrutamiento dd.inspect.tag.version-only), opción de coincidencia de prefijo de montaje de composición, var de plantilla ${currentReleaseNotes}
v1.5.2Política y confiabilidad de etiquetas fijadasRetención de política de madurez/omisión/posposición segura para recreación, detección de reconstrucción de resumen de etiquetas fijadas e información informativa de la misma familia, limpieza de candidatos de reversión, prevención de cascada de reversión, preservación de MAC explícito y comportamiento de omisión de registro de imágenes locales
v1.6.0Notificaciones, políticas y comunicados IntelPlantillas de notificación por regla/por activador con vista previa en vivo, preferencias de campana de notificación, sincronización de preferencias entre dispositivos, cuadrícula de panel personalizado sin dependencia (#281), política de actualización declarativa (#320), cuenta regresiva de estabilización de madurez + visibilidad inmediata del candidato + anulación manual (#406), panel de estado de actualización procesable y global Modo de actualización notify / manual / auto (#325), herencia de políticas de etiquetas de observador/imgset/contenedor más actual apilada → visibilidad de etiquetas fijadas más nuevas (#498), fuente estandarizada de 44 px/notas de la versión/acciones de recursos de registro en tablas, tarjetas y detalles (#295), notificaciones de eventos de estado de salud (#198), Home Assistant MQTT bidireccional, vistas responsivas de tablas/listas de tarjetas, Trivy/Grype/análisis a través de comandos o backends de Docker-worker anclados, controles activos/de extracción de activos del escáner, deduplicación fuera del montón Almacenamiento SBOM, corrección de escaneo largo de Trivy (#490), advertencias de migración de taxonomía de activación, eliminaciones de compatibilidad v1.6, higiene de documentos/API y finalización de migración de /api/api/v1 con una cuña de compatibilidad de página de inicio/tarjeta wud opcional (DD_COMPAT_WUDCARD).
v1.7.0Actualizaciones inteligentes y UXOrdenamiento consciente de la dependencia (#219), actualizaciones masivas selectivas (#232), política de actualización por acción (#511), eliminación de imágenes, monitoreo de imágenes estáticas, indicador de madurez de la imagen, reloj unificado de madurez/antigüedad de actualizaciones, enlaces de puertos en los que se puede hacer clic, atajos de teclado, PWA, eliminación de DD_TRIGGER_* (fin de la ventana de obsolescencia de v1.5.0), curl eliminado de la imagen
v1.8.0Gestión de flotas y configuración en vivoConfiguración YAML, configuración de UI en vivo, navegador de volúmenes, actualizaciones paralelas, migración de la tienda SQLite
v2.0+Expansión de plataforma y más alláVigilantes de enjambre/Kubernetes, GitOps, puertas de estado, implementaciones canary, terminal web, RBAC, claves API giratorias con alcance (tokens de portador estáticos para integraciones de HA/panel, #469), LDAP/AD, proveedor nativo de Podman más allá de la API compatible con Docker, CLI, imagen reforzada de Wolfi, proxy de socket

📖 Documentación

RecursoEnlace
Sitio webobtenerdrydock.com
Demostración en vivodemo.getdrydock.com
Documentosgetdrydock.com/docs
ConfiguraciónConfiguración
Inicio rápidoInicio rápido
Registro de cambiosCHANGELOG.md
DeprecationsDEPRECATIONS.md
Hoja de rutaConsulte la sección Hoja de ruta más arriba
ContribuyendoCONTRIBUTING.md
Código de conductaCODE_OF_CONDUCT.md
GovernanceGOVERNANCE.md
Garantía de seguridadSECURITY-ASSURANCE.md
Política de seguridadSECURITY.md
ProblemasProblemas de GitHub
DiscusionesDiscusiones de GitHub: se aceptan solicitudes de funciones e ideas

Star History Chart

Construido con

TypeScript Vue 3 Express 5 Vitest Biome Node 24 Anthropic OpenAI

SemVer Conventional Commits Keep a Changelog

Comunidad

Preguntas, comentarios y soporte temprano: CodesWhat Discord

Presente errores concretos y solicitudes de funciones en GitHub Issues para que no se pierdan en el chat.

Control de calidad de la comunidad

Gracias a los usuarios que ayudaron a probar las versiones candidatas v1.4.0 y v1.5.0 y reportaron errores:

@RK62 · @flederohr · @rj10rd · @larueli · @Waler · @ElVit · @nchieffo · @begunfx · @Ra72xx

Parte del ecosistema CodesWhat

HerramientaRol
drydockMonitoreo de actualizaciones de contenedores: interfaz de usuario web y motor de notificaciones
portwingAgente Docker remoto: acceso seguro a nivel de socket desde Drydock o de forma independiente
sockguardProxy de socket de Docker: filtro de lista permitida de denegación predeterminada que protege el socket

Estas tres herramientas están diseñadas para capas: sockguard filtra el socket, portwing lo expone de forma remota y drydock monitorea y actúa sobre el estado del contenedor.

Consulte el COMPATIBILITY.md de portwing para obtener la matriz de compatibilidad completa entre las tres herramientas.


Licencia AGPL-3.0

CodesWhat

Sponsor

Volver arriba