README.fr.md
August 15, 2026 · View on GitHub
English · Español · Polski · 简体中文 · Deutsch · Français · Português (Brasil)
drydock
Observateur de mise à jour d'image de conteneur : 23 registres, 20 fournisseurs de notifications et d'actions.
Warning
Vous effectuez une mise à jour à partir d'une ancienne version ? Lisez d'abord les notes de mise à niveau. Trois correctifs de renforcement de la sécurité ont été livrés pour la première fois dans 1.4.6 et sont exécutés sur toute la ligne 1.5, de sorte que toute mise à jour à partir d'une version antérieure à 1.4.6 est affectée quelle que soit la version sur laquelle elle atterrit (1.4.6, toute version 1.5.x ou ultérieure). Ce ne sont pas des dépréciations et n'ont pas de période de grâce : OIDC nécessite désormais authorization_endpoint dans les métadonnées de découverte de votre fournisseur, des clés de limitation de débit non authentifiées sur l'adresse homologue TCP (compartiment partagé derrière un proxy inverse) et les URL de proxy déclencheur HTTP doivent utiliser http(s)://. Voir UPGRADE-NOTES.md avant la mise à jour.
Warning
Mise à niveau vers 1.6.0-rc.3 ou une version ultérieure ? Des renforcements de sécurité supplémentaires s'appliquent sans délai de grâce. Une instance sans authentification configurée, ou avec l'accès anonyme activé mais non confirmé, échoue désormais en mode fermé lors d'une mise à niveau comme lors d'une nouvelle installation : le conteneur fonctionne, les requêtes API protégées renvoient 401, les routes publiques de découverte et d'état d'authentification restent disponibles et /health renvoie 503. L'interface SPA peut se charger, mais ne peut pas lire les données protégées. Définissez DD_ANONYMOUS_AUTH_CONFIRM=true ou configurez DD_AUTH_BASIC_*/OIDC avant la mise à niveau. Le cookie de session passe de connect.sid à drydock.sid, ce qui déconnecte une fois tous les utilisateurs. Les déclencheurs HTTP, le webhook Hass et les téléchargements d'icônes de registre utilisent désormais une résolution DNS protégée qui bloque les cibles de métadonnées cloud et link-local et ne suit jamais les redirections. Réservez allowmetadata=true à un déclencheur DD_NOTIFICATION_HTTP_* qui en a réellement besoin. Consultez DEPRECATIONS.md pour la procédure complète.
📑 Contenu
- 📖Documentation
- 🚀 Démarrage rapide
- 🆕 Mises à jour récentes
- 📸 Captures d'écran et démo en direct
- 🤔 Pourquoi Drydock
- ✨ Caractéristiques
- 🔌 Intégrations prises en charge
- ⚖️ Comparaison des fonctionnalités
- 🔄Migration
- 🗺️ Feuille de route
- ⭐ Historique des étoiles
- 🔧 Construit avec
- 🤝 Communauté QA
🚀 Démarrage rapide
Recommandé : utilisez un proxy de socket pour restreindre les points de terminaison de l'API Docker auxquels Drydock peut accéder. Cela évite de donner au conteneur un accès complet au 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
Alternative : sockguard proxy de socket
sockguard est un filtre de socket Docker à refus par défaut du même écosystème CodesWhat, avec un préréglage conçu pour 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
Voir le préréglage app/configs/portwing.yaml de sockguard pour un sockguard.yaml de départ (le même préréglage portwing est livré dans ses propres exemples).
Alternative : démarrage rapide avec montage direct sur prise
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
Avertissement : L'accès direct au socket accorde au conteneur un contrôle total sur le démon Docker. Utilisez la configuration du proxy de socket ci-dessus pour les déploiements de production. Consultez le Docker Socket Security guide pour toutes les options, y compris TLS distant et Docker sans racine.
Générez un hachage de mot de passe (
argon2CLI — installation via votre gestionnaire de packages) :echo -n "yourpassword" | argon2 $(openssl rand -base64 32) -id -m 16 -t 3 -p 4 -l 64 -eOu avec Node.js 24.7+ (aucun package supplémentaire nécessaire) :
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 accepte uniquement les hachages d'authentification de base argon2id. Les anciens hachages
{SHA},$apr1$/$1$,cryptet en texte brut sont rejetés ; régénérez-les avant la mise à niveau. L'authentification est requise par défaut. Consultez le auth docs pour OIDC, accès anonyme et autres options. L'accès anonyme doit être explicitement confirmé avecDD_ANONYMOUS_AUTH_CONFIRM=truesur les installations nouvelles comme mises à niveau. Sans cette confirmation, une instance sans authentification configurée, ou avec une authentification anonyme non confirmée, démarre en mode fermé : les requêtes API protégées renvoient401, les routes publiques de découverte et d'état de l'authentification restent disponibles, et/healthrenvoie503.
L'image comprend les binaires trivy et cosign pour l'analyse des vulnérabilités locales et la vérification des images.
Consultez le Guide de démarrage rapide pour Docker Compose, la sécurité des sockets, le proxy inverse et les registres alternatifs.
🆕 Mises à jour récentes
Points forts de la v1.7.0-rc.1
- Mises à jour tenant compte des dépendances : les labels ou métadonnées Compose construisent un graphe de dépendances validé, prévisualisent les vagues exactes et exécutent les mises à jour ou redémarrages des dépendants dans un ordre déterministe, avec gestion sûre des cycles, échecs et aperçus périmés. (Discussion #219)
- Expérience opérateur : PWA installable, liens de ports nommés cliquables, durée d'exécution des conteneurs en direct, raccourcis clavier et détection temporisée des nouveaux conteneurs.
- Migration incompatible des déclencheurs :
DD_TRIGGER_*bloque désormais le démarrage et les anciens labelsdd.trigger.include/dd.trigger.excluden'acheminent plus de tâches ; utilisezDD_ACTION_*,DD_NOTIFICATION_*et leurs labels à portée dédiée. - Renforcement de la sécurité et du cycle de vie : l'authentification, les requêtes d'agents, les journaux, les WebSockets et les requêtes de registres sont explicitement bornés ; les valeurs sensibles de commandes et hooks sont masquées ; la découverte Home Assistant se resynchronise après le démarrage et retire les tâches des fournisseurs sans publication périmée. (#708)
- Historique des étoiles propriétaire : le fournisseur même origine
/api/star-historysert les graphiques Drydock, Sockguard et Portwing autorisés sans dépendre d'un service tiers.
Notes complètes dans CHANGELOG.md.
Points forts de la v1.6.0
- Le transport Edge/agent Portwing arrive à maturité avec les vérifications et mises à jour Docker natives pilotées par le contrôleur pour Portwing 0.9.0+, les journaux Edge continus, la signature Ed25519 v2 et les noms d'affichage liés à la clé de l'agent. (#632, #637)
- Politique de mise à jour déclarative avec stabilisation de maturité : priorité
dd.updatePolicy.*à trois niveaux, compte à rebours et notificationmaturity-cleared. (Discussion #307, Discussion #406) - Modèles par règle, préférences de cloche et événement
container-unhealthy, avec MQTT Home Assistant bidirectionnel dont le bouton Installer déclenche une véritable mise à jour. (Discussion #205, Discussion #198) - Toutes les vues de liste principales sont adaptatives grâce à une
DataTablepartagée et un basculement table/carte persistant. (#498) - Parité
/api/v1terminée : suppression de/api/*etWS /api/log/stream(410 Gone), avec le shim facultatifDD_COMPAT_WUDCARD. (Discussion #469) - Sécurité renforcée : accès anonyme fermé lors des mises à niveau, protection SSRF des déclencheurs HTTP, contrôle d'origine WebSocket complet et cookie
drydock.sid.
Notes complètes dans CHANGELOG.md.
Points forts de la v1.6.0-rc.13
- Comparaison des digests par dépôts correspondants :
getOrderedRepoDigestsfiltre lesRepoDigestset répare automatiquement les ancres obsolètes. (#670) nanoidfixé à 3.3.18 dans tous les espaces de travail pour CVE-2026-67213 et CVE-2026-67214. (#673)- Star History auto-hébergé via la route même origine
/api/star-history, mise en cache avec SVG de secours. (#672) - Mise à jour des images de base :
node:24-alpinepasse à Node 24.19.0 et l'étapeaquasec/trivyà 0.73.0. (#682) - Résolution des alias d'icônes et contrôle exhaustif du bundle. (#683)
Points forts de la v1.6.0-rc.12
- Dépendances de sécurité actualisées :
brace-expansion5.0.9,ip-address10.3.1 etfast-uri4.1.2. (#659) - Horloge de maturité cohérente : l'affichage et le blocage utilisent
updatePolicy.maturityMinAgeDays, et les erreurs de date passent dedebugàwarn. (#604) - Grâce d'enregistrement des agents pour les blocages transitoires
agent-mismatchetno-update-trigger-configured, tout en conservant une admission fermée. (#605) - Journaux WebSocket et accès anonyme compatibles lorsque ce mode est enregistré. (#636)
- Réponses 501 explicites pour les actions sans transport Docker du contrôleur. (#637)
Points forts de la v1.6.0-rc.11
- Transport Portwing : les marqueurs
transport=docker-api,execution=controller,events=portwingactivent Standard HTTP ou Edge authentifié pour les vérifications, mises à jour, actions de cycle de vie, aperçus et restaurations pilotés par le contrôleur. Portwing reste la source des événements de cycle de vie, et l'inventaire brut ne peut pas effacer les résultats de mise à jour enrichis par le contrôleur. (#632, #637, Portwing #76) - Notifications — Modèles de titre et de corps par règle/par fournisseur avec aperçu en direct, ainsi que des catégories de cloches dans l'application basées sur un audit et des seuils de gravité de mise à jour.
- Tableau de bord — Remplacement de la grille CSS sans dépendance avec réorganisation souris/tactile, redimensionnement limité, mises en page réactives, visibilité des widgets, réinitialisation et synchronisation facultative des préférences entre appareils.
- Politique de mise à jour — Priorité déclarative de l'observateur/étiquette/interface utilisateur, remplacement/annulation de la piste d'audit, compte à rebours de maturité/remplacement manuel et visibilité des informations sur les balises épinglées avec une vue empilée des balises actuelles → plus récentes.
- Ressources du conteneur — La colonne Ressources reste visible par défaut, mais peut être masquée durablement ; les liens vers la source, les notes de version et le registre restent disponibles dans le menu Plus et les pieds de carte.
- Performances et récupération — Déduplication de liste de balises par interrogation, projections globales plus légères, historiques de journaux virtualisés volumineux, basculement de journaux en direct immuable, délai d'expiration de l'authentification, migrations complètes des préférences et auto-réparation des fragments obsolètes.
- Migrations v1.6 appliquées — Les alias d'environnement/label WUD, les formats d'authentification hérités, les commutateurs d'observateur obsolètes, les alias de modèle, Kafka
clientIdet les configurations publiques Hub/DHI malformées réservées aux jetons uniquement ne s'exécutent plus. Les alias de taxonomie de déclencheur restent conservés pour une dernière version d'avertissement de niveau d'erreur.
Conseils de migration complets dans DEPRECATIONS.md.
Points forts de la v1.5.2
- Politique de mise à jour sécurisée pour les loisirs — Les portes de maturité, les balises/récapitulatifs ignorés et les répétitions survivent désormais à la récréation des conteneurs pour les charges de travail des agents locaux et distants.
- Fiabilité des balises épinglées — Les balises entièrement épinglées détectent à nouveau les reconstructions de résumé de même balise, tandis que l'interface utilisateur peut afficher une balise de même famille plus récente et non exploitable sans modifier le comportement de mise à jour ou de déclenchement.
- Récupération par restauration — L'échec de la création d'un remplacement, de l'attachement au réseau ou du démarrage nettoie désormais le candidat avant de restaurer le conteneur d'origine, et les échecs répétés ne peuvent pas se répercuter sur les renommages de restauration imbriqués.
- Recréation de conteneurs plus sûre — Les adresses MAC attribuées par le démon ne sont plus épinglées sur les remplacements, tandis que les adresses MAC du réseau principal explicitement configurées restent préservées.
- Interrogation d'images locales plus silencieuse — Les images créées ou chargées localement sans résumé de registre ignorent les recherches à distance au lieu de générer des erreurs d'autorisation récurrentes.
Historique complet dans CHANGELOG.md.
📸 Captures d'écran et démo en direct
Repérez une mise à jour, voyez exactement quels changements, appliquez-la. Sauvegarde, vérification de l'état et restauration gérées.
| Lumière | Sombre |
![]() |
![]() |
Pourquoi regarder des captures d'écran quand vous pouvez en faire l'expérience vous-même ?
Entièrement interactif : véritable interface utilisateur, données fictives, aucune installation requise. Fonctionne entièrement dans le navigateur.
🤔 Pourquoi Drydock
Les images de conteneurs deviennent obsolètes en silence. Une image de base corrige un CVE, une application supprime une version, une balise se déplace. À moins que vous ne surveilliez chaque registre à la main, vos conteneurs en cours d'exécution prennent du retard jusqu'à ce que quelque chose se brise ou soit exploité.
La plupart des outils imposent un compromis. Les mises à jour automatiques (Watchtower, Ouroboros) s'exécutent et redémarrent avec peu de visibilité ou de contrôle, et ne sont désormais en grande partie pas entretenues. Les tableaux de bord (Portainer) gèrent les conteneurs mais ne sont pas conçus pour l'intelligence des mises à jour. Drydock est surveillant d'abord : il surveille 23 registres et vous indique exactement ce qui a changé (majeur, mineur, correctif ou résumé) avant que quoi que ce soit ne se produise, puis n'agit que lorsque vous l'autorisez. Et cela va plus loin que n’importe lequel d’entre eux. L'analyse des vulnérabilités Trivy/Grype bloque les mises à jour dangereuses, Cosign vérifie les signatures, les sauvegardes d'images préalables à la mise à jour sont automatiquement annulées en cas d'échec du contrôle de santé, les agents distribués couvrent les hôtes distants et 20 intégrations de notifications et d'actions bouclent la boucle. Le cycle de vie complet des mises à jour, avec une interface utilisateur Web et une API REST.
✨ Caractéristiques
| Fonctionnalité | Descriptif | |
|---|---|---|
| 🔭 | Détection sur le moniteur en premier | Surveille chaque conteneur en cours d'exécution et classe chaque mise à jour disponible comme majeure, mineure, correctif ou résumé avant que quoi que ce soit ne se produise. Rien ne change jusqu'à ce que vous le disiez. |
| 📦 | 23 fournisseurs de registre | Docker Hub, GHCR, ECR, ACR, GCR, GAR, GitLab, Quay, Harbor, Artifactory, Nexus et 12 autres. Public et privé, cloud et auto-hébergé, avec TLS et authentification par registre. |
| 🔔 | 20 déclencheurs | 17 canaux de notification (Slack, Discord, Telegram, Teams, SMTP, MQTT, ntfy et plus) ainsi que des actions Docker, Docker Compose et Command, avec des modèles par événement/fournisseur, un aperçu en direct, un filtrage de seuil et un mode batch. |
| 🥊 | Update Bouncer | L'analyse des vulnérabilités Trivy/Grype bloque les mises à jour dangereuses avant leur déploiement, avec vérification de la signature Cosign et génération SBOM (CycloneDX et SPDX). |
| ↩️ | Sauvegarde d'image et restauration automatique | Pré-mettez à jour les instantanés d'image avec conservation configurable, restauration automatique en cas d'échec du contrôle de santé et restauration manuelle en un clic depuis l'interface utilisateur. |
| 🪝 | Crochets de cycle de vie | Commandes shell avant et après la mise à jour via des étiquettes de conteneur, avec délais d'attente par hook et contrôle d'abandon en cas d'échec. |
| 🗂️ | Mises à jour Docker Compose | Extrayez et recréez les services Compose via l'API Docker Engine avec des correctifs d'image préservant YAML. |
| 🎛️ | Politique par conteneur | Les règles de balise Regex et le routage des déclencheurs utilisent les étiquettes dd.* ; les portes de maturité, les sauts/répétitions/épingles et les fenêtres de maintenance sont stockés via l'interface utilisateur/API ou la configuration de l'observateur. |
| 🛰️ | Agents distribués | Surveillez les hôtes Docker distants via SSE. Les agents Portwing 0.9.0+ utilisent Standard HTTP entrant ou le transport WebSocket Edge sortant ; Drydock 1.6.0-rc.11+ exécute côté contrôleur les vérifications natives de registre et les mises à jour Docker individuelles ou groupées par l'un ou l'autre chemin authentifié. Edge transporte aussi les journaux continus sans port entrant ; DD_EXPERIMENTAL_PORTWING=false reste l'arrêt d'urgence. |
| 🖥️ | Tableau de bord Web | Interface utilisateur Vue 3 avec une grille de widgets personnalisable sans dépendance, des vues de table/carte réactives, des mises à jour SSE en direct, des contrôles de cloche de notification et des détails, journaux et statistiques par conteneur. |
| 🔗 | API REST et webhooks | Points de terminaison authentifiés par jeton pour les déclencheurs de surveillance et de mise à jour CI/CD, ainsi que l'ingestion de webhooks de registre signés pour les événements push. |
| 🔐 | Authentification OIDC | Sécurisez le tableau de bord avec OpenID Connect (Authelia, Auth0, Authentik). Par défaut, tous les flux d’authentification refusent l’accès en cas d’échec (fail-closed). |
| 📈 | Métriques Prometheus | Point de terminaison /metrics intégré avec contournement d'authentification en option pour les piles de surveillance Prometheus et Grafana. |
| 🌍 | 17 paramètres régionaux de l'interface utilisateur | Système de traduction entièrement câblé avec anglais complet et 16 paramètres régionaux gérés par la communauté synchronisés via Crowdin, commutables dans Config. |
| 🔒 | Regex immunitaire ReDoS | Chaque modèle de balise fourni par l'utilisateur est compilé via re2js (un port pur JS RE2) pour une correspondance temporelle linéaire qui ne peut pas être bloquée par un modèle de retour en arrière catastrophique. |
🔌 Supported Integrations
📦 Registres (23)
Docker Hub · GHCR · ECR · ACR · GCR · GAR · GitLab · Quay · LSCR · Port · Artefact · Nexus · Gitea · Forgejo · Codeberg · MAU · TrueForge · Personnalisé · DOCR · DHI · IBM Cloud · Oracle Cloud · Alibaba Cloud
⚡Actions (3)
Docker · Docker Compose · Commande
🔔Notifications (17)
Apprise · Discord · Google Chat · Gotify · HTTP · IFTTT · Kafka · Matrix · Mattermost · MQTT · MS Teams · NTFY · Pushover · Rocket.Chat · Slack · SMTP · Telegram
🔐 Authentification
Anonyme (inscription via DD_ANONYMOUS_AUTH_CONFIRM=true) · Basique (nom d'utilisateur + hachage du mot de passe) · OIDC (Authelia, Auth0, Authentik). Par défaut, tous les flux d’authentification refusent l’accès en cas d’échec (fail-closed).
🥊 Update Bouncer
L'analyse des vulnérabilités basée sur Trivy ou Grype bloque les mises à jour dangereuses avant leur déploiement. Comprend la vérification de la signature Cosign et la génération SBOM (CycloneDX et SPDX).
⚖️ Comparaison des fonctionnalités
Comment drydock se compare-t-il aux autres outils de mise à jour de conteneurs ?
✅ = pris en charge ❌ = non pris en charge ⚠️ = partiel / limité † = archivé, n'est plus conservé
| Fonctionnalité | drydock | WUD | Diun | Watchtower † | Ouroboros † |
|---|---|---|---|---|---|
| Interface web / tableau de bord | ✅ | ✅ | ❌ | ❌ | ❌ |
| Mise à jour automatique des conteneurs | ✅ | ✅ | ❌ | ✅ | ✅ |
| Mises à jour Docker Compose | ✅ | ✅ | ❌ | ⚠️ | ❌ |
| Canaux de déclenchement / notification | 20 | 16 | 17 | ~19 | ~6 |
| Fournisseurs de registres | 23 | 13 | ⚠️ | ⚠️ | ⚠️ |
| Authentification OIDC / SSO | ✅ | ✅ | ❌ | ❌ | ❌ |
| API REST | ✅ | ✅ | ⚠️ | ⚠️ | ❌ |
| Métriques Prometheus | ✅ | ✅ | ❌ | ✅ | ✅ |
| MQTT / Home Assistant | ✅ | ✅ | ✅ | ❌ | ❌ |
| Sauvegarde et restauration d'images | ✅ | ❌ | ❌ | ❌ | ❌ |
| Regroupement de conteneurs / piles | ✅ | ✅ | ❌ | ⚠️ | ❌ |
| Hooks de cycle de vie (avant/après) | ✅ | ❌ | ❌ | ✅ | ❌ |
| API webhook pour CI/CD | ✅ | ❌ | ❌ | ✅ | ❌ |
| Démarrer/arrêter/redémarrer/mettre à jour | ✅ | ❌ | ❌ | ❌ | ❌ |
| Agents distribués (distants) | ✅ | ❌ | ✅ | ⚠️ | ❌ |
| Journal d'audit | ✅ | ❌ | ❌ | ❌ | ❌ |
| Analyse de sécurité (Trivy/Grype) | ✅ | ❌ | ❌ | ❌ | ❌ |
| Mises à jour compatibles SemVer | ✅ | ✅ | ✅ | ❌ | ❌ |
| Surveillance des digests | ✅ | ✅ | ✅ | ✅ | ✅ |
| Multiarchitecture (amd64/arm64) | ✅ | ✅ | ✅ | ✅ | ✅ |
| Visionneuse de journaux de conteneur | ✅ | ❌ | ❌ | ❌ | ❌ |
| Maintenance active | ✅ | ✅ | ✅ | ❌ | ❌ |
Données basées sur une documentation accessible au public en mars 2026. Les contributions sont les bienvenues si des informations sont inexactes.
🔄 Migration
Migration depuis WUD (What's Up Docker ?)
Drydock v1.6 ne charge plus les variables d'environnement WUD_* ou les étiquettes wud.* au moment de l'exécution. Réécrivez-les avant de démarrer le service mis à niveau ; l'état persistant migre toujours automatiquement. Utilisez docker exec -it drydock node dist/index.js config migrate --dry-run pour prévisualiser, puis docker exec -it drydock node dist/index.js config migrate --file .env --file compose.yaml pour réécrire la configuration en dénomination DD_* et dd.*.
🗺️ Feuille de route
Thèmes et faits saillants de la version
Cette orientation couvre au moins les douze prochains mois, jusqu'en août 2027. Thèmes généraux uniquement ; consultez CHANGELOG.md pour les détails de chaque version.
| Version | Thème | Faits saillants |
|---|---|---|
| v1.3.x ✅ | Sécurité et stabilité | Analyse Trivy, Update Bouncer, SBOM, 7 nouveaux registres, 4 nouveaux déclencheurs, moteur regex re2js |
| v1.4.x ✅ | Modernisation et renforcement de l'interface utilisateur | Tailwind 4 + composants personnalisés, 6 thèmes, palette Cmd/K, OpenAPI 3.1, mises à jour YAML natives, analyse à double emplacement, renforcement OIDC |
| v1.5.0 ✅ | Observabilité & i18n | répartition de la taxonomie de déclenchement (DD_ACTION_*/DD_NOTIFICATION_*), visionneuse de journaux WebSocket, personnalisation du tableau de bord, surveillance des ressources, boîte d'envoi de notification + DLQ, résumé d'analyse de sécurité, 17 paramètres régionaux, relecture de l'ID du dernier événement SSE, appel sortant de l'agent Edge avec authentification Ed25519 (expérimental, DD_EXPERIMENTAL_PORTWING=true) |
| v1.5.1 ✅ | Sécurité et maintenance | Correction d'authentification par extraction GCR/GAR, achèvement du registre TLS (M-2), renforcement par injection d'environnement de crochet, prise en charge de DD_SESSION_SECRET__FILE, suppression des informations d'identification de débogage, vérification des autorisations de fichiers secrets, correction de l'impasse de la porte de maturité, traductibilité complète de l'interface utilisateur + traductions communautaires, porte d'application automatique de la fenêtre de maintenance, affichage de la disponibilité du conteneur, version du logiciel de surfaçage de colonne Tag/Version (étiquette OCI, avec double écriture dd.inspect.tag.path + routage dd.inspect.tag.version-only opt-in), correspondance de préfixe de montage de composition opt-in, modèle ${currentReleaseNotes} var |
| v1.5.2 ✅ | Politique et fiabilité des balises épinglées | Rétention des politiques de maturité/saut/répétition sécurisées pour les loisirs, détection de reconstruction de résumé de balises épinglées et informations informationnelles sur la même famille, nettoyage des candidats à l'annulation, prévention des cascades d'annulation, préservation MAC explicite et comportement de saut de registre d'images locales |
| v1.6.0 | Notifications, politiques et versions Intel | Modèles de notification par règle/par déclencheur avec aperçu en direct, préférences de cloche de notification, synchronisation des préférences entre appareils, grille de tableau de bord personnalisée sans dépendance (#281), politique de mise à jour déclarative (#320), compte à rebours de stabilisation de la maturité + visibilité immédiate des candidats + remplacement manuel (#406), panneau d'état de mise à jour exploitable et global Mode de mise à jour notify / manual / auto (#325), héritage de stratégie de balise observateur/imgset/conteneur plus courant empilé → visibilité de balise épinglée plus récente (#498), source 44px standardisée/notes de version/actions de ressources de registre dans la table, les cartes et les détails (#295), notifications d'événements d'état de santé (#198), Home Assistant bidirectionnel MQTT, vues de table/liste de cartes réactives, Trivy/Grype/les deux analyses via des commandes ou des backends Docker-worker épinglés, contrôles d'extraction/chauffage des ressources du scanner, SBOM dédupliqué hors tas stockage, exactitude de l'analyse longue Trivy (#490), avertissements de migration de taxonomie de déclenchement, suppressions de compatibilité v1.6, hygiène des documents/API et achèvement de la migration /api → /api/v1 avec une cale de compatibilité opt-in wud-card/page d'accueil (DD_COMPAT_WUDCARD). |
| v1.7.0 | Mises à jour intelligentes et UX | Ordre tenant compte des dépendances (#219), mises à jour sélectives en masse (#232), politique de mise à jour par action (#511), élagage d'image, surveillance d'image statique, indicateur de maturité d'image, horloge unifiée de maturité/âge des mises à jour, liens de port cliquables, raccourcis clavier, PWA, suppression de DD_TRIGGER_* (fin de la fenêtre de dépréciation de la v1.5.0), curl supprimé de l'image |
| v1.8.0 | Gestion de flotte et configuration en direct | Configuration YAML, configuration de l'interface utilisateur en direct, navigateur de volumes, mises à jour parallèles, migration du magasin SQLite |
| v2.0+ | Extension de la plateforme et au-delà | Observateurs Swarm/Kubernetes, GitOps, barrières de santé, déploiements Canary, terminal Web, RBAC, clés API rotatives étendues (jetons de support statiques pour les intégrations HA/tableau de bord, #469), LDAP/AD, fournisseur Podman natif au-delà de l'API compatible Docker, CLI, image renforcée Wolfi, proxy de socket |
📖Documentations
| Ressource | Lien |
|---|---|
| Site Web | getdrydock.com |
| Démo en direct | demo.getdrydock.com |
| Documents | getdrydock.com/docs |
| Configuration | Configuration |
| Démarrage rapide | Démarrage rapide |
| Journal des modifications | CHANGELOG.md |
| Dépréciations | DEPRECATIONS.md |
| Feuille de route | Voir la section Roadmap ci-dessus |
| Contribuer | CONTRIBUTING.md |
| Code de conduite | CODE_OF_CONDUCT.md |
| Gouvernance | GOVERNANCE.md |
| Assurance de sécurité | SECURITY-ASSURANCE.md |
| Politique de sécurité | SECURITY.md |
| Problèmes | Problèmes GitHub |
| Discussions | GitHub Discussions — demandes de fonctionnalités et idées bienvenues |
Construit avec
Communauté
Questions, commentaires et assistance précoce : CodesWhat Discord
Veuillez déposer des bogues concrets et des demandes de fonctionnalités dans GitHub Issues afin qu'ils ne se perdent pas dans le chat.
Contrôle qualité de la communauté
Merci aux utilisateurs qui ont aidé à tester les versions candidates v1.4.0 et v1.5.0 et qui ont signalé des bugs :
@RK62 · @flederohr · @rj10rd · @larueli · @Waler · @ElVit · @nchieffo · @begunfx · @Ra72xx
Fait partie de l'écosystème CodesWhat
| Outil | Rôle |
|---|---|
| drydock | Surveillance des mises à jour des conteneurs : interface utilisateur Web et moteur de notification |
| portwing | Agent Docker distant : accès sécurisé au niveau du socket à partir de Drydock ou autonome |
| sockguard | Docker socket proxy - filtre de liste blanche de refus par défaut protégeant le socket |
Ces trois outils sont conçus pour superposer : sockguard filtre le socket, portwing l'expose à distance et drydock surveille et agit sur l'état du conteneur.
Voir le COMPATIBILITY.md de portwing pour connaître la matrice de compatibilité complète des trois outils.

