Docker kontajnery sa neaktualizujú samy. Každý deň vychádza tucet aktualizácií — bezpečnostné záplaty, opravy bugov, nové funkcie. Bez automatizácie ich budeš riešiť raz za tri mesiace keď si na to náhodou spomenieš. Watchtower to rieši elegantne: jeden kontajner, ktorý sleduje ostatné a robí aktualizácie za teba.
Prečo automatické aktualizácie
Dôvody sú dva a oba sú rovnako dôležité. Bezpečnosť — neaktualizované kontajnery sú najčastejší vstupný bod útočníkov v homelab prostredí. Zraniteľnosti v závislých knižniciach, base image vrstvách alebo samotnej aplikácii sú reálne. Nové funkcie — Plex, AdGuard, Vaultwarden vydávajú aktualizácie pravidelne. Watchtower zabezpečí, že máš vždy poslednú verziu bez toho aby si musel čokoľvek robiť manuálne.
Štandardne Watchtower kontroluje každých 24 hodín od spustenia — čo môže byť o 20:00 keď pozeráš film cez Plex. Nastavenie CRON plánu na 3:00 ráno tento problém úplne eliminuje.
1. Docker Compose stack
Základná inštalácia — Watchtower beží, kontroluje každú noc o 3:00 a zmaže staré images po aktualizácii:
services:
watchtower:
image: containrrr/watchtower:latest
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- TZ=Europe/Bratislava
- WATCHTOWER_SCHEDULE=0 0 3 * * *
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_INCLUDE_RESTARTING=true
WATCHTOWER_SCHEDULE — CRON výraz kedy sa má kontrolovať. WATCHTOWER_CLEANUP=true — zmaže staré Docker images po aktualizácii (šetrí miesto na disku). WATCHTOWER_INCLUDE_RESTARTING=true — aktualizuje aj kontajnery ktoré sa práve reštartujú.
2. Nastavenie času — CRON formát
Watchtower používa 6-miestny cron výraz: sekundy minúty hodiny deň mesiac deň-týždňa.
Použi Cron Kalkulačku — zadaj ľubovoľný výraz a okamžite uvidíš kedy presne sa spustí, rozklad každého poľa aj zoznam nasledujúcich behov.
| CRON výraz | Popis |
|---|---|
0 0 3 * * * | Každú noc o 3:00 — odporúčané |
0 0 4 * * 1 | Každý pondelok o 4:00 |
0 30 2 * * 0,6 | Každú sobotu a nedeľu o 2:30 |
0 0 2 1 * * | Prvý deň každého mesiaca o 2:00 |
3. Vynechanie kontajnerov
Nie každý kontajner chceš aktualizovať automaticky — napríklad ak potrebuješ špecifickú verziu alebo chceš aktualizácie testovať manuálne. Máš dve možnosti.
Cez label (per-kontajner)
Pridaj label priamo do compose súboru kontajnera ktorý chceš vynechať:
services:
plex:
image: ghcr.io/linuxserver/plex:latest
container_name: PlexHW
labels:
- "com.centurylinklabs.watchtower.enable=false"
# ... ostatné nastavenia
Cez premennú (zoznam)
Ak chceš vynechať viacero kontajnerov naraz, pridaj do Watchtower stack:
environment:
- WATCHTOWER_DISABLE_CONTAINERS=plex,adguardhome,vaultwarden
4. Emailové notifikácie (voliteľné)
Watchtower môže posielať email keď aktualizuje kontajnery. Odporúčam Gmail s App Password — rovnaký postup ako pri Vaultwarden SMTP nastavení.
environment:
- WATCHTOWER_NOTIFICATIONS=email
- WATCHTOWER_NOTIFICATION_EMAIL_FROM=tvoj@gmail.com
- WATCHTOWER_NOTIFICATION_EMAIL_TO=tvoj@gmail.com
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER=smtp.gmail.com
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PORT=587
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_USER=tvoj@gmail.com
- WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD=xxxx-xxxx-xxxx-xxxx
Na myaccount.google.com/apppasswords vygeneruj App Password pre „Mail". Výsledný 16-znakový kód vlož do WATCHTOWER_NOTIFICATION_EMAIL_SERVER_PASSWORD. Tvoje hlavné heslo Gmail nikam nevkladáš.
5. Ďalšie užitočné nastavenia
| Premenná | Popis |
|---|---|
WATCHTOWER_MONITOR_ONLY=true | Len sleduje zmeny a posiela notifikácie — neaktualizuje. Vhodné ak chceš kontrolu pred aktualizáciou. |
WATCHTOWER_ROLLING_RESTART=true | Aktualizuje kontajnery jeden po druhom — minimalizuje downtime pri väčšom počte kontajnerov. |
WATCHTOWER_INCLUDE_STOPPED=true | Aktualizuje aj zastavené kontajnery (nie len bežiace). |
WATCHTOWER_NO_STARTUP_MESSAGE=true | Zakáže uvítaciu notifikáciu pri štarte Watchtower. |
6. Overenie inštalácie
Po nasadení stacku over, že Watchtower beží a naplánoval prvý beh:
docker logs watchtower
Správny výstup vyzerá takto:
time="..." level=info msg="Watchtower 1.x.x"
time="..." level=info msg="Using no notifications"
time="..." level=info msg="Scheduling first run: 2026-04-24 03:00:00"
time="..." level=info msg="Note that the first check will be performed in X hours"
Inštalácia na 2 minúty, výhoda permanentná
Watchtower je jeden z kontajnerov kde návratnosť investície je okamžitá. Nastavíš čas na 3:00 ráno, zapneš cleanup a od tej chvíle máš vždy aktuálny homelab — bez prerušenia Plexu, bez manuálnej práce. Pri kritických kontajneroch ako Vaultwarden alebo AdGuard Home odporúčam pridať label watchtower.enable=false a aktualizovať ich manuálne po overení.