Skip to content

Latest commit

 

History

History
511 lines (383 loc) · 68.1 KB

File metadata and controls

511 lines (383 loc) · 68.1 KB

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

drydock

drydock

Observador de atualização de imagem de contêiner — 23 registros, 20 provedores de notificação e ação.

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

Atualizando de uma versão mais antiga? Leia as notas de atualização primeiro. Três correções de reforço de segurança enviadas pela primeira vez em 1.4.6 e executadas em toda a linha 1.5, portanto, qualquer pessoa que atualizar de uma versão anterior a 1.4.6 será afetada, independentemente da versão em que chegar (1.4.6, qualquer 1.5.x ou posterior). Eles não são obsoletos e não têm período de carência: o OIDC agora requer authorization_endpoint nos metadados de descoberta do seu provedor, chaves de limitação de taxa não autenticadas no endereço de peer TCP (depósito compartilhado atrás de um proxy reverso) e URLs de proxy de acionamento HTTP devem usar http(s)://. Consulte UPGRADE-NOTES.md antes de atualizar.

Warning

Atualizando para 1.6.0-rc.3 ou posterior? Mais reforços de segurança entram em vigor sem período de carência. Uma instância sem autenticação configurada, ou com autenticação anônima ativada mas não confirmada, agora falha de forma fechada após a atualização, assim como uma instalação nova: o contêiner continua em execução, solicitações protegidas da API retornam 401, as rotas públicas de descoberta e status de autenticação permanecem disponíveis e /health retorna 503. A interface SPA pode carregar, mas não lê dados protegidos. Defina DD_ANONYMOUS_AUTH_CONFIRM=true ou configure DD_AUTH_BASIC_*/OIDC antes de atualizar. O cookie da sessão muda de connect.sid para drydock.sid, desconectando todos os usuários uma vez. Gatilhos HTTP, o webhook Hass e buscas de ícones de registro agora usam DNS protegido, bloqueiam destinos de metadados de nuvem e link-local e nunca seguem redirecionamentos. Use allowmetadata=true somente no gatilho DD_NOTIFICATION_HTTP_* específico que realmente precisar. Consulte DEPRECATIONS.md para a orientação completa.

📑 Conteúdo


🚀 Início rápido

Recomendado: use um proxy de soquete para restringir quais endpoints da API Docker que Drydock podem acessar. Isso evita dar ao contêiner acesso total ao soquete 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 soquete

sockguard é um filtro de soquete Docker de negação padrão do mesmo ecossistema CodesWhat, com uma predefinição criada 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 a predefinição sockguard de app/configs/portwing.yaml para um sockguard.yaml inicial (a mesma predefinição portwing vem em seus próprios exemplos).

Alternativa: início rápido com montagem direta em soquete
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

Aviso: O acesso direto ao soquete concede ao contêiner controle total sobre o daemon do Docker. Use a configuração do proxy de soquete acima para implantações de produção. Consulte o Guia de segurança do soquete Docker para todas as opções, incluindo TLS remoto e Docker sem raiz.

Gere um hash de senha (argon2 CLI — instale através do seu gerenciador de pacotes):

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

Ou com Node.js 24.7+ (sem necessidade de pacotes extras):

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 aceita apenas hashes de autenticação básicos argon2id. {SHA} legado, $apr1$/$1$, crypt e hashes de texto simples são rejeitados; regenere-os antes de atualizar. A autenticação é exigida por padrão. Consulte o auth docs para OIDC, acesso anônimo e outras opções. O acesso anônimo deve ser confirmado explicitamente com DD_ANONYMOUS_AUTH_CONFIRM=true em instalações novas e atualizadas. Sem essa confirmação, uma instância sem autenticação configurada ou com autenticação anônima não confirmada inicia fechada: solicitações protegidas da API retornam 401, as rotas públicas de descoberta e status de autenticação continuam disponíveis e /health retorna 503.

A imagem inclui binários trivy e cosign para verificação de vulnerabilidade local e verificação de imagem.

Consulte o Guia de início rápido para Docker Compose, segurança de soquete, proxy reverso e registros alternativos.


🆕 Atualizações recentes

Destaques da v1.7.0-rc.1
  • Atualizações com reconhecimento de dependências — rótulos ou metadados do Compose criam um grafo de dependências validado, mostram as ondas exatas na prévia e executam atualizações ou reinicializações de dependentes em ordem determinística, com tratamento seguro de ciclos, falhas e prévias obsoletas. (Discussão #219)
  • Experiência do operador — PWA instalável, links clicáveis para portas nomeadas, tempo de atividade dos contêineres em tempo real, atalhos de teclado e detecção com intervalo para novos contêineres.
  • Migração incompatível de acionadoresDD_TRIGGER_* agora impede a inicialização, e os rótulos antigos dd.trigger.include / dd.trigger.exclude não encaminham mais tarefas; use DD_ACTION_*, DD_NOTIFICATION_* e seus rótulos com escopo.
  • Reforço de segurança e ciclo de vida — autenticação, solicitações de agentes, logs, WebSockets e solicitações a registros têm limites explícitos; valores sensíveis de comandos e hooks são ocultados; a descoberta do Home Assistant sincroniza novamente após a inicialização e encerra o trabalho dos provedores sem publicações obsoletas. (#708)
  • Histórico de estrelas próprio — o provedor de mesma origem /api/star-history serve gráficos permitidos de Drydock, Sockguard e Portwing sem depender de um rastreador de terceiros.

Notas completas em CHANGELOG.md.

Destaques da v1.6.0
  • O transporte Edge/agente do Portwing amadurece com verificações e atualizações nativas do Docker controladas pelo controlador para Portwing 0.9.0+, logs Edge contínuos, assinatura Ed25519 v2 e nomes de exibição vinculados à chave do agente. (#632, #637)
  • Política declarativa de atualização com estabilização de maturidade: precedência dd.updatePolicy.* em três níveis, contagem regressiva e notificação maturity-cleared. (Discussão #307, Discussão #406)
  • Modelos por regra, preferências do sino e evento container-unhealthy, além de MQTT bidirecional do Home Assistant, cujo botão Instalar aciona uma atualização real. (Discussão #205, Discussão #198)
  • Todas as principais listas são responsivas com uma DataTable compartilhada e alternância persistente entre tabela e cartões. (#498)
  • Paridade /api/v1 concluída: /api/* e WS /api/log/stream foram removidos (410 Gone), com o shim opcional DD_COMPAT_WUDCARD. (Discussão #469)
  • Reforço de segurança: acesso anônimo fecha em atualizações, gatilhos HTTP são protegidos contra SSRF, WebSocket valida a origem completa e o cookie passa a drydock.sid.

Notas completas em CHANGELOG.md.

Destaques da v1.6.0-rc.13
  • Comparação de digests usa candidatos do mesmo repositório: getOrderedRepoDigests filtra RepoDigests e corrige âncoras antigas automaticamente. (#670)
  • nanoid fixado em 3.3.18 em todos os workspaces para CVE-2026-67213 e CVE-2026-67214. (#673)
  • Star History auto-hospedado na rota de mesma origem /api/star-history, com cache e SVG reserva. (#672)
  • Imagens-base atualizadas: node:24-alpine usa Node 24.19.0 e a etapa aquasec/trivy usa 0.73.0. (#682)
  • Resolução de aliases de ícones com verificação completa do pacote. (#683)
Destaques da v1.6.0-rc.12
  • Dependências de segurança atualizadas: brace-expansion 5.0.9, ip-address 10.3.1 e fast-uri 4.1.2. (#659)
  • Relógio de maturidade compartilha updatePolicy.maturityMinAgeDays entre exibição e bloqueio, e falhas de data passam de debug para warn. (#604)
  • Período de graça no registro de agentes suaviza agent-mismatch e no-update-trigger-configured na interface, mantendo a admissão fechada. (#605)
  • Logs WebSocket e acesso anônimo funcionam juntos quando esse modo está registrado. (#636)
  • Respostas 501 explícitas descrevem a falta do transporte Docker do controlador. (#637)
Destaques da v1.6.0-rc.11
  • Transporte Portwing: os marcadores transport=docker-api, execution=controller, events=portwing ativam Standard HTTP ou Edge autenticado para verificações, atualizações, ações de ciclo de vida, prévias e restaurações controladas pelo controlador. O Portwing continua sendo a fonte de eventos de ciclo de vida, e o inventário bruto não pode apagar resultados de atualização enriquecidos pelo controlador. (#632, #637, Portwing #76)
  • Notificações — Título e modelos de corpo por regra/por provedor com visualização ao vivo, além de categorias de sino no aplicativo apoiadas por auditoria e limites de gravidade de atualização.
  • Painel — Substituição de grade CSS de dependência zero com reordenação de mouse/toque, redimensionamento limitado, layouts responsivos, visibilidade de widget, redefinição e sincronização opcional de preferências entre dispositivos.
  • Política de atualização — Precedência declarativa do observador/rótulo/UI, trilha de auditoria de substituição/reversão, contagem regressiva de maturidade/substituição manual e visibilidade informativa de tag fixada com uma visualização de tag atual → mais recente empilhada.
  • Recursos do contêiner — A coluna Recursos continua visível por padrão, mas pode ser ocultada de forma persistente; os links de origem, notas da versão e registro permanecem no menu Mais e nos rodapés dos cartões.
  • Desempenho e recuperação — Desduplicação de lista de tags por enquete, projeções agregadas mais leves, grandes históricos de log virtualizados, rollover imutável de log ao vivo, tempo limite de inicialização de autenticação, migrações completas de preferências e autocorreção de pedaços obsoletos.
  • Migrações v1.6 aplicadas — Aliases de ambiente/rótulo WUD, formatos de autenticação herdados, switches de inspetor obsoletos, aliases de modelo, Kafka clientId e configurações públicas de Hub/DHI somente de token malformadas não são mais executadas. Os aliases da taxonomia do gatilho permanecem para uma versão final do aviso de nível de erro.

Orientação completa sobre migração em DEPRECATIONS.md.

Destaques da v1.5.2
  • Política de atualização segura para recreação — Portões de maturidade, tags/resumos ignorados e adiamentos agora sobrevivem à recriação de contêineres para cargas de trabalho de agentes locais e remotos.
  • Confiabilidade da tag fixada — Tags totalmente fixadas detectam recriações de resumo da mesma tag novamente, enquanto a IU pode mostrar uma tag da mesma família mais recente e não acionável sem alterar a atualização ou o comportamento do acionador.
  • Recuperação de reversão — Falha na criação de substituição, conexão de rede ou inicialização agora limpa o candidato antes de restaurar o contêiner original, e falhas repetidas não podem ser propagadas por meio de renomeações de reversão aninhadas.
  • Recriação de contêineres mais segura — Os endereços MAC atribuídos ao daemon não são mais fixados em substitutos, enquanto os endereços MAC da rede primária configurados explicitamente permanecem preservados.
  • Pesquisa de imagem local mais silenciosa — Imagens criadas ou carregadas localmente sem resumo do registro ignoram pesquisas remotas em vez de gerar erros de autorização recorrentes.

Histórico completo em CHANGELOG.md.


📸 Capturas de tela e demonstração ao vivo

Drydock detecting and applying a container update

Identifique uma atualização, veja exatamente o que muda e aplique-a. Backup, verificação de integridade e reversão tratados.

Luz Escuro
Dashboard Light Dashboard Dark

Por que olhar as capturas de tela quando você mesmo pode experimentar?

Try the Live Demo

Totalmente interativo – UI real, dados simulados, sem necessidade de instalação. Funciona inteiramente no navegador.


🤔 Por que Drydock

As imagens dos contêineres ficam desatualizadas silenciosamente. Uma imagem base corrige um CVE, um aplicativo corta uma versão, uma tag se move. A menos que você observe cada registro manualmente, seus contêineres em execução ficarão para trás até que algo quebre ou seja explorado.

A maioria das ferramentas força uma compensação. Os atualizadores automáticos (Watchtower, Ouroboros) puxam e reiniciam com pouca visibilidade ou controle e agora não recebem manutenção. Os painéis (Portainer) gerenciam contêineres, mas não foram criados para inteligência de atualização. Drydock é monitorar primeiro: ele monitora 23 registros e informa exatamente o que mudou (principal, secundário, patch ou resumo) antes que algo aconteça, e então age apenas quando você permite. E vai além de qualquer um deles. A verificação de vulnerabilidades Trivy/Grype bloqueia atualizações inseguras, o Cosign verifica assinaturas, os backups de imagem pré-atualização são revertidos automaticamente em caso de falha na verificação de integridade, os agentes distribuídos cobrem hosts remotos e 20 integrações de notificação e ação fecham o ciclo. O ciclo de vida completo da atualização, com uma UI web e uma API REST.


✨ Recursos

Recurso Descrição
🔭 Detecção que prioriza o monitoramento Observa cada contêiner em execução e classifica cada atualização disponível como principal, secundária, patch ou resumo antes que algo aconteça. Nada muda até que você diga.
📦 23 provedores de registro Docker Hub, GHCR, ECR, ACR, GCR, GAR, GitLab, Quay, Harbor, Artifactory, Nexus e mais 12. Público e privado, em nuvem e auto-hospedado, com TLS e autenticação por registro.
🔔 20 gatilhos 17 canais de notificação (Slack, Discord, Telegram, Teams, SMTP, MQTT, ntfy e mais) além de Docker, Docker Compose e ações de comando, com modelos por evento/provedor, visualização ao vivo, filtragem de limite e modo em lote.
🥊 Update Bouncer A verificação de vulnerabilidades Trivy/Grype bloqueia atualizações inseguras antes de serem implantadas, com verificação da assinatura Cosign e geração de SBOM (CycloneDX e SPDX).
↩️ Backup de imagem e reversão automática Instantâneos de imagem pré-atualizados com retenção configurável, reversão automática em caso de falha na verificação de integridade e reversão manual com um clique na interface do usuário.
🪝 Ganchos de ciclo de vida Comandos shell pré e pós-atualização por meio de rótulos de contêiner, com tempos limite por gancho e controle de aborto em caso de falha.
🗂️ Atualizações Docker Compose Extraia e recrie serviços do Compose por meio da API Docker Engine com patch de imagem com preservação de YAML.
🎛️ Política por contêiner As regras de tag Regex e o roteamento de gatilho usam rótulos dd.*; portas de maturidade, pular/adiar/fixar e janelas de manutenção são armazenadas via UI/API ou configuração do inspetor.
🛰️ Agentes distribuídos Monitore hosts Docker remotos por SSE. Agentes Portwing 0.9.0+ usam Standard HTTP de entrada ou transporte WebSocket Edge de saída; o Drydock 1.6.0-rc.11+ executa no controlador verificações nativas de registro e atualizações Docker individuais ou em lote por qualquer caminho autenticado. O Edge também transporta logs contínuos sem porta de entrada; DD_EXPERIMENTAL_PORTWING=false continua sendo a desativação de emergência.
🖥️ Painel Web UI Vue 3 com uma grade de widget personalizável de dependência zero, visualizações responsivas de tabela/cartão, atualizações SSE ao vivo, controles de sino de notificação e detalhes, registros e estatísticas por contêiner.
🔗 API REST e webhooks Endpoints autenticados por token para monitoramento de CI/CD e gatilhos de atualização, além de ingestão de webhook de registro assinado para eventos push.
🔐 Autenticação OIDC Proteja o painel com OpenID Connect (Authelia, Auth0, Authentik). Por padrão, qualquer falha no fluxo de autenticação nega o acesso (fail-closed).
📈 Métricas Prometheus Endpoint /metrics integrado com bypass de autenticação opcional para pilhas de monitoramento Prometheus e Grafana.
🌍 17 localidades da IU Sistema de tradução totalmente conectado com inglês completo e 16 localidades mantidas pela comunidade sincronizadas por meio de Crowdin, alternáveis ​​no Config.
🔒 ReDoS-Imune Regex Cada padrão de tag fornecido pelo usuário é compilado via re2js (uma porta RE2 JS pura) para correspondência de tempo linear que não pode ser interrompida por um padrão de retrocesso catastrófico.

🔌 Integrações suportadas

📦 Registros (23)

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

⚡ Ações (3)

Docker · Docker Compose · Comando

🔔 Notificações (17)

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

🔐 Autenticação

Anônimo (opt-in via DD_ANONYMOUS_AUTH_CONFIRM=true) · Básico (nome de usuário + hash de senha) · OIDC (Authelia, Auth0, Authentik). Por padrão, qualquer falha no fluxo de autenticação nega o acesso (fail-closed).

🥊 Update Bouncer

A verificação de vulnerabilidades com tecnologia Trivy ou Grype bloqueia atualizações inseguras antes de serem implantadas. Inclui verificação da assinatura Cosign e geração de SBOM (CycloneDX e SPDX).


⚖️ Comparação de recursos

Como o drydock se compara a outras ferramentas de atualização de contêiner?

✅ = suportado   ❌ = não suportado   ⚠️ = parcial/limitado † = arquivado, não é mais mantido

Recurso drydock WUD Diun Watchtower † Ouroboros †
Interface web / painel
Atualização automática de contêineres
Atualizações do Docker Compose⚠️
Canais de gatilho / notificação201617~19~6
Provedores de registro2313⚠️⚠️⚠️
Autenticação OIDC / SSO
API REST⚠️⚠️
Métricas do Prometheus
MQTT / Home Assistant
Backup e reversão de imagens
Agrupamento de contêineres / stacks⚠️
Hooks de ciclo de vida (pré/pós)
API de webhook para CI/CD
Iniciar/parar/reiniciar/atualizar contêineres
Agentes distribuídos (remotos)⚠️
Log de auditoria
Verificação de segurança (Trivy/Grype)
Atualizações compatíveis com SemVer
Monitoramento de digest
Multi-arquitetura (amd64/arm64)
Visualizador de logs
Mantido ativamente

Dados baseados em documentação publicamente disponível em março de 2026. Contribuições são bem-vindas se alguma informação for imprecisa.


🔄 Migração

Migrando do WUD (E aí, Docker?)

Drydock v1.6 não carrega mais variáveis ​​de ambiente WUD_* ou rótulos wud.* em tempo de execução. Reescreva-os antes de iniciar o serviço atualizado; o estado persistido ainda migra automaticamente. Use docker exec -it drydock node dist/index.js config migrate --dry-run para visualizar e, em seguida, docker exec -it drydock node dist/index.js config migrate --file .env --file compose.yaml para reescrever a configuração para a nomenclatura DD_* e dd.*.


🗺️ Roadmap

Temas e destaques da versão

Esta direção cobre pelo menos os próximos doze meses, até agosto de 2027. Apenas temas gerais; consulte CHANGELOG.md para detalhes de cada versão.

Versão Tema Destaques
v1.3.x Segurança e Estabilidade Varredura Trivy, Update Bouncer, SBOM, 7 novos registros, 4 novos gatilhos, mecanismo regex re2js
v1.4.x Modernização e fortalecimento da UI Tailwind 4 + componentes personalizados, 6 temas, paleta Cmd/K, OpenAPI 3.1, atualizações YAML nativas de composição, digitalização de slot duplo, proteção OIDC
v1.5.0 Observabilidade e i18n acionar divisão de taxonomia (DD_ACTION_*/DD_NOTIFICATION_*), visualizador de log WebSocket, personalização de painel, monitoramento de recursos, caixa de saída de notificação + DLQ, resumo de verificação de segurança, 17 localidades, repetição de ID de último evento SSE, discagem de agente de borda com autenticação Ed25519 (experimental, DD_EXPERIMENTAL_PORTWING=true)
v1.5.1 Segurança e Manutenção Correção pull-auth GCR/GAR, conclusão de TLS de registro (M-2), endurecimento de injeção env-var de gancho, suporte DD_SESSION_SECRET__FILE, redação de credencial de despejo de depuração, verificação de permissão de arquivo secreto, correção de deadlock de portão de maturidade, capacidade de tradução completa da UI + traduções da comunidade, portão de aplicação automática da janela de manutenção, exibição de tempo de atividade do contêiner, versão do software de superfície dividida de coluna Tag/Versão (rótulo OCI, com dd.inspect.tag.path gravação dupla + roteamento dd.inspect.tag.version-only opcional), correspondência de prefixo de montagem de composição opcional, modelo ${currentReleaseNotes} var
v1.5.2 Confiabilidade de políticas e tags fixadas Retenção de política de maturidade/pular/suspender segura para recreação, detecção de reconstrução de resumo de tag fixada e insights informativos da mesma família, limpeza de candidato a reversão, prevenção de cascata de reversão, preservação de MAC explícito e comportamento de salto de registro de imagem local
v1.6.0 Notificações, Política e Liberação Intel Modelos de notificação por regra/por acionador com visualização ao vivo, preferências de sino de notificação, sincronização de preferências entre dispositivos, grade de painel personalizada de dependência zero (#281), política de atualização declarativa (#320), contagem regressiva de estabilização de maturidade + visibilidade imediata do candidato + substituição manual (#406), painel de status de atualização acionável e global Modo de atualização notify / manual / auto (#325), herança de política de tag de observador/imgset/container mais corrente empilhada → visibilidade de tag fixada mais recente (#498), fonte padronizada de 44px / notas de lançamento / ações de recurso de registro em tabela, cartões e detalhes (#295), notificações de eventos de status de integridade (#198), Home Assistant MQTT bidirecional, visualizações responsivas de tabela/lista de cartões, Trivy/Grype/ambas verificações em back-ends de comando ou de Docker-worker fixados, controles de extração/aquecimento de ativos do scanner, desduplicação off-heap Armazenamento SBOM, correção de varredura longa Trivy (#490), avisos de migração de taxonomia de gatilho, remoções de compatibilidade v1.6, higiene de documentos/API e conclusão de migração /api/api/v1 com um shim de compatibilidade wud-card/página inicial opcional (DD_COMPAT_WUDCARD).
v1.7.0 Atualizações inteligentes e UX Ordenação com reconhecimento de dependência (#219), atualizações seletivas em massa (#232), política de atualização por ação (#511), remoção de imagem, monitoramento de imagem estática, indicador de maturidade de imagem, relógio unificado de maturidade/idade de atualização, links de porta clicáveis, atalhos de teclado, PWA, remoção de DD_TRIGGER_* (fim da janela de descontinuação da v1.5.0), curl removido da imagem
v1.8.0 Gerenciamento de frota e configuração ao vivo Configuração YAML, configuração de UI ao vivo, navegador de volume, atualizações paralelas, migração de armazenamento SQLite
v2.0+ Expansão da plataforma e muito mais Observadores Swarm/Kubernetes, GitOps, portas de saúde, implementações canary, terminal web, RBAC, chaves de API rotativas com escopo (tokens de portador estático para integrações HA/painel, #469), LDAP/AD, provedor Podman nativo além da API compatível com Docker, CLI, imagem reforçada Wolfi, proxy de soquete

📖 Documentação

Recurso Ligação
Site getdrydock.com
Demonstração ao vivo demo.getdrydock.com
Documentos getdrydock.com/docs
Configuração Configuração
Início rápido Início rápido
Registro de alterações CHANGELOG.md
Deprecations DEPRECATIONS.md
Roadmap Consulte a seção Roteiro acima
Contribuindo CONTRIBUTING.md
Código de Conduta CODE_OF_CONDUCT.md
Governança GOVERNANCE.md
Garantia de Segurança SECURITY-ASSURANCE.md
Política de Segurança SECURITY.md
Problemas Problemas do GitHub
Discussões Discussões no GitHub - solicitações de recursos e ideias são bem-vindas


Construído com

TypeScript Vue 3 Express 5 Vitest Biome Node 24 Anthropic OpenAI

SemVer Conventional Commits Keep a Changelog

Comunidade

Perguntas, comentários e suporte antecipado: CodesWhat Discord

Por favor, registre bugs concretos e solicitações de recursos em GitHub Issues para que eles não se percam no bate-papo.

Controle de qualidade da comunidade

Obrigado aos usuários que ajudaram a testar os release candidate v1.4.0 e v1.5.0 e relataram bugs:

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

Parte do ecossistema CodesWhat

FerramentaFunção
drydockMonitoramento de atualização de contêiner — UI da web e mecanismo de notificação
portwingAgente Docker remoto – acesso seguro em nível de soquete de Drydock ou independente
sockguardProxy de soquete Docker – filtro de lista de permissões de negação padrão que protege o soquete

Essas três ferramentas são projetadas para serem colocadas em camadas: sockguard filtra o soquete, portwing o expõe remotamente e drydock monitora e atua no estado do contêiner.

Consulte o COMPATIBILITY.md do portwing para obter a matriz de compatibilidade completa entre todas as três ferramentas.


Licença AGPL-3.0

CodesWhat

Sponsor

Voltar ao topo