> [!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)**.
| 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
Znajdź aktualizację, zobacz dokładnie, jakie zmiany i zastosuj ją. Obsługiwane kopie zapasowe, sprawdzanie stanu i przywracanie zmian.
Światło
Ciemny
**Po co oglądać zrzuty ekranu, skoro możesz tego doświadczyć na własnej skórze?**
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
> 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.
> 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.
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ędzie
Rola
drydock
Monitorowanie aktualizacji kontenera — interfejs WWW i silnik powiadomień
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)**
Powrót do góry