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

drydock

drydock

**Obserwator aktualizacji obrazów kontenerów, 23 rejestry, 21 dostawców powiadomień i działań.**

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 to opcjonalne wydanie testowe.** Przed próbą zatrzymaj Drydock i wykonaj kopię całego katalogu danych. Pierwsze uruchomienie importuje dane JSON do SQLite. Powrót do starszej wersji wymaga przywrócenia kopii sprzed aktualizacji; zmiany zapisane tylko w SQLite nie są przenoszone z powrotem. Zobacz [migrację i wycofywane funkcje](DEPRECATIONS.md). > [!WARNING] > **Aktualizacja ze starszej wersji? Najpierw przeczytaj uwagi dotyczące aktualizacji.** Trzy poprawki zwiększające bezpieczeństwo zostały dostarczone po raz pierwszy w **1.4.6** i działają w całej linii **1.5**, więc każdy, kto dokonuje aktualizacji z wersji starszej niż 1.4.6, będzie miał wpływ na dowolną wersję, na której wyląduje (1.4.6, dowolna wersja 1.5.x lub nowsza). Nie są one wycofane i nie mają okresu karencji: OIDC wymaga teraz `authorization_endpoint` w metadanych wykrywania Twojego dostawcy, nieuwierzytelnionych kluczy ograniczających szybkość na adresie równorzędnym TCP (współdzielony zasobnik za odwrotnym proxy), a adresy URL proxy wyzwalacza HTTP muszą używać `http(s)://`. Przed aktualizacją zobacz **[UPGRADE-NOTES.md](UPGRADE-NOTES.md)**. > [!WARNING] > **Aktualizujesz do 1.6.0-rc.3 lub nowszej wersji?** Dodatkowe zabezpieczenia obowiązują bez okresu przejściowego. Instancja bez skonfigurowanego uwierzytelniania albo z włączonym, lecz niepotwierdzonym dostępem anonimowym po aktualizacji działa teraz w trybie zamkniętym, tak samo jak nowa instalacja: kontener działa, chronione żądania API zwracają `401`, publiczne trasy wykrywania i stanu uwierzytelniania pozostają dostępne, a `/health` zwraca `503`. Powłoka SPA może się załadować, ale nie odczyta chronionych danych. Przed aktualizacją ustaw `DD_ANONYMOUS_AUTH_CONFIRM=true` lub skonfiguruj `DD_AUTH_BASIC_*`/OIDC. Nazwa cookie sesji zmienia się z `connect.sid` na `drydock.sid`, co jednorazowo wyloguje użytkowników. Wyzwalacze powiadomień HTTP, webhook Hass i pobieranie ikon rejestrów rozwiązują teraz nazwy hostów za pomocą chronionego wyszukiwania DNS, które blokuje cele metadanych chmurowych i adresy link-local oraz nigdy nie podąża za przekierowaniami — ustaw `allowmetadata=true` dla konkretnego wyzwalacza `DD_NOTIFICATION_HTTP_*` tylko wtedy, gdy rzeczywiście jest to potrzebne. Pełne wskazówki zawiera **[DEPRECATIONS.md](DEPRECATIONS.md#enforced-security-changes-no-deprecation-window)**.

Spis treści

- [Dokumentacja](#documentation) - [Szybki start](#quick-start) - [Zrzuty ekranu i demonstracja na żywo](#screenshots) - [Dlaczego Drydock](#why-drydock) - [Funkcje](#features) - [Obsługiwane integracje](#supported-integrations) - [Porównanie funkcji](#feature-comparison) - [Migracja](#migration) - [Plan działania](#roadmap) - [Historia gwiazd](#star-history) - [Zbudowany z](#built-with) - [Społeczność i wsparcie](#community-support) - [Ekosystem CodesWhat](#codeswhat-ecosystem)

Dokumentacja

| Zasób | Link | | -------------------------- | ---------------------------------------------------------------------------------------------------------------------- | | Strona internetowa | [getdrydock.com](https://getdrydock.com/) | | Demo na żywo | [demo.getdrydock.com](https://demo.getdrydock.com) | | Dokumenty | [getdrydock.com/docs](https://getdrydock.com/docs) | | Konfiguracja | [Konfiguracja](https://getdrydock.com/docs/configuration) | | Szybki start | [Szybki start](https://getdrydock.com/docs/quickstart) | | Dziennik zmian | [`CHANGELOG.md`](CHANGELOG.md) | | Deprecations | [`DEPRECATIONS.md`](DEPRECATIONS.md) | | Mapa drogowa | Zobacz sekcję [Roadmap](#roadmap) poniżej | | Contributing | [`CONTRIBUTING.md`](CONTRIBUTING.md) | | Kodeks postępowania | [`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) | | Zarządzanie | [`GOVERNANCE.md`](GOVERNANCE.md) | | Zapewnienie bezpieczeństwa | [`SECURITY-ASSURANCE.md`](SECURITY-ASSURANCE.md) | | Polityka bezpieczeństwa | [`SECURITY.md`](SECURITY.md) | | Problemy | [Problemy z GitHubem](https://github.com/CodesWhat/drydock/issues) | | Dyskusje | [GitHub Discussions](https://github.com/CodesWhat/drydock/discussions) — prośby o nowe funkcje i pomysły mile widziane |

Szybki start

**Zalecane: użyj gniazda proxy**, aby ograniczyć punkty końcowe Docker API, do których Drydock może uzyskać dostęp. Pozwala to uniknąć zapewnienia kontenerowi pełnego dostępu do gniazda Docker. > **Uwaga:** Compose traktuje `$` jako składnię interpolacji zmiennych, więc wklejony hash argon2id z pojedynczym `$` dotrze do Drydock uszkodzony. Podwój każdy `$` do `$$` przy wklejaniu prawdziwego hasha, na przykład `$$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: ```
Alternatywa: sockguard proxy gniazda [sockguard](https://github.com/CodesWhat/sockguard) to filtr gniazda Docker z domyślną odmową z tego samego ekosystemu CodesWhat, z ustawieniem wstępnym zbudowanym dla drydock: > **Uwaga:** Compose traktuje `$` jako składnię interpolacji zmiennych, więc wklejony hash argon2id z pojedynczym `$` dotrze do Drydock uszkodzony. Podwój każdy `$` do `$$` przy wklejaniu prawdziwego hasha, na przykład `$$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: ``` Zobacz ustawienie wstępne sockguard [`app/configs/portwing.yaml`](https://github.com/CodesWhat/sockguard/blob/dev/v1.5/app/configs/portwing.yaml) dla początkowego `sockguard.yaml` (to samo ustawienie wstępne portwing jest dostarczane we własnych przykładach).
Alternatywa: szybki start z bezpośrednim montażem na gnieździe ```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 ``` > **Ostrzeżenie:** Bezpośredni dostęp do gniazda zapewnia kontenerowi pełną kontrolę nad demonem Dockera. W przypadku wdrożeń produkcyjnych użyj powyższej konfiguracji gniazda proxy. Zobacz [Przewodnik dotyczący zabezpieczeń gniazd Docker](https://getdrydock.com/docs/configuration/watchers#docker-socket-security), aby zapoznać się ze wszystkimi opcjami, w tym zdalnym TLS i Dockerem bez rootowania. > > Użyj pojedynczych cudzysłowów wokół wartości hasha, jak pokazano. Podwójne cudzysłowy nadal pozwalają powłoce rozwinąć `$`, zanim docker go zobaczy, uszkadzając prawdziwy hash argon2id.
> Wygeneruj skrót hasła (`argon2` CLI — zainstaluj za pośrednictwem menedżera pakietów): > > ```bash > echo -n "yourpassword" | argon2 $(openssl rand -base64 32) -id -m 16 -t 3 -p 4 -l 64 -e > ``` > > Lub z Node.js 24.7+ (nie są potrzebne żadne dodatkowe pakiety): > > ```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 akceptuje tylko skróty uwierzytelniające argon2id Basic. Starsze wersje `{SHA}`, `$apr1$`/`$1$`, `crypt` i skróty zwykłego tekstu są odrzucane; zregeneruj je przed aktualizacją. > Uwierzytelnienie jest **wymagane domyślnie**. Zobacz [auth docs](https://getdrydock.com/docs/configuration/authentications) dla OIDC, dostępu anonimowego i innych opcji. > Dostęp anonimowy musi zostać jawnie potwierdzony ustawieniem `DD_ANONYMOUS_AUTH_CONFIRM=true` zarówno w nowych, jak i aktualizowanych instalacjach. Bez tego instancja bez skonfigurowanego uwierzytelniania lub z niepotwierdzonym trybem anonimowym uruchamia się w trybie zamkniętym: chronione żądania API zwracają `401`, publiczne trasy wykrywania i stanu uwierzytelniania pozostają dostępne, a `/health` zwraca `503`. Obraz zawiera pliki binarne `trivy` i `cosign` do lokalnego skanowania pod kątem luk i weryfikacji obrazu. Zobacz [Przewodnik szybkiego startu](https://getdrydock.com/docs/quickstart) dla Docker Compose, bezpieczeństwo gniazd, odwrotne proxy i alternatywne rejestry. Zmiany w każdym wydaniu znajdziesz w [`CHANGELOG.md`](CHANGELOG.md) i na stronie [GitHub Releases](https://github.com/CodesWhat/drydock/releases).

Zrzuty ekranu i demonstracja na żywo

Drydock detecting and applying a container update

Znajdź aktualizację, zobacz dokładnie, jakie zmiany i zastosuj ją. Obsługiwane kopie zapasowe, sprawdzanie stanu i przywracanie zmian.

Światło Ciemny
Dashboard Light Dashboard Dark
**Po co oglądać zrzuty ekranu, skoro możesz tego doświadczyć na własnej skórze?** Try the Live Demo W pełni interaktywny — prawdziwy interfejs użytkownika, próbne dane, nie wymaga instalacji. Działa całkowicie w przeglądarce.

Dlaczego Drydock

Obrazy kontenerów po cichu stają się nieaktualne. Obraz bazowy łata CVE, aplikacja wycofuje wersję, tag się przenosi. Jeśli nie będziesz oglądać każdego rejestru ręcznie, działające kontenery pozostaną w tyle, dopóki coś się nie zepsuje lub nie zostanie wykorzystane. Większość narzędzi wymusza kompromis. Automatyczne aktualizacje (Watchtower, Ouroboros) pobierają się i uruchamiają ponownie przy niewielkiej widoczności lub kontroli i obecnie w dużej mierze nie są konserwowane. Pulpity nawigacyjne (Portainer) zarządzają kontenerami, ale nie są zbudowane pod kątem analizy aktualizacji. Drydock to **najpierw monitor**: obserwuje 23 rejestry i dokładnie informuje Cię, co się zmieniło (główne, poboczne, poprawki lub podsumowanie), zanim cokolwiek się wydarzy, a następnie działa tylko wtedy, gdy na to pozwolisz. I sięga dalej niż którykolwiek z nich. Skanowanie pod kątem luk w zabezpieczeniach Trivy/Grype blokuje niebezpieczne aktualizacje, cosign weryfikuje podpisy, kopie zapasowe obrazów przed aktualizacją przywracają się automatycznie w przypadku niepowodzenia kontroli stanu, rozproszoni agenci obsługują zdalne hosty, a 21 integracji powiadomień i działań zamyka pętlę. Pełny cykl życia aktualizacji z interfejsem internetowym i interfejsem API REST.

Funkcje

| | Funkcja | Opis | | --- | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | 🔭 | **Wykrywanie najpierw na monitorze** | Obserwuje każdy działający kontener i zanim cokolwiek się wydarzy, klasyfikuje każdą dostępną aktualizację jako główną, pomocniczą, poprawkę lub podsumowanie. Nic się nie zmieni, dopóki tak nie powiesz. | | 📦 | **23 Dostawcy rejestru** | Docker Hub, GHCR, ECR, ACR, GCR, GAR, GitLab, Quay, Harbor, Artifactory, Nexus i 12 innych. Publiczne i prywatne, w chmurze i na własnym serwerze, z TLS i uwierzytelnianiem dla poszczególnych rejestrów. | | 🔔 | **21 wyzwalaczy** | 17 kanałów powiadomień (Slack, Discord, Telegram, Teams, SMTP, MQTT, ntfy i więcej) oraz Docker, Docker Compose, Portainer i akcje poleceń, z szablonami dla poszczególnych zdarzeń/dostawców, podglądem na żywo, filtrowaniem progów i trybem wsadowym. | | 🥊 | **Update Bouncer** | Skanowanie pod kątem luk w zabezpieczeniach Trivy/Grype blokuje niebezpieczne aktualizacje przed ich wdrożeniem, z weryfikacją podpisu Cosign i generowaniem SBOM (CycloneDX i SPDX). | | ↩️ | **Kopia zapasowa obrazu i automatyczne przywracanie** | Wstępnie aktualizuj migawki obrazów z konfigurowalnym przechowywaniem, automatycznym przywracaniem w przypadku niepowodzenia kontroli stanu i ręcznym przywracaniem jednym kliknięciem z poziomu interfejsu użytkownika. | | 🪝 | **Haki cyklu życia** | Polecenia powłoki przed i po aktualizacji za pośrednictwem etykiet kontenerów, z limitami czasu dla poszczególnych haków i kontrolą przerwania w przypadku awarii. | | 🗂️ | **Aktualizacje Docker Compose** | Pobieraj i odtwarzaj usługi Compose za pośrednictwem interfejsu API Docker Engine z łataniem obrazów zachowującym YAML. | | 🎛️ | **Zasady dotyczące kontenera** | Reguły tagów Regex i routing wyzwalaczy korzystają z etykiet `dd.*`; bramki dojrzałości, pomijanie/odkładanie/przypinanie i okna konserwacji są przechowywane za pośrednictwem interfejsu użytkownika/API lub konfiguracji obserwatora. | | 🛰️ | **Agenci rozproszeni** | Monitoruj zdalne hosty Dockera przez SSE. Agenci Portwing 0.9.0+ działają przez przychodzący Standard HTTP lub wychodzący transport WebSocket Edge; Drydock 1.6.0-rc.11+ wykonuje po stronie kontrolera natywne kontrole rejestru oraz pojedyncze i zbiorcze aktualizacje Dockera przez oba uwierzytelnione kanały. Edge przesyła też ciągłe logi bez portu przychodzącego; `DD_EXPERIMENTAL_PORTWING=false` pozostaje wyłącznikiem awaryjnym. | | 🖥️ | **Panel sieciowy** | Interfejs użytkownika Vue 3 z konfigurowalną siatką widżetów o zerowej zależności, responsywnymi widokami tabel/kart, aktualizacjami SSE na żywo, sterowaniem dzwonkiem powiadomień oraz szczegółami, dziennikami i statystykami dotyczącymi poszczególnych kontenerów. | | 🔗 | **REST API i webhooki** | Punkty końcowe uwierzytelniane tokenem dla wyzwalaczy monitorowania i aktualizacji CI/CD oraz pozyskiwania podpisanego elementu webhook rejestru dla zdarzeń push. | | 🔐 | **Uwierzytelnianie OIDC** | Zabezpiecz deskę rozdzielczą za pomocą OpenID Connect (Authelia, Auth0, Authentik). Domyślnie każdy błąd przepływu uwierzytelniania powoduje odmowę dostępu (fail-closed). | | 📈 | **Dane Prometheus** | Wbudowany punkt końcowy `/metrics` z opcjonalnym obejściem uwierzytelniania dla stosów monitorowania Prometheus i Grafana. | | 🌍 | **17 ustawień regionalnych interfejsu użytkownika** | W pełni przewodowy system tłumaczeń z pełnym językiem angielskim i 16 obsługiwanymi przez społeczność lokalizacjami zsynchronizowanymi za pośrednictwem Crowdin, przełączalny w konfiguracji. | | 🔒 | **ReDoS-Regex immunologiczny** | Każdy wzorzec znacznika dostarczony przez użytkownika jest kompilowany przez re2js (port oparty wyłącznie na JS RE2) w celu uzyskania liniowego dopasowania, którego nie może zatrzymać katastrofalny wzorzec cofania się. |

Obsługiwane integracje

### Rejestry (23) Docker Hub · GHCR · ECR · ACR · GCR · GAR · GitLab · Quay · LSCR · Harbor · Artifactory · Nexus · Gitea · Forgejo · Codeberg · MAU · TrueForge · Niestandardowy · DOCR · DHI · IBM Cloud · Oracle Cloud · Alibaba Cloud ### Akcje (4) Doker · Docker Compose · Portainer · Command ### Powiadomienia (17) Appprise · Discord · Czat Google · Gotify · HTTP · IFTTT · Kafka · Matrix · Mattermost · MQTT · MS Teams · NTFY · Pushover · Rocket.Chat · Slack · SMTP · Telegram ### Uwierzytelnianie Anonimowy (opcja poprzez `DD_ANONYMOUS_AUTH_CONFIRM=true`) · Podstawowy (nazwa użytkownika + skrót hasła) · OIDC (Authelia, Auth0, Authentik). Domyślnie każdy błąd przepływu uwierzytelniania powoduje odmowę dostępu (fail-closed). ### Update Bouncer Skanowanie pod kątem luk w zabezpieczeniach oparte na Trivy lub Grype blokuje niebezpieczne aktualizacje przed ich wdrożeniem. Obejmuje weryfikację podpisu Cosign i generowanie SBOM (CycloneDX i SPDX).

Porównanie funkcji

Jak drydock wypada w porównaniu z innymi narzędziami do aktualizacji kontenerów? > ✅ = obsługiwane   ❌ = nieobsługiwane   ⚠️ = częściowy / ograniczony   ? = niepotwierdzone   † = zarchiwizowane, nie jest już obsługiwane

Menedżery aktualizacji

Funkcja drydock WUD Diun Watchtower †
Aktywnie utrzymywane✅✅✅❌
Interfejs webowy / pulpit✅✅❌❌
Automatyczna aktualizacja kontenerów✅✅❌✅
Aktualizacje Docker Compose✅✅❌⚠️
Aktualizacje zgodne z SemVer✅✅⚠️❌
Monitorowanie digestów✅✅✅✅
Filtrowanie progu aktualizacji (major/minor/patch/digest)✅✅❌❌
Kolejność aktualizacji uwzględniająca zależności⚠️❌❌❌
Kolejka oczekujących zatwierdzeń✅❌❌❌
Kopia i przywracanie obrazów✅❌❌❌
Hooki cyklu życia (przed/po)✅❌❌✅
Skanowanie podatności✅❌❌❌
Dziennik audytu✅❌❌❌
RBAC / role wielu użytkowników❌❌❌❌
Uwierzytelnianie OIDC / SSO✅✅❌❌
Kanały wyzwalaczy / powiadomień211717~20
MQTT / Home Assistant✅✅⚠️❌
Dostawcy rejestrów2312⚠️⚠️
REST API✅✅⚠️⚠️
Webhook API dla CI/CD✅❌❌✅
Metryki Prometheus✅✅✅✅
Agenci rozproszeni (zdalni)✅⚠️❌⚠️
Grupowanie kontenerów / stosy✅✅❌❌
Start/stop/restart/aktualizacja kontenerów✅❌❌❌
Podgląd logów kontenera✅❌❌❌
> Watchtower zarchiwizowano w grudniu 2025 roku, a jego ostatnie wydanie to v1.7.1 (listopad 2023). Nieoficjalny fork społecznościowy, nicholas-fedor/watchtower, nadal jest aktywnie wydawany.

Platformy zarządzania

Funkcja drydock Arcane Komodo Dockhand
Aktywnie utrzymywane✅✅✅✅
Interfejs webowy / pulpit✅✅✅✅
Automatyczna aktualizacja kontenerów✅✅✅✅
Aktualizacje Docker Compose✅✅✅✅
Aktualizacje zgodne z SemVer✅❌❌✅
Monitorowanie digestów✅✅✅✅
Filtrowanie progu aktualizacji (major/minor/patch/digest)✅❌⚠️⚠️
Kolejność aktualizacji uwzględniająca zależności⚠️✅✅?
Kolejka oczekujących zatwierdzeń✅❌❌❌
Kopia i przywracanie obrazów✅❌❌❌
Skanowanie podatności✅✅❌✅
Dziennik audytu✅✅✅⚠️
RBAC / role wielu użytkowników❌✅✅⚠️
Uwierzytelnianie OIDC / SSO✅✅✅✅
Kanały wyzwalaczy / powiadomień2111+515+
MQTT / Home Assistant✅❌❌✅
Dostawcy rejestrów23⚠️⚠️⚠️
Metryki Prometheus✅❌❌✅
Agenci rozproszeni (zdalni)✅✅✅✅
Grupowanie kontenerów / stosy✅✅✅?
> Opracowano na podstawie publicznej dokumentacji i repozytoriów poszczególnych projektów, stan na 29.08.2026 r. > Komentarze są mile widziane, jeśli jakiekolwiek informacje są niedokładne.

Migracja

Migracja z WUD (Co słychać w oknie dokowanym?) Drydock v1.6 nie ładuje już zmiennych środowiskowych `WUD_*` ani etykiet `wud.*` w czasie wykonywania. Przepisz je przed uruchomieniem uaktualnionej usługi; stan utrwalony nadal migruje automatycznie. Użyj `docker exec -it drydock node dist/index.js config migrate --dry-run`, aby wyświetlić podgląd, a następnie `docker exec -it drydock node dist/index.js config migrate --file .env --file compose.yaml`, aby przepisać konfigurację na nazewnictwo `DD_*` i `dd.*`.

Roadmap

Motywy i najważniejsze wersje wersji Ten kierunek obejmuje co najmniej następne dwanaście miesięcy, do sierpnia 2027 r. Tylko motywy ogólne; szczegóły poszczególnych wersji zawiera [CHANGELOG.md](CHANGELOG.md). | Wersja | Motyw | Najważniejsze informacje | | -------------------------------------------- | ------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **v1.3.x** ✅ | Bezpieczeństwo i stabilność | Skanowanie Trivy, Update Bouncer, SBOM, 7 nowych rejestrów, 4 nowe wyzwalacze, silnik re2js regex | | **v1.4.x** ✅ | Modernizacja i wzmocnienie interfejsu użytkownika | Tailwind 4 + niestandardowe komponenty, 6 motywów, paleta Cmd/K, OpenAPI 3.1, aktualizacje YAML natywne dla Compose, skanowanie z dwoma gniazdami, utwardzanie OIDC | | **v1.5.0** ✅ | Obserwowalność i i18n | Podział taksonomii wyzwalaczy (`DD_ACTION_*`/`DD_NOTIFICATION_*`), przeglądarka dzienników WebSocket, dostosowywanie pulpitu, monitorowanie zasobów, skrzynka nadawcza powiadomień + DLQ, podsumowanie skanowania bezpieczeństwa, 17 ustawień regionalnych, odtwarzanie Last-Event-ID w SSE, wychodzące połączenie agenta Edge z uwierzytelnianiem Ed25519 (eksperymentalne, `DD_EXPERIMENTAL_PORTWING=true`) | | **v1.5.1** ✅ | Bezpieczeństwo i konserwacja | Poprawka autoryzacji pull-auth GCR/GAR, zakończenie TLS rejestru (M-2), utwardzanie wtrysku hook env-var, obsługa `DD_SESSION_SECRET__FILE`, redakcja poświadczeń debug-dump, sprawdzanie uprawnień do plików tajnych, naprawa zakleszczenia bramy dojrzałości, pełna translacja interfejsu użytkownika + tłumaczenia społeczności, bramka automatycznego stosowania okna konserwacji, wyświetlanie czasu pracy kontenera, wersja oprogramowania z podziałem kolumny tagu/wersji (etykieta OCI, z `dd.inspect.tag.path` podwójny zapis + opcjonalne routowanie przez `dd.inspect.tag.version-only`), opcjonalne dopasowywanie prefiksu montowania w Compose, zmienna szablonu `${currentReleaseNotes}` | | **v1.5.2** ✅ | Niezawodność zasad i przypiętych tagów | Zachowywanie zasad dojrzałości/pomijania/odraczania podczas ponownego tworzenia kontenera, wykrywanie przebudowy digestu przypiętych tagów i informacyjne spostrzeżenia dotyczące tej samej rodziny, czyszczenie kandydatów do wycofania, zapobieganie kaskadzie wycofywania, jawne zachowywanie adresów MAC i zachowanie pomijania rejestru obrazów lokalnych | | **v1.6.0** | Powiadomienia, zasady i informacje o wydaniach | Szablony powiadomień dla poszczególnych reguł/wyzwalaczy z podglądem na żywo, preferencjami dzwonka powiadomień, synchronizacją preferencji między urządzeniami, niestandardową siatką pulpitu nawigacyjnego o zerowej zależności ([#281](https://github.com/CodesWhat/drydock/issues/281)), deklaratywną polityką aktualizacji ([#320](https://github.com/CodesWhat/drydock/issues/320)), odliczaniem stabilizacji dojrzałości + natychmiastową widocznością kandydata + ręcznym zastąpieniem ([#406](https://github.com/CodesWhat/drydock/discussions/406)), praktycznym panelem stanu aktualizacji i globalnym trybem aktualizacji `notify` / `manual` / `auto` ([#325](https://github.com/CodesWhat/drydock/discussions/325)), dziedziczenie zasad tagów obserwatora/imgset/kontenera plus warstwowa widoczność bieżącego → nowszego przypiętego tagu ([#498](https://github.com/CodesWhat/drydock/issues/498)), ujednolicone do 44 px akcje zasobów: Źródło / informacje o wydaniu / rejestr w tabelach, kartach i widokach szczegółów ([#295](https://github.com/CodesWhat/drydock/discussions/295)), powiadomienia o zdarzeniach dotyczących stanu zdrowia ([#198](https://github.com/CodesWhat/drydock/discussions/198)), dwukierunkowy Home Assistant MQTT, responsywne widoki tabel/list kart, Trivy/Grype/oba skanowanie za pośrednictwem poleceń lub przypiętych backendów Docker-worker, kontrola ściągania/ogrzewania zasobów skanera, praca poza stertą deduplikowana pamięć SBOM, poprawność długiego skanowania Trivy ([#490](https://github.com/CodesWhat/drydock/issues/490)), ostrzeżenia o migracji wyzwalacza-taksonomii, usunięcie zgodności z wersją 1.6, higiena dokumentów/API oraz zakończenie migracji `/api` → `/api/v1` z opcjonalną podkładką zgodności wud-card/strony głównej (`DD_COMPAT_WUDCARD`). | | **v1.7.0** | Inteligentne aktualizacje i UX | Kolejność aktualizacji uwzględniająca zależności ([#219](https://github.com/CodesWhat/drydock/discussions/219)), zasady aktualizacji według akcji ([#511](https://github.com/CodesWhat/drydock/discussions/511)), ujednolicony zegar dojrzałości/wieku aktualizacji, klikalne łącza do portów, skróty klawiaturowe, PWA, poprawa kontrastu ciemnego motywu (WCAG 2.2) ([#850](https://github.com/CodesWhat/drydock/issues/850), [#865](https://github.com/CodesWhat/drydock/discussions/865)), usuwanie `DD_TRIGGER_*` (koniec okresu wycofywania dla wersji 1.5.0), curl usunięty z obrazu | | **v1.8.0** | Zarządzanie flotą i konfiguracja na żywo | **Dostępne do testów w v1.8.0-rc.1; GA jeszcze niewydane:** SQLite, kolejka zatwierdzania, konfiguracja YAML, ograniczone edytory polityk obserwatorów/powiadomień/akcji i szablony podsumowań bezpieczeństwa, równoległe i selektywne aktualizacje zbiorcze ([#232](https://github.com/CodesWhat/drydock/discussions/232)), interfejs zależności, inwentaryzacja i czyszczenie obrazów, stan floty i odświeżanie inwentarza, udostępnianie grupowania etykietami, routing według dokładnej grupy tylko dla powiadomień ([#1251](https://github.com/CodesWhat/drydock/pull/1251)), trwałe polityki grup z ograniczeniami akcji, widok i edytor efektywnej polityki, nadpisywanie przez Drydock ustawień kontenerów pochodzących z etykiet, logowanie TOTP z kodami odzyskiwania, okna serwisowe tylko dla instalacji ([#946](https://github.com/CodesWhat/drydock/discussions/946)), własne uwierzytelnianie, klucze API z ograniczonym zakresem ([#469](https://github.com/CodesWhat/drydock/discussions/469)) oraz postęp/urządzenia Home Assistant ([#210](https://github.com/CodesWhat/drydock/discussions/210)). **Pozostało:** Szersza konfiguracja na żywo wymaga decyzji o zarządzaniu ustawieniami; obserwator statycznych list obrazów czeka do wydania GA. | | **v2.0+** | Rozszerzanie platformy i nie tylko | Obserwatorzy roju/Kubernetes, synchronizacja GitOps, przeglądarka woluminów, lokalnie zbudowane obrazy monitorowane względem zadeklarowanej bazy upstream ([#897](https://github.com/CodesWhat/drydock/discussions/897)), bramki kondycji, wdrożenia Canary, terminal webowy, RBAC, LDAP/AD, podstawowe wsparcie dla Podman za pośrednictwem jego interfejsu API zgodnego z Dockerem, CLI, wzmocniony obraz Wolfi, proxy gniazda | **Otwarte wymagania społeczności:** Aktualizacje i restarty zależności między hostami ([#219](https://github.com/CodesWhat/drydock/discussions/219)) nie są zaimplementowane. Dojrzałość oparta na liczbie wydań ([#558](https://github.com/CodesWhat/drydock/discussions/558)) obejmuje w v1.8 logikę rodzin wersji, opcjonalny warunek wieku jako rozwiązanie zastępcze oraz ograniczoną weryfikację digestów dla aliasów z wersją. Historyczne zliczanie digestów kanałów bez wersji pozostaje do zrobienia. Kolejność zależności na jednym hoście nie obsługuje zdalnych hostów. Wykrywanie lokalnych kompilacji i bezpieczne ponowne budowanie pozostają przyszłymi pracami ([#897](https://github.com/CodesWhat/drydock/discussions/897)). Domyślne ustawienie digestów procesu ([#657](https://github.com/CodesWhat/drydock/discussions/657)) używa `DD_DEFAULTS_WATCH_DIGEST`; każdego agenta konfiguruje się osobno. Nie są to obietnice terminów wydania.

Historia gwiazd

Star History Chart
---

Zbudowany z

[![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/)

Społeczność i wsparcie

Czat na żywo i wczesne wsparcie: **[CodesWhat Discord](https://discord.gg/mWHCPJRzSx)** Błędy i konkretne prośby o nowe funkcje trafiają do **[GitHub Issues](https://github.com/CodesWhat/drydock/issues)**; otwarte pytania, pomysły i prezentacje trafiają do **[GitHub Discussions](https://github.com/CodesWhat/drydock/discussions)**; czat na żywo odbywa się na **[CodesWhat Discord](https://discord.gg/mWHCPJRzSx)**. ### Kontrola jakości społeczności Dziękujemy użytkownikom, którzy pomogli w testowaniu wersji 1.4.0 i 1.5.0 oraz zgłosili błędy: [@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)

Część ekosystemu CodesWhat

NarzędzieRola
drydockMonitorowanie aktualizacji kontenera — interfejs WWW i silnik powiadomień
portwingZdalny agent Docker — bezpieczny dostęp na poziomie gniazda z poziomu Drydock lub samodzielnego
sockguardSerwer proxy gniazda Docker — domyślny filtr listy dozwolonych chroniący gniazdo
Te trzy narzędzia zaprojektowano z myślą o nakładaniu warstw: sockguard filtruje gniazdo, portwing udostępnia je zdalnie, a drydock monitoruje stan kontenera i oddziałuje na niego. Zobacz plik [portwing's COMPATIBILITY.md](https://github.com/CodesWhat/portwing/blob/main/COMPATIBILITY.md), aby zapoznać się z pełną matrycą kompatybilności wszystkich trzech narzędzi. --- **[Licencja AGPL-3.0](LICENSE)** CodesWhat Powrót do góry