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/watchtowerSommaire :
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/dockerVous pouvez aussi créer le dossier watchtower avec cette commande :
mkdir -p watchtowerEnsuite, 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.ymlL'é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.sockUne 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 -dNote : Si vous exécuter une veille version de docker-compose ( version 1 ) , la commande sera :
docker-compose up -dNote 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:/cacheAfin 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:/cacheDans 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.sockIci, 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=xxxxxxxxxxxNotre 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.sockIci, 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: 
				
		
	
										
										
											
	
										
									
								 
	 
	 
 
		
 
 
		