Post

⌚WatchTower - Automatiser les mises à jour conteneur docker

⌚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_xxxxxxxxxxxxxxxxxxxxxxxxxxx par votre <TOKEN>
Pour exécuter Watchtower tous les jours à 4h25 du matin, on a ajouté la variable WATCHTOWER_SCHEDULE avec 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_URL par : 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"

La notification ntfy

Cet article est sous licence CC BY 4.0 par l'auteur.