⌚WatchTower - Automatiser les mises à jour conteneur docker
Installer watchtower avec envoi notification lorsqu’une mise à jour a été effectuée (notification ntfy privée avec token ntfy.rnmkcy.eu/yan_infos)
Docker watchtower
on va configurer Watchtower pour appeler votre endpoint Apprise après une mise à jour.
Voici les étapes concises pour désinstaller le conteneur Watchtower, si existant, et le remplacer par une instance gérée par docker-compose.
1
2
3
4
# Arrêter
docker stop watchtower
# Supprimer
docker rm watchtower
si lancé avec --restart always, l’arrêt puis la suppression suffit
docker-compose.yml
A- Machine cwwk
Création fichier docker-compose.yml dans le dossier $HOME/sharenfs/docker-app
1
2
mkdir -p $HOME/sharenfs/docker-app/watchtower
nano $HOME/sharenfs/docker-app/watchtower/docker-compose.yml
B- Autres Machines
Création fichier docker-compose.yml dans le dossier $HOME/watchtower
1
2
mkdir -p $HOME/watchtower
nano $HOME/watchtower/docker-compose.yml
C- Ajouter le contenu suivant et sauvegarder
1
2
3
4
5
6
7
8
9
10
11
12
13
services:
watchtower:
image: nickfedor/watchtower:latest
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_NOTIFICATIONS=shoutrrr
- WATCHTOWER_NOTIFICATION_URL=ntfy://:tk_xxxxxxxxxxxxxxxxxxxxxxxxxxx@ntfy.rnmkcy.eu/yan_infos?title=WatchtowerUpdates
- WATCHTOWER_NOTIFICATION_LEVEL=info
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_SCHEDULE=0 25 4 * * *
Remplacer
tk_xxxxxxxxxxxxxxxxxxxxxxxxxxxpar votre<TOKEN>
Pour exécuter Watchtower tous les jours à 4h25 du matin, on a ajouté la variableWATCHTOWER_SCHEDULEavec le format Cron
Email + Priority (A TESTER)
A-Comment ajouter l’envoi d’un mail ("X-Email: ntfy@cinay.eu") dans WATCHTOWER_NOTIFICATION_URL
Ajoutez l’en-tête X-Email dans l’URL ntfy en l’encodant comme paramètre d’URL ; ntfy accepte les headers via query param nommé headers. Exemple pour ajouter “X-Email: ntfy@cinay.eu” :
- Remplacez le
WATCHTOWER_NOTIFICATION_URLpar : ntfy://:tk_xxxxxxxxxxxxxxxxxxxxxxxxxxx@ntfy.rnmkcy.eu/yan_infos?title=WatchtowerUpdates&headers=X-Email%3Antfy%40cinay.eu
Exemple complet dans le compose :
1
- WATCHTOWER_NOTIFICATION_URL=ntfy://:tk_xxxxxxxxxxxxxxxxxxxxxxxxxxx@ntfy.rnmkcy.eu/yan_infos?title=WatchtowerUpdates&headers=X-Email%3Antfy%40cinay.eu
Notes :
%3A=:,%40=@(URL-encoding requis).- Si vous voulez plusieurs en-têtes, séparez-les par
,et encodez la virgule si nécessaire.
B-ajouter -H "Priority: low"
Ajoutez-le comme un en-tête supplémentaire dans le paramètre headers, en URL-encodant : et les séparateurs. Exemple avec les deux en-têtes :
- Valeur décodée des headers : X-Email: ntfy@cinay.eu, Priority: low
- URL-encodée (
,-> %2C,:-> %3A,@-> %40) : headers=X-Email%3Antfy%40cinay.eu%2CPriority%3A%20low
Ligne complète X-Email+Priority :
1
- WATCHTOWER_NOTIFICATION_URL=ntfy://:tk_xxxxxxxxxxxxxxxxxxxxxxxxxxx@ntfy.rnmkcy.eu/yan_infos?title=WatchtowerUpdates&headers=X-Email%3Antfy%40cinay.eu%2CPriority%3A%20low
Lancer via docker-compose
Depuis le répertoire où est le docker-compose.yml :
1
2
3
# Machine cwwk
cd $HOME/sharenfs/docker-app/watchtower
docker compose up -d
1
2
3
# Autres Machines
cd $HOME/watchtower
docker compose up -d
(ou docker-compose up -d selon votre installation)
Vérifications
1
2
# Vérifier les logs
docker logs watchtower
Logs
1
2
3
time="2026-06-13T13:01:37Z" level=info msg="Watchtower 1.18.1 using Docker API v1.54"
time="2026-06-13T13:01:37Z" level=info msg="Using notifications: ntfy"
time="2026-06-13T13:01:37Z" level=info msg="Next scheduled run: 2026-06-14 04:25:00 UTC in 15 hours 23 minutes 22 seconds"

