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

drydock

drydock

**Container-Image-Update-Watcher – 23 Register, 21 Benachrichtigungs- und Aktionsanbieter.**

Release Multi-arch License
CI OpenSSF Scorecard OpenSSF Best Practices Maintainability Mutation testing Coverage
Docker Hub pulls Stars Mentioned in Awesome Docker Crowdin localization Sponsor


> [!WARNING] > **v1.8.0-rc.1 ist ein freiwilliger Testbuild.** Drydock vor dem Test stoppen und das gesamte Store-Verzeichnis sichern. Beim ersten Start werden JSON-Daten in SQLite importiert. Für ein Downgrade muss die Sicherung vor dem Upgrade wiederhergestellt werden; Änderungen nur in SQLite werden nicht zurückübertragen. Siehe [Migration und veraltete Funktionen](DEPRECATIONS.md). > [!WARNING] > **Aktualisierung von einer älteren Version? Lesen Sie zuerst die Upgrade-Hinweise.** Drei Korrekturen zur Sicherheitsverstärkung wurden erstmals in **1.4.6** ausgeliefert und durchlaufen die gesamte **1.5**-Reihe, sodass jeder, der von einer Version älter als 1.4.6 aktualisiert, davon betroffen ist, unabhängig davon, auf welcher Version er landet (1.4.6, jede 1.5.x oder höher). Sie sind keine veralteten Versionen und haben keine Kulanzfrist: OIDC erfordert jetzt `authorization_endpoint` in den Erkennungsmetadaten Ihres Anbieters, nicht authentifizierte ratenbegrenzende Schlüssel auf der TCP-Peer-Adresse (gemeinsamer Bucket hinter einem Reverse-Proxy) und HTTP-Trigger-Proxy-URLs müssen `http(s)://` verwenden. Lesen Sie vor der Aktualisierung **[UPGRADE-NOTES.md](UPGRADE-NOTES.md)**. > [!WARNING] > **Aktualisierung auf 1.6.0-rc.3 oder neuer?** Weitere Sicherheitsverschärfungen gelten ohne Übergangsfrist. Eine Instanz ohne konfigurierte Authentifizierung oder mit aktivierter, aber unbestätigter anonymer Authentifizierung schlägt beim Upgrade jetzt genauso geschlossen fehl wie eine Neuinstallation: Der Container läuft, geschützte API-Anfragen geben `401` zurück, öffentliche Routen für Authentifizierungserkennung und -status bleiben erreichbar und `/health` gibt `503` zurück. Die SPA-Shell kann weiterhin laden, aber keine geschützten Anwendungsdaten lesen. Setzen Sie vor dem Upgrade `DD_ANONYMOUS_AUTH_CONFIRM=true` oder konfigurieren Sie `DD_AUTH_BASIC_*`/OIDC. Das Sitzungscookie wird von `connect.sid` in `drydock.sid` umbenannt, wodurch alle bestehenden Benutzer einmalig abgemeldet werden. HTTP-Benachrichtigungstrigger sowie der Hass-Webhook und Registry-Icon-Abrufe lösen Hostnamen jetzt über eine geschützte DNS-Suche auf, die Cloud-Metadaten- und Link-Local-Ziele blockiert und Weiterleitungen nie folgt. Setzen Sie `allowmetadata=true` nur für einen bestimmten `DD_NOTIFICATION_HTTP_*`-Trigger, wenn dies wirklich erforderlich ist. Vollständige Migrationshinweise finden Sie in **[DEPRECATIONS.md](DEPRECATIONS.md#enforced-security-changes-no-deprecation-window)**.

Inhalt

- [Dokumentation](#documentation) - [Schnellstart](#quick-start) - [Screenshots & Live-Demo](#screenshots) - [Warum Drydock](#why-drydock) - [Eigenschaften](#features) - [Unterstützte Integrationen](#supported-integrations) - [Funktionsvergleich](#feature-comparison) - [Migration](#migration) - [Roadmap](#roadmap) - [Sterngeschichte](#star-history) - [Gebaut mit](#built-with) - [Gemeinschaft & Support](#community-support) - [CodesWhat-Ökosystem](#codeswhat-ecosystem)

Dokumentation

| Ressource | Link | | --------------------- | --------------------------------------------------------------------------------------------------------------- | | Website | [getdrydock.com](https://getdrydock.com/) | | Live-Demo | [demo.getdrydock.com](https://demo.getdrydock.com) | | Dokumente | [getdrydock.com/docs](https://getdrydock.com/docs) | | Konfiguration | [Konfiguration](https://getdrydock.com/docs/configuration) | | Schnellstart | [Schnellstart](https://getdrydock.com/docs/quickstart) | | Änderungsprotokoll | [`CHANGELOG.md`](CHANGELOG.md) | | Deprecations | [`DEPRECATIONS.md`](DEPRECATIONS.md) | | Roadmap | Siehe den Abschnitt [„Roadmap“](#roadmap) unten | | Mitwirken | [`CONTRIBUTING.md`](CONTRIBUTING.md) | | Code of Conduct | [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) | | Governance | [`GOVERNANCE.md`](GOVERNANCE.md) | | Sicherheitsnachweis | [`SECURITY-ASSURANCE.md`](SECURITY-ASSURANCE.md) | | Sicherheitsrichtlinie | [`SECURITY.md`](SECURITY.md) | | Probleme | [GitHub Issues](https://github.com/CodesWhat/drydock/issues) | | Diskussionen | [GitHub Discussions](https://github.com/CodesWhat/drydock/discussions) – Funktionsanfragen und Ideen willkommen |

Schnellstart

**Empfohlen: Verwenden Sie einen Socket-Proxy**, um einzuschränken, auf welche Docker-API-Endpunkte Drydock zugreifen kann. Dadurch wird vermieden, dass der Container vollen Zugriff auf den Docker-Socket erhält. > **Hinweis:** Compose behandelt `$` als Variableninterpolationssyntax, sodass ein argon2id-Hash mit einfachem `$` beschädigt bei Drydock ankommt. Verdoppeln Sie beim Einfügen des echten Hashes jedes `$` zu `$$`, zum Beispiel `$$argon2id$$v=19$$m=65536,t=3,p=4$$salt$$hash`. ```yaml services: drydock: image: codeswhat/drydock depends_on: socket-proxy: condition: service_healthy volumes: - drydock-store:/store environment: - DD_WATCHER_LOCAL_HOST=socket-proxy - DD_WATCHER_LOCAL_PORT=2375 - DD_AUTH_BASIC_ADMIN_USER=admin - "DD_AUTH_BASIC_ADMIN_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 volumes: drydock-store: ```
Alternativ: sockguard Socket-Proxy [sockguard](https://github.com/CodesWhat/sockguard) ist ein standardmäßig verweigernder Docker-Socket-Filter aus demselben CodesWhat-Ökosystem mit einer für drydock erstellten Voreinstellung: > **Hinweis:** Compose behandelt `$` als Variableninterpolationssyntax, sodass ein argon2id-Hash mit einfachem `$` beschädigt bei Drydock ankommt. Verdoppeln Sie beim Einfügen des echten Hashes jedes `$` zu `$$`, zum Beispiel `$$argon2id$$v=19$$m=65536,t=3,p=4$$salt$$hash`. ```yaml services: drydock: image: codeswhat/drydock depends_on: sockguard: condition: service_healthy volumes: - drydock-store:/store environment: - DD_WATCHER_LOCAL_HOST=sockguard - DD_WATCHER_LOCAL_PORT=2375 - DD_AUTH_BASIC_ADMIN_USER=admin - "DD_AUTH_BASIC_ADMIN_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 volumes: drydock-store: ``` Siehe sockguards [`app/configs/portwing.yaml`](https://github.com/CodesWhat/sockguard/blob/dev/v1.5/app/configs/portwing.yaml)-Voreinstellung für einen Start-`sockguard.yaml` (die gleiche Voreinstellung portwing wird in eigenen Beispielen geliefert).
Alternative: Schnellstart mit direkter Steckdosenmontage ```bash docker run -d \ --name drydock \ -p 3000:3000 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v drydock-store:/store \ -e DD_AUTH_BASIC_ADMIN_USER=admin \ -e 'DD_AUTH_BASIC_ADMIN_HASH=' \ codeswhat/drydock:latest ``` > **Warnung:** Der direkte Socket-Zugriff gewährt dem Container die volle Kontrolle über den Docker-Daemon. Verwenden Sie das oben beschriebene Socket-Proxy-Setup für Produktionsbereitstellungen. Im [Docker Socket Security Guide](https://getdrydock.com/docs/configuration/watchers#docker-socket-security) finden Sie alle Optionen, einschließlich Remote-TLS und rootless Docker. > > Verwenden Sie einfache Anführungszeichen um den Hash-Wert, wie gezeigt. Doppelte Anführungszeichen lassen die Shell weiterhin `$` expandieren, bevor docker es überhaupt sieht, wodurch ein echter argon2id-Hash verstümmelt wird.
> Generieren Sie einen Passwort-Hash (`argon2` CLI – Installation über Ihren Paketmanager): > > ```bash > echo -n "yourpassword" | argon2 $(openssl rand -base64 32) -id -m 16 -t 3 -p 4 -l 64 -e > ``` > > Oder mit Node.js 24.7+ (keine zusätzlichen Pakete erforderlich): > > ```bash > 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 akzeptiert nur argon2id Basic-Authentifizierungs-Hashes. Ältere `{SHA}`-, `$apr1$`/`$1$`-, `crypt`- und Klartext-Hashes werden abgelehnt; Regenerieren Sie sie vor dem Upgrade. > Authentifizierung ist **standardmäßig erforderlich**. Informationen zu OIDC, anonymem Zugriff und anderen Optionen finden Sie in den [auth docs](https://getdrydock.com/docs/configuration/authentications). > Anonymer Zugriff muss bei neuen und aktualisierten Instanzen gleichermaßen ausdrücklich mit `DD_ANONYMOUS_AUTH_CONFIRM=true` bestätigt werden. Ohne diese Bestätigung startet eine Instanz ohne konfigurierte Authentifizierung oder mit unbestätigter anonymer Authentifizierung geschlossen: Geschützte API-Anfragen geben `401` zurück, öffentliche Routen für Authentifizierungserkennung und -status bleiben verfügbar und `/health` gibt `503` zurück. Das Image enthält die Binärdateien `trivy` und `cosign` für die lokale Suche nach Schwachstellen und die Image-Verifizierung. Weitere Informationen zu Docker Compose, Socket-Sicherheit, Reverse-Proxy und alternativen Registrierungen finden Sie im [Quick Start Guide](https://getdrydock.com/docs/quickstart). Versionshinweise zu jedem Release stehen in [`CHANGELOG.md`](CHANGELOG.md) und auf der Seite [GitHub Releases](https://github.com/CodesWhat/drydock/releases).

Screenshots und Live-Demo

Drydock detecting and applying a container update

Erkennen Sie ein Update, sehen Sie genau, welche Änderungen sich ergeben, und wenden Sie es an. Sicherung, Gesundheitsprüfung und Rollback werden durchgeführt.

Licht Dunkel
Dashboard Light Dashboard Dark
**Warum Screenshots anschauen, wenn Sie es selbst erleben können?** Try the Live Demo Vollständig interaktiv – echte Benutzeroberfläche, Scheindaten, keine Installation erforderlich. Läuft vollständig im Browser.

Warum Drydock

Containerbilder veralten stillschweigend. Ein Basisimage patcht ein CVE, eine App schneidet eine Version, ein Tag wird verschoben. Sofern Sie nicht jede Registrierung manuell überwachen, bleiben Ihre laufenden Container zurück, bis etwas kaputt geht oder ausgenutzt wird. Die meisten Tools erzwingen einen Kompromiss. Die Auto-Updater (Watchtower, Ouroboros) ziehen und starten mit wenig Sichtbarkeit oder Kontrolle neu und werden jetzt weitgehend nicht mehr gewartet. Die Dashboards (Portainer) verwalten Container, sind jedoch nicht für Update-Intelligenz konzipiert. Drydock ist **monitor-first**: Es überwacht 23 Register und teilt Ihnen genau mit, was sich geändert hat (Major, Minor, Patch oder Digest), bevor etwas passiert, und reagiert dann nur, wenn Sie es zulassen. Und es geht weiter als alle anderen. Trivy/Grype Schwachstellenscans blockieren unsichere Updates, Cosign überprüft Signaturen, Image-Backups vor dem Update werden automatisch zurückgesetzt, wenn die Integritätsprüfung fehlschlägt, verteilte Agents decken Remote-Hosts ab und 21 Benachrichtigungs- und Aktionsintegrationen schließen den Kreis. Der vollständige Update-Lebenszyklus mit einer Web-Benutzeroberfläche und einer REST-API.

Funktionen

| | Funktion | Beschreibung | | --- | ---------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | 🔭 | **Monitor-First-Erkennung** | Überwacht jeden laufenden Container und klassifiziert jedes verfügbare Update als Haupt-, Neben-, Patch- oder Digest-Update, bevor etwas passiert. Es ändert sich nichts, bis Sie es sagen. | | 📦 | **23 Registrierungsanbieter** | Docker Hub, GHCR, ECR, ACR, GCR, GAR, GitLab, Quay, Harbour, Artifactory, Nexus und 12 weitere. Öffentlich und privat, in der Cloud und selbst gehostet, mit TLS und Authentifizierung pro Registrierung. | | 🔔 | **21 Auslöser** | 17 Benachrichtigungskanäle (Slack, Discord, Telegram, Teams, SMTP, MQTT, ntfy und mehr) plus Docker-, Docker Compose-, Portainer- und Command-Aktionen, mit Vorlagen pro Ereignis/Anbieter, Live-Vorschau, Schwellenwertfilterung und Batch-Modus. | | 🥊 | **Update Bouncer** | Der Schwachstellenscan Trivy/Grype blockiert unsichere Updates vor der Bereitstellung, mit Cosign-Signaturüberprüfung und SBOM-Generierung (CycloneDX und SPDX). | | ↩️ | **Image-Sicherung und automatisches Rollback** | Image-Snapshots vor dem Update mit konfigurierbarer Aufbewahrung, automatischem Rollback bei fehlgeschlagener Integritätsprüfung und manuellem Rollback mit einem Klick über die Benutzeroberfläche. | | 🪝 | **Lebenszyklus-Hooks** | Shell-Befehle vor und nach dem Update über Container-Labels, mit Zeitüberschreitungen pro Hook und Steuerung des Abbruchs bei Fehler. | | 🗂️ | **Docker Compose-Updates** | Ziehen Sie Compose-Dienste über die Docker Engine-API mit YAML-erhaltendem Image-Patching ab und erstellen Sie sie neu. | | 🎛️ | **Richtlinie pro Container** | Regex-Tag-Regeln und Trigger-Routing verwenden `dd.*`-Labels; Reifegrenzen, Skip/Snooze/Pin und Wartungsfenster werden über die Benutzeroberfläche/API oder die Watcher-Konfiguration gespeichert. | | 🛰️ | **Verteilte Agenten** | Überwachen Sie Remote-Docker-Hosts über SSE. Portwing 0.9.0+-Agents arbeiten über eingehendes Standard HTTP oder ausgehenden Edge-WebSocket-Transport; Drydock 1.6.0-rc.11+ kann native Registry-Prüfungen und einzelne oder gebündelte Docker-Updates über beide authentifizierten Pfade controllerseitig ausführen. Edge überträgt außerdem fortlaufende Live-Protokolle ohne eingehenden Port; `DD_EXPERIMENTAL_PORTWING=false` bleibt die Notabschaltung. | | 🖥️ | **Web-Dashboard** | Vue 3-Benutzeroberfläche mit einem anpassbaren Widget-Raster ohne Abhängigkeiten, reaktionsfähigen Tabellen-/Kartenansichten, Live-SSE-Updates, Steuerelementen für Benachrichtigungsglocken sowie Details, Protokollen und Statistiken pro Container. | | 🔗 | **REST-API und Webhooks** | Token-authentifizierte Endpunkte für CI/CD-Überwachungs- und Update-Trigger sowie signierte Registrierungs-Webhook-Aufnahme für Push-Ereignisse. | | 🔐 | **OIDC-Authentifizierung** | Sichern Sie das Dashboard mit OpenID Connect (Authelia, Auth0, Authentik). Alle Authentifizierungsabläufe verweigern bei einem Fehler standardmäßig den Zugriff (Fail-Closed). | | 📈 | **Prometheus-Metriken** | Integrierter `/metrics`-Endpunkt mit optionaler Authentifizierungsumgehung für die Überwachungsstacks Prometheus und Grafana. | | 🌍 | **17 UI-Gebietsschemas** | Vollständig verkabeltes Übersetzungssystem mit vollständigem Englisch und 16 von der Community gepflegten Gebietsschemas, synchronisiert über Crowdin, umschaltbar in Config. | | 🔒 | **ReDoS-Immune Regex** | Jedes vom Benutzer bereitgestellte Tag-Muster wird über re2js (einen reinen JS-RE2-Port) für einen linearen Zeitabgleich kompiliert, der nicht durch ein katastrophales Backtracking-Muster blockiert werden kann. |

Unterstützte Integrationen

### Register (23) Docker Hub · GHCR · ECR · ACR · GCR · GAR · GitLab · Quay · LSCR · Harbor · Artifactory · Nexus · Gitea · Forgejo · Codeberg · MAU · TrueForge · Custom · DOCR · DHI · IBM Cloud · Oracle Cloud · Alibaba Cloud ### Aktionen (4) Docker · Docker Compose · Portainer · Command ### Benachrichtigungen (17) Apprise · Discord · Google Chat · Gotify · HTTP · IFTTT · Kafka · Matrix · Mattermost · MQTT · MS Teams · NTFY · Pushover · Rocket.Chat · Slack · SMTP · Telegram ### Authentifizierung Anonym (Opt-in über `DD_ANONYMOUS_AUTH_CONFIRM=true`) · Basic (Benutzername + Passwort-Hash) · OIDC (Authelia, Auth0, Authentik). Alle Authentifizierungsabläufe verweigern bei einem Fehler standardmäßig den Zugriff (Fail-Closed). ### Update Bouncer Trivy- oder Grype-gestützte Schwachstellenscans blockieren unsichere Updates, bevor sie bereitgestellt werden. Beinhaltet Cosign-Signaturüberprüfung und SBOM-Generierung (CycloneDX & SPDX).

Funktionsvergleich

Wie schneidet drydock im Vergleich zu anderen Container-Update-Tools ab? > ✅ = unterstützt   ❌ = nicht unterstützt   ⚠️ = teilweise / begrenzt   ? = nicht bestätigt   † = archiviert, nicht mehr gepflegt

Update-Manager

Funktion drydock WUD Diun Watchtower †
Aktiv gepflegt✅✅✅❌
Weboberfläche / Dashboard✅✅❌❌
Automatische Container-Updates✅✅❌✅
Docker-Compose-Updates✅✅❌⚠️
SemVer-fähige Updates✅✅⚠️❌
Digest-Überwachung✅✅✅✅
Update-Schwellenfilter (Major/Minor/Patch/Digest)✅✅❌❌
Abhängigkeitsbewusste Update-Reihenfolge⚠️❌❌❌
Warteschlange für ausstehende Freigaben✅❌❌❌
Image-Sicherung und Rollback✅❌❌❌
Lifecycle-Hooks (vor/nach)✅❌❌✅
Schwachstellen-Scans✅❌❌❌
Audit-Protokoll✅❌❌❌
RBAC / Mehrbenutzerrollen❌❌❌❌
OIDC-/SSO-Authentifizierung✅✅❌❌
Trigger-/Benachrichtigungskanäle211717~20
MQTT / Home Assistant✅✅⚠️❌
Registry-Anbieter2312⚠️⚠️
REST-API✅✅⚠️⚠️
Webhook-API für CI/CD✅❌❌✅
Prometheus-Metriken✅✅✅✅
Verteilte Agenten (remote)✅⚠️❌⚠️
Container-Gruppierung / Stacks✅✅❌❌
Container starten/stoppen/neustarten/aktualisieren✅❌❌❌
Container-Loganzeige✅❌❌❌
> Watchtower wurde im Dezember 2025 archiviert; das letzte Release war v1.7.1 (November 2023). Ein inoffizieller Community-Fork, nicholas-fedor/watchtower, wird weiterhin aktiv veröffentlicht.

Management-Plattformen

Funktion drydock Arcane Komodo Dockhand
Aktiv gepflegt✅✅✅✅
Weboberfläche / Dashboard✅✅✅✅
Automatische Container-Updates✅✅✅✅
Docker-Compose-Updates✅✅✅✅
SemVer-fähige Updates✅❌❌✅
Digest-Überwachung✅✅✅✅
Update-Schwellenfilter (Major/Minor/Patch/Digest)✅❌⚠️⚠️
Abhängigkeitsbewusste Update-Reihenfolge⚠️✅✅?
Warteschlange für ausstehende Freigaben✅❌❌❌
Image-Sicherung und Rollback✅❌❌❌
Schwachstellen-Scans✅✅❌✅
Audit-Protokoll✅✅✅⚠️
RBAC / Mehrbenutzerrollen❌✅✅⚠️
OIDC-/SSO-Authentifizierung✅✅✅✅
Trigger-/Benachrichtigungskanäle2111+515+
MQTT / Home Assistant✅❌❌✅
Registry-Anbieter23⚠️⚠️⚠️
Prometheus-Metriken✅❌❌✅
Verteilte Agenten (remote)✅✅✅✅
Container-Gruppierung / Stacks✅✅✅?
> Zusammengestellt aus der öffentlichen Dokumentation und den Repositories der jeweiligen Projekte, Stand 29.08.2026. > Beiträge willkommen, wenn Informationen ungenau sind.

Migration

Migration von WUD (What's Up Docker?) Drydock v1.6 lädt zur Laufzeit keine `WUD_*`-Umgebungsvariablen oder `wud.*`-Labels mehr. Schreiben Sie sie neu, bevor Sie den aktualisierten Dienst starten. Der persistente Status wird weiterhin automatisch migriert. Verwenden Sie `docker exec -it drydock node dist/index.js config migrate --dry-run` für die Vorschau und dann `docker exec -it drydock node dist/index.js config migrate --file .env --file compose.yaml`, um die Konfiguration in die Namen `DD_*` und `dd.*` umzuschreiben.

Roadmap

Versionsthemen und Highlights Diese Planung deckt mindestens die nächsten zwölf Monate bis August 2027 ab. Nur übergeordnete Themen; Details pro Version finden Sie in [CHANGELOG.md](CHANGELOG.md). | Version | Thema | Höhepunkte | | -------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **v1.3.x** ✅ | Sicherheit und Stabilität | Trivy-Scanning, Update Bouncer, SBOM, 7 neue Register, 4 neue Trigger, re2js-Regex-Engine | | **v1.4.x** ✅ | UI-Modernisierung und -Härtung | Tailwind 4 + benutzerdefinierte Komponenten, 6 Themes, Cmd/K-Palette, OpenAPI 3.1, Compose-native YAML-Updates, Dual-Slot-Scanning, OIDC-Härtung | | **v1.5.0** ✅ | Beobachtbarkeit & i18n | Trigger-Taxonomie-Aufteilung (`DD_ACTION_*`/`DD_NOTIFICATION_*`), WebSocket-Protokollanzeige, Dashboard-Anpassung, Ressourcenüberwachung, Benachrichtigungsausgang + DLQ, Sicherheitsscan-Digest, 17 Gebietsschemas, SSE Last-Event-ID-Wiedergabe, Edge-Agent-Dial-Out mit Ed25519-Authentifizierung (experimentell, `DD_EXPERIMENTAL_PORTWING=true`) | | **v1.5.1** ✅ | Sicherheit und Wartung | GCR/GAR-Pull-Auth-Fix, Registry-TLS-Vervollständigung (M-2), Hook-Env-Var-Injection-Hardening, `DD_SESSION_SECRET__FILE`-Unterstützung, Debug-Dump-Anmeldeinformationsredaktion, Berechtigungsprüfung für geheime Dateien, Deadlock-Fix für Reifegradtore, vollständige UI-Übersetzbarkeit + Community-Übersetzungen, automatisches Apply-Gate für Wartungsfenster, Container-Verfügbarkeitsanzeige, Tag/Version-Spalten-Split-Surface-Softwareversion (OCI-Label, mit `dd.inspect.tag.path` Dual-Write + Opt-in `dd.inspect.tag.version-only` Routing), Opt-in Compose Mount-Präfix-Matching, `${currentReleaseNotes}` Template Var | | **v1.5.2** ✅ | Zuverlässigkeit von Richtlinien und angehefteten Tags | Erholungssichere Aufbewahrung von Fälligkeits-/Skip-/Snooze-Richtlinien, Digest-Neuerstellungserkennung mit angehefteten Tags und informative Einblicke in die gleiche Familie, Rollback-Kandidaten-Bereinigung, Rollback-Kaskaden-Verhinderung, explizite MAC-Bewahrung und Verhalten beim Überspringen lokaler Images in der Registrierung | | **v1.6.0** | Benachrichtigungen, Richtlinien und Veröffentlichungen Intel | Benachrichtigungsvorlagen pro Regel/pro Auslöser mit Live-Vorschau, Benachrichtigungsglocken-Einstellungen, geräteübergreifender Präferenzsynchronisierung, benutzerdefiniertem Dashboard-Raster ohne Abhängigkeit ([#281](https://github.com/CodesWhat/drydock/issues/281)), deklarativer Aktualisierungsrichtlinie ([#320](https://github.com/CodesWhat/drydock/issues/320)), Reifegradstabilisierungs-Countdown + sofortiger Kandidatensichtbarkeit + manueller Überschreibung ([#406](https://github.com/CodesWhat/drydock/discussions/406)), umsetzbarem Update-Status-Panel und global `notify` / `manual` / `auto` Aktualisierungsmodus ([#325](https://github.com/CodesWhat/drydock/discussions/325)), Watcher-/imgset-/Container-Tag-Richtlinienvererbung plus gestapelte aktuelle → neuere Sichtbarkeit angehefteter Tags ([#498](https://github.com/CodesWhat/drydock/issues/498)), standardisierte 44px-Quelle/Versionshinweise/Registrierungsressourcenaktionen für Tabelle, Karten und Details ([#295](https://github.com/CodesWhat/drydock/discussions/295)), Ereignisbenachrichtigungen zum Gesundheitsstatus ([#198](https://github.com/CodesWhat/drydock/discussions/198)), bidirektionales Home Assistant MQTT, reaktionsfähige Tabellen-/Kartenlistenansichten, Trivy/Grype/Scannen über Befehl oder angeheftete Docker-Worker-Backends, Scanner-Asset-Pull/Warm-Steuerung, Off-Heap-Deduplizierung SBOM-Speicher, Trivy Long-Scan-Korrektheit ([#490](https://github.com/CodesWhat/drydock/issues/490)), Trigger-Taxonomie-Migrationswarnungen, v1.6-Kompatibilitätsentfernungen, Dokumentation/API-Hygiene und `/api` → `/api/v1`-Migrationsabschluss mit einem optionalen Wud-Card/Homepage-Kompatibilitäts-Shim (`DD_COMPAT_WUDCARD`). | | **v1.7.0** | Intelligente Updates und UX | Abhängigkeitsbewusste Aktualisierungsreihenfolge ([#219](https://github.com/CodesWhat/drydock/discussions/219)), Aktualisierungsrichtlinie pro Aktion ([#511](https://github.com/CodesWhat/drydock/discussions/511)), einheitliche Reife-/Update-Alters-Uhr, anklickbare Port-Links, Tastaturkürzel, PWA, Kontrastüberarbeitung im Dunkelmodus (WCAG 2.2) ([#850](https://github.com/CodesWhat/drydock/issues/850), [#865](https://github.com/CodesWhat/drydock/discussions/865)), Entfernung von `DD_TRIGGER_*` (Ende des Ablauffensters von Version 1.5.0), curl aus dem Image entfernt | | **v1.8.0** | Flottenmanagement und Live-Konfiguration | **In v1.8.0-rc.1 zum Testen verfügbar; GA steht noch aus:** SQLite, Freigabe-Warteschlange, YAML-Konfiguration, begrenzte Editoren für Watcher-, Benachrichtigungs- und Aktionsrichtlinien sowie Sicherheitsübersichtsvorlagen, parallele und selektive Massenupdates ([#232](https://github.com/CodesWhat/drydock/discussions/232)), Abhängigkeits-UI, Image-Inventar und Bereinigung, Flottenstatus und Inventaraktualisierung, teilbare Label-Gruppierung, exaktes Gruppenrouting nur für Benachrichtigungen ([#1251](https://github.com/CodesWhat/drydock/pull/1251)), dauerhafte Gruppenrichtlinien mit einschränkenden Aktionsregeln, Ansicht und Editor der wirksamen Richtlinie, Drydock-Overrides für labelbasierte Container-Einstellungen, TOTP-Anmeldung mit Wiederherstellungscodes, Wartungsfenster nur für Installationen ([#946](https://github.com/CodesWhat/drydock/discussions/946)), eigene Authentifizierung, bereichsbezogene API-Schlüssel ([#469](https://github.com/CodesWhat/drydock/discussions/469)) und Home-Assistant-Fortschritt/Geräte ([#210](https://github.com/CodesWhat/drydock/discussions/210)). **Offen:** Erweiterte Live-Konfiguration braucht Entscheidungen zur Zuständigkeit; der Watcher für statische Image-Listen bleibt bis nach GA zurückgestellt. | | **v2.0+** | Plattformerweiterung und darüber hinaus | Swarm/Kubernetes-Watcher, GitOps-Synchronisierung, Volume-Browser, lokal erstellte Images, die gegen eine deklarierte Upstream-Basis überwacht werden ([#897](https://github.com/CodesWhat/drydock/discussions/897)), Health Gates, Canary Deployments, Webterminal, RBAC, LDAP/AD, grundlegende Podman-Unterstützung über dessen Docker-kompatible API, CLI, gehärtetes Wolfi-Image, Socket-Proxy | **Offene Community-Anforderungen:** Hostübergreifende Abhängigkeitsupdates und Neustarts ([#219](https://github.com/CodesWhat/drydock/discussions/219)) sind nicht implementiert. Die Versionsfamilien-Logik für die Reifeprüfung nach Veröffentlichungsanzahl ([#558](https://github.com/CodesWhat/drydock/discussions/558)) ist in v1.8 implementiert, mit optionalem Alters-Fallback und begrenztem Digest-Nachweis für versionierte Aliase. Die historische Digest-Zählung unversionierter Kanäle bleibt offen. Abhängigkeitsreihenfolge auf demselben Host erfüllt die Anfrage für entfernte Hosts nicht. Lokale Build-Erkennung und sicheres Neuaufbauen bleiben zukünftige Arbeit ([#897](https://github.com/CodesWhat/drydock/discussions/897)). Der prozessweite Digest-Standard ([#657](https://github.com/CodesWhat/drydock/discussions/657)) verwendet `DD_DEFAULTS_WATCH_DIGEST`; jeder Agent wird separat konfiguriert. Dies sind keine Zusagen für Veröffentlichungstermine.

Sterngeschichte

Star History Chart
---

Gebaut mit

[![TypeScript](https://img.shields.io/badge/TypeScript_6.0-3178C6?logo=typescript&logoColor=fff)](https://www.typescriptlang.org/) [![Vue 3](https://img.shields.io/badge/Vue_3-42b883?logo=vuedotjs&logoColor=fff)](https://vuejs.org/) [![Express 5](https://img.shields.io/badge/Express_5-000?logo=express&logoColor=fff)](https://expressjs.com/) [![Vitest](https://img.shields.io/badge/Vitest_4-6E9F18?logo=vitest&logoColor=fff)](https://vitest.dev/) [![Biome](https://img.shields.io/badge/Biome_2.5-60a5fa?logo=biome&logoColor=fff)](https://biomejs.dev/) [![Node 24](https://img.shields.io/badge/Node_24_Alpine-339933?logo=nodedotjs&logoColor=fff)](https://nodejs.org/) [![Anthropic](https://img.shields.io/badge/Anthropic-CC785C?style=flat&logo=anthropic&logoColor=white)](https://claude.ai/) [![OpenAI](https://img.shields.io/badge/OpenAI-10A37F?logo=data%3Aimage%2Fsvg%2Bxml%3Bbase64%2CPHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48dGl0bGU%2BT3BlbkFJPC90aXRsZT48cGF0aCBmaWxsPSIjZmZmZmZmIiBkPSJNMjIuMjgxOSA5LjgyMTFhNS45ODQ3IDUuOTg0NyAwIDAgMC0uNTE1Ny00LjkxMDggNi4wNDYyIDYuMDQ2MiAwIDAgMC02LjUwOTgtMi45QTYuMDY1MSA2LjA2NTEgMCAwIDAgNC45ODA3IDQuMTgxOGE1Ljk4NDcgNS45ODQ3IDAgMCAwLTMuOTk3NyAyLjkgNi4wNDYyIDYuMDQ2MiAwIDAgMCAuNzQyNyA3LjA5NjYgNS45OCA1Ljk4IDAgMCAwIC41MTEgNC45MTA3IDYuMDUxIDYuMDUxIDAgMCAwIDYuNTE0NiAyLjkwMDFBNS45ODQ3IDUuOTg0NyAwIDAgMCAxMy4yNTk5IDI0YTYuMDU1NyA2LjA1NTcgMCAwIDAgNS43NzE4LTQuMjA1OCA1Ljk4OTQgNS45ODk0IDAgMCAwIDMuOTk3Ny0yLjkwMDEgNi4wNTU3IDYuMDU1NyAwIDAgMC0uNzQ3NS03LjA3Mjl6bS05LjAyMiAxMi42MDgxYTQuNDc1NSA0LjQ3NTUgMCAwIDEtMi44NzY0LTEuMDQwOGwuMTQxOS0uMDgwNCA0Ljc3ODMtMi43NTgyYS43OTQ4Ljc5NDggMCAwIDAgLjM5MjctLjY4MTN2LTYuNzM2OWwyLjAyIDEuMTY4NmEuMDcxLjA3MSAwIDAgMSAuMDM4LjA1MnY1LjU4MjZhNC41MDQgNC41MDQgMCAwIDEtNC40OTQ1IDQuNDk0NHptLTkuNjYwNy00LjEyNTRhNC40NzA4IDQuNDcwOCAwIDAgMS0uNTM0Ni0zLjAxMzdsLjE0Mi4wODUyIDQuNzgzIDIuNzU4MmEuNzcxMi43NzEyIDAgMCAwIC43ODA2IDBsNS44NDI4LTMuMzY4NXYyLjMzMjRhLjA4MDQuMDgwNCAwIDAgMS0uMDMzMi4wNjE1TDkuNzQgMTkuOTUwMmE0LjQ5OTIgNC40OTkyIDAgMCAxLTYuMTQwOC0xLjY0NjR6TTIuMzQwOCA3Ljg5NTZhNC40ODUgNC40ODUgMCAwIDEgMi4zNjU1LTEuOTcyOFYxMS42YS43NjY0Ljc2NjQgMCAwIDAgLjM4NzkuNjc2NWw1LjgxNDQgMy4zNTQzLTIuMDIwMSAxLjE2ODVhLjA3NTcuMDc1NyAwIDAgMS0uMDcxIDBsLTQuODMwMy0yLjc4NjVBNC41MDQgNC41MDQgMCAwIDEgMi4zNDA4IDcuODcyem0xNi41OTYzIDMuODU1OEwxMy4xMDM4IDguMzY0IDE1LjExOTIgNy4yYS4wNzU3LjA3NTcgMCAwIDEgLjA3MSAwbDQuODMwMyAyLjc5MTNhNC40OTQ0IDQuNDk0NCAwIDAgMS0uNjc2NSA4LjEwNDJ2LTUuNjc3MmEuNzkuNzkgMCAwIDAtLjQwNy0uNjY3em0yLjAxMDctMy4wMjMxbC0uMTQyLS4wODUyLTQuNzczNS0yLjc4MThhLjc3NTkuNzc1OSAwIDAgMC0uNzg1NCAwTDkuNDA5IDkuMjI5N1Y2Ljg5NzRhLjA2NjIuMDY2MiAwIDAgMSAuMDI4NC0uMDYxNWw0LjgzMDMtMi43ODY2YTQuNDk5MiA0LjQ5OTIgMCAwIDEgNi42ODAyIDQuNjZ6TTguMzA2NSAxMi44NjNsLTIuMDItMS4xNjM4YS4wODA0LjA4MDQgMCAwIDEtLjAzOC0uMDU2N1Y2LjA3NDJhNC40OTkyIDQuNDk5MiAwIDAgMSA3LjM3NTctMy40NTM3bC0uMTQyLjA4MDVMOC43MDQgNS40NTlhLjc5NDguNzk0OCAwIDAgMC0uMzkyNy42ODEzem0xLjA5NzYtMi4zNjU0bDIuNjAyLTEuNDk5OCAyLjYwNjkgMS40OTk4djIuOTk5NGwtMi41OTc0IDEuNDk5Ny0yLjYwNjctMS40OTk3WiIvPjwvc3ZnPg%3D%3D)](https://openai.com) [![SemVer](https://img.shields.io/badge/semver-2.0.0-blue)](https://semver.org/) [![Conventional Commits](https://img.shields.io/badge/commits-conventional-fe5196?logo=conventionalcommits&logoColor=fff)](https://www.conventionalcommits.org/) [![Keep a Changelog](https://img.shields.io/badge/changelog-Keep%20a%20Changelog-E05735)](https://keepachangelog.com/)

Gemeinschaft & Support

Echtzeit-Chat und frühzeitige Unterstützung: **[CodesWhat Discord](https://discord.gg/mWHCPJRzSx)** Fehler und konkrete Funktionsanfragen gehören zu **[GitHub Issues](https://github.com/CodesWhat/drydock/issues)**; offene Fragen, Ideen und Showcases gehören zu **[GitHub Discussions](https://github.com/CodesWhat/drydock/discussions)**; Echtzeit-Chat findet im **[CodesWhat Discord](https://discord.gg/mWHCPJRzSx)** statt. ### Community-QA Vielen Dank an die Benutzer, die beim Testen der Release-Kandidaten v1.4.0 und v1.5.0 geholfen und Fehler gemeldet haben: [@RK62](https://github.com/RK62) · [@flederohr](https://github.com/flederohr) · [@rj10rd](https://github.com/rj10rd) · [@larueli](https://github.com/larueli) · [@Waler](https://github.com/Waler) · [@ElVit](https://github.com/ElVit) · [@nchieffo](https://github.com/nchieffo) · [@begunfx](https://github.com/begunfx) · [@Ra72xx](https://github.com/Ra72xx)

Teil des CodesWhat-Ökosystems

WerkzeugRolle
drydockÜberwachung von Containeraktualisierungen – Web-Benutzeroberfläche und Benachrichtigungs-Engine
portwingRemote-Docker-Agent – sicherer Zugriff auf Socket-Ebene von Drydock oder Standalone
sockguardDocker-Socket-Proxy – Standard-Zulassungslistenfilter zum Schutz des Sockets
Diese drei Tools sind für die Schichtung konzipiert: sockguard filtert den Socket, portwing macht ihn remote verfügbar und drydock überwacht den Containerstatus und reagiert darauf. Die vollständige Kompatibilitätsmatrix für alle drei Tools finden Sie in [portwings COMPATIBILITY.md](https://github.com/CodesWhat/portwing/blob/main/COMPATIBILITY.md). --- **[AGPL-3.0-Lizenz](LICENSE)** CodesWhat Zurück nach oben