Bonjour,
Voici un tuto, pour ceux qui souhaiterai installer Watchtower en Docker.
Watchtower , c'est quoi ?
Watchtower est un conteneur qui va surveiller vos conteneurs à la recherche de mise a jour disponible ! Si une mise a jour est disponible, alors Watchtower, arrete le conteneur, récupere la nouvelle image, et re-créé le conteneur avec le nouvelle image.
Retrouvez plus d'informations ici : Github Officiel
Disclamer :
Le but de ce tuto sera de rendre cette installation facile et accessible a tous, bien que loin d’être un expert de docker/docker compose, n’hésiter pas à répondre à ce sujet avec vos interrogations, .. Pour ceux qui sont plus a l'aise avec ce genre d'installation, n'hésiter pas a proposer des améliorations, ou des conseils, ...
Pour un support sur Watchtower ne concernant pas une installation via ce tutoriel, merci de poster votre question dans Applications.
Pré-requis :
Avoir Docker et Docker Compose installé sur sa machin, voir [Tuto] Installation de Docker, Docker-compose et Portainer sur Debian 11
Ce connecter en SSH à votre Serveur/NAS, si vous ne savez pas le faire, vous trouverez ici un tuto explicatif : [Tuto] Acceder à son NAS en lignes de commande.
A modifier selon votre installation :
Toute mon installation, va ce faire dans un dossier "watchtower" dans mon dossier "docker"
Je vais donc deposer le fichier de configuration de Watchtower dans
Sommaire :
1/ Création du dossier
2/ Le fichier "docker-compose.yml"
3/ Création et démarrage du conteneur
4/ Utilisation
5/ Les notifications ( Optionnel )
Aller go
1/ Création du dossier
Sur le NAS nous allons devoir créer un dossier watchtower ce dernier contiendra le fichier de configuration du conteneur ( docker-compose.yml ) nécessaire à la configuration et création du conteneur.
En SSH, avec la commande
Vous pouvez aussi créer le dossier watchtower avec cette commande :
Ensuite, avec la commande
Note : A partir de maintenant, toutes les commandes du tutoriel partirons du principe que vous les exécuter depuis le dossier /watchtower
2/ Le fichier "docker-compose.yml"
Nous allons maintenant créer le fichier docker-compose.yml, c'est lui qui contiendra la configuration de notre conteneur.
Pour le créer nous exécutons la commande suivante :
L'éditeur s'ouvre, dedans nous allons copier/coller le code suivant :
Une fois le fichier correctement rempli, vous pouvez quitter l'éditeur avec Ctrl+X et confirmer les modifications.
3/ Création et démarrage du conteneur
Rappel : Nous sommes toujours en SSH, dans notre dossier watchtower
Pour créer le conteneur et le démarrer exécuter la commande suivante :
Note : Si vous exécuter une veille version de docker-compose ( version 1 ) , la commande sera :
Note 2 : Les commandes docker doivent s’exécuter avec les droits root
Si la commande vous retourne "done" ou "Running", c'est que le conteneur est bien lancé !
4/ Utilisation
Maintenant que Watchtower est en route, nous allons lui dire quel conteneur il peu mettre à jour.
Pour cela, il faut rajouter le labels "com.centurylinklabs.watchtower.enable=true" aux conteneurs que watchtower doit surveiller.
Un exemple sur mon compose de jellyfin :
A l'origine, il est comme ceci :
Afin que watchtower surveille le conteneur jellyfin, nous allons rajouter le labels, ce qui donne ceci :
Dans cette exemple, le conteneur jellyfin est surveillé
5/ Les notifications
Voici les arguments a inclure :
Notre compose prend donc cette forme :
Ici, nous allons devoir modifier la variable WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL par l'url du webhooks que va vous fournir Discord.
A la fin de l'url, il faudra rajouter /slack
Exemple sur votre url est alors il faudra renseigner :
Voici les arguments a inclure :
Notre compose prend donc cette forme :
Ici, nous allons devoir modifier la variable WATCHTOWER_NOTIFICATION_GOTIFY_URL par l'url de votre serveur Gotify et WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN par le "token" que vous aurait créer dans la section "App" de Gotify.
Vous trouverez également sur nas-forum.com un autre tuto sur watchtower par .Shad. , avec, entre autre, une explication plus détaillé sur la fréquence de mise à jour.
Voici un tuto, pour ceux qui souhaiterai installer Watchtower en Docker.

Watchtower , c'est quoi ?

Watchtower est un conteneur qui va surveiller vos conteneurs à la recherche de mise a jour disponible ! Si une mise a jour est disponible, alors Watchtower, arrete le conteneur, récupere la nouvelle image, et re-créé le conteneur avec le nouvelle image.
Retrouvez plus d'informations ici : Github Officiel
Disclamer :
Le but de ce tuto sera de rendre cette installation facile et accessible a tous, bien que loin d’être un expert de docker/docker compose, n’hésiter pas à répondre à ce sujet avec vos interrogations, .. Pour ceux qui sont plus a l'aise avec ce genre d'installation, n'hésiter pas a proposer des améliorations, ou des conseils, ...
Pour un support sur Watchtower ne concernant pas une installation via ce tutoriel, merci de poster votre question dans Applications.
Pré-requis :
Avoir Docker et Docker Compose installé sur sa machin, voir [Tuto] Installation de Docker, Docker-compose et Portainer sur Debian 11
Ce connecter en SSH à votre Serveur/NAS, si vous ne savez pas le faire, vous trouverez ici un tuto explicatif : [Tuto] Acceder à son NAS en lignes de commande.
A modifier selon votre installation :
Toute mon installation, va ce faire dans un dossier "watchtower" dans mon dossier "docker"
Je vais donc deposer le fichier de configuration de Watchtower dans
docker/watchtower
Sommaire :
1/ Création du dossier
2/ Le fichier "docker-compose.yml"
3/ Création et démarrage du conteneur
4/ Utilisation
5/ Les notifications ( Optionnel )
A/ via Discord
B/ via Gotify
Aller go

1/ Création du dossier
Sur le NAS nous allons devoir créer un dossier watchtower ce dernier contiendra le fichier de configuration du conteneur ( docker-compose.yml ) nécessaire à la configuration et création du conteneur.
En SSH, avec la commande
cd
nous allons accéder au dossier ou vous souhaitez placer le fichier docker-compose.yml. Dans mon cas c'est /home/tuto/docker, j’exécute donc la commande suivante pour accéder au dossier docker :cd /home/tuto/docker
Vous pouvez aussi créer le dossier watchtower avec cette commande :
mkdir -p watchtower
Ensuite, avec la commande
cd watchtower
, rendez-vous dans le dossier principal de Watchtower que nous venons de créer.Note : A partir de maintenant, toutes les commandes du tutoriel partirons du principe que vous les exécuter depuis le dossier /watchtower
2/ Le fichier "docker-compose.yml"
Nous allons maintenant créer le fichier docker-compose.yml, c'est lui qui contiendra la configuration de notre conteneur.
Pour le créer nous exécutons la commande suivante :
nano docker-compose.yml
L'éditeur s'ouvre, dedans nous allons copier/coller le code suivant :
Code:
version: "2.3"
services:
watchtower:
container_name: watchtower
image: containrrr/watchtower:amd64-latest
restart: unless-stopped
environment:
- TZ=Europe/Paris
- WATCHTOWER_SCHEDULE= 0 0 6 * * *
- WATCHTOWER_LABEL_ENABLE=true
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_REMOVE_VOLUMES=true
- WATCHTOWER_NOTIFICATIONS_LEVEL=debug
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Une fois le fichier correctement rempli, vous pouvez quitter l'éditeur avec Ctrl+X et confirmer les modifications.
3/ Création et démarrage du conteneur
Rappel : Nous sommes toujours en SSH, dans notre dossier watchtower
Pour créer le conteneur et le démarrer exécuter la commande suivante :
docker compose up -d
Note : Si vous exécuter une veille version de docker-compose ( version 1 ) , la commande sera :
docker-compose up -d
Note 2 : Les commandes docker doivent s’exécuter avec les droits root
Si la commande vous retourne "done" ou "Running", c'est que le conteneur est bien lancé !
4/ Utilisation
Maintenant que Watchtower est en route, nous allons lui dire quel conteneur il peu mettre à jour.
Pour cela, il faut rajouter le labels "com.centurylinklabs.watchtower.enable=true" aux conteneurs que watchtower doit surveiller.
Un exemple sur mon compose de jellyfin :
A l'origine, il est comme ceci :
Code:
version: "3"
services:
jellyfin:
image: linuxserver/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
environment:
- PUID=9999
- PGID=111
- TZ=Europe/Paris
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
ports:
- 8096:8096
volumes:
- ./config:/config
- ./cache:/cache
Afin que watchtower surveille le conteneur jellyfin, nous allons rajouter le labels, ce qui donne ceci :
Code:
version: "3"
services:
jellyfin:
image: linuxserver/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
labels:
- com.centurylinklabs.watchtower.enable=true
environment:
- PUID=9999
- PGID=111
- TZ=Europe/Paris
devices:
- /dev/dri/renderD128:/dev/dri/renderD128
sysctls:
- net.ipv6.conf.all.disable_ipv6=0
ports:
- 8096:8096
volumes:
- ./config:/config
- ./cache:/cache
Dans cette exemple, le conteneur jellyfin est surveillé

5/ Les notifications
B/ via Discord
Pour utiliser les notifications Discord, nous allons modifier notre docker-compose afin d'y inclure quelques arguments supplémentaires.Voici les arguments a inclure :
Code:
- WATCHTOWER_NOTIFICATIONS=slack
- WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER=Watchtower
- WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=https://discordapp.com/api/webhooks/
Notre compose prend donc cette forme :
Code:
version: "2.3"
services:
watchtower:
container_name: watchtower
image: containrrr/watchtower:amd64-latest
restart: unless-stopped
environment:
- TZ=Europe/Paris
- WATCHTOWER_SCHEDULE= 0 0 6 * * *
- WATCHTOWER_LABEL_ENABLE=true
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_REMOVE_VOLUMES=true
- WATCHTOWER_NOTIFICATIONS_LEVEL=debug
- WATCHTOWER_NOTIFICATIONS=slack
- WATCHTOWER_NOTIFICATION_SLACK_IDENTIFIER=Watchtower
- WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL=https://discordapp.com/api/webhooks/
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Ici, nous allons devoir modifier la variable WATCHTOWER_NOTIFICATION_SLACK_HOOK_URL par l'url du webhooks que va vous fournir Discord.
A la fin de l'url, il faudra rajouter /slack
Exemple sur votre url est alors il faudra renseigner :
B/ via Gotify
Pour utiliser les notifications Gotify, nous allons modifier notre docker-compose afin d'y inclure quelques arguments supplémentaires.Voici les arguments a inclure :
Code:
- WATCHTOWER_NOTIFICATIONS=gotify
- WATCHTOWER_NOTIFICATION_GOTIFY_URL=https://gotify
- WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN=xxxxxxxxxxx
Notre compose prend donc cette forme :
Code:
version: "2.3"
services:
watchtower:
container_name: watchtower
image: containrrr/watchtower:amd64-latest
restart: unless-stopped
environment:
- TZ=Europe/Paris
- WATCHTOWER_SCHEDULE= 0 0 6 * * *
- WATCHTOWER_LABEL_ENABLE=true
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_REMOVE_VOLUMES=true
- WATCHTOWER_NOTIFICATIONS_LEVEL=debug
- WATCHTOWER_NOTIFICATIONS=gotify
- WATCHTOWER_NOTIFICATION_GOTIFY_URL=https://gotify
- WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN=xxxxxxxxxxx
volumes:
- /var/run/docker.sock:/var/run/docker.sock
Ici, nous allons devoir modifier la variable WATCHTOWER_NOTIFICATION_GOTIFY_URL par l'url de votre serveur Gotify et WATCHTOWER_NOTIFICATION_GOTIFY_TOKEN par le "token" que vous aurait créer dans la section "App" de Gotify.
Vous trouverez également sur nas-forum.com un autre tuto sur watchtower par .Shad. , avec, entre autre, une explication plus détaillé sur la fréquence de mise à jour.
2022-05-17 - Création du tuto
Dernière édition: