# WatchTower

- Link: https://dpioch.aristeecampus.org/homelab/watchtower/
- Published: 2026-11-12T10:40:59+01:00
- Author: Admin

![Logo de WatchTower](https://dpioch.aristeecampus.org/wp-content/uploads/2026/11/
Logo-officiel-WatchTower.png)

Projet personnel · DozyLab

WatchTower est l’application web que j’ai développée pour piloter mon laboratoire
depuis une seule console : un registre de l’infrastructure, la lecture des services
en direct (virtualisation, sauvegardes, annuaire, DNS, supervision, sécurité) et
les gestes d’administration courants, chacun confirmé avant d’être exécuté. Cette
page en présente chaque écran. Les captures montrent la version en service, alimentée
par un relevé en lecture seule des données du laboratoire au 12 novembre 2026 ; 
les adresses IP, les noms de domaine internes et les comptes y sont masqués.

[Retour au homelab](https://dpioch.aristeecampus.org/homelab/#projets-automatisation)
[Procédure de déploiement](https://dpioch.aristeecampus.org/procedure/deploiement-de-watchtower/)

[Principe](https://dpioch.aristeecampus.org/homelab/watchtower/#principe)[Pilotage](https://dpioch.aristeecampus.org/homelab/watchtower/#pilotage)
[Infrastructure](https://dpioch.aristeecampus.org/homelab/watchtower/#infrastructure)
[Réseau](https://dpioch.aristeecampus.org/homelab/watchtower/#reseau)[Sécurité](https://dpioch.aristeecampus.org/homelab/watchtower/#securite)
[Opérations](https://dpioch.aristeecampus.org/homelab/watchtower/#operations)[Paramètres et registres](https://dpioch.aristeecampus.org/homelab/watchtower/#parametres)
[Mobile](https://dpioch.aristeecampus.org/homelab/watchtower/#mobile)[Technique](https://dpioch.aristeecampus.org/homelab/watchtower/#technique)

## Ce que c’est

Un registre et une console, pas un tableau de bord de plus.

Le laboratoire compte trois hyperviseurs Proxmox VE, seize machines virtuelles et
conteneurs, un pare-feu, un commutateur et une quinzaine de services, chacun avec
sa propre interface. WatchTower les réunit : il interroge chaque service par son
API, avec un compte dédié, et présente l’ensemble dans une navigation unique, classée
par domaine.

Chaque valeur affichée porte son origine : l’inventaire (ce que le registre déclare),
une décision (ce que j’ai tranché), une mesure (ce qu’un collecteur a observé, avec
son heure) ou « à compléter ». Rien n’est inventé : une source injoignable s’affiche
comme telle, une mesure trop ancienne est signalée, et une liste partielle n’est
jamais présentée comme un total.

Les écrans sont en lecture par défaut. Les modifications (créer un hôte proxy, un
compte de l’annuaire, une étendue DHCP, acquitter un problème) passent par un formulaire
et une confirmation explicite.

[⌊Vue d’ensemble de WatchTower : navigation par domaine à gauche, indicateurs du
cluster, état des trois nœuds Proxmox et problèmes relevés.⌉⌊Vue d’ensemble de WatchTower:
navigation par domaine à gauche, indicateurs du cluster, état des trois nœuds Proxmox
et problèmes relevés.⌉⌊Vue d’ensemble de WatchTower : navigation par domaine à gauche,
indicateurs du cluster, état des trois nœuds Proxmox et problèmes relevés.⌉⌊Vue 
d’ensemble de WatchTower : navigation par domaine à gauche, indicateurs du cluster,
état des trois nœuds Proxmox et problèmes relevés.⌉[

La vue d’ensemble : à gauche, la navigation par domaine ; au centre, les indicateurs
du cluster (3 nœuds en ligne, 16 charges actives, 67,5 % de mémoire utilisée), l’état
de chaque nœud et les problèmes remontés par Proxmox.

## Pilotage

L’état général, le schéma de l’infrastructure et les alertes.

### Vue d’ensemble

La page d’accueil réunit un bandeau d’indicateurs (nœuds en ligne, machines et conteneurs
actifs, mémoire du cluster, alertes non lues, dernière sauvegarde), l’état des nœuds
Proxmox, les problèmes détectés et les dernières alertes. Les blocs se réordonnent
ou se masquent depuis les paramètres.

[⌊Suite de la vue d’ensemble : liste des problèmes Proxmox, tâches en erreur et 
dernières alertes Suricata.⌉⌊Suite de la vue d’ensemble : liste des problèmes Proxmox,
tâches en erreur et dernières alertes Suricata.⌉⌊Suite de la vue d’ensemble : liste
des problèmes Proxmox, tâches en erreur et dernières alertes Suricata.⌉⌊Suite de
la vue d’ensemble : liste des problèmes Proxmox, tâches en erreur et dernières alertes
Suricata.⌉[

Suite de la page : problèmes relevés, tâches en erreur et dernières alertes reçues.

[⌊Vue d’ensemble de WatchTower en thème sombre.⌉⌊Vue d’ensemble de WatchTower en
thème sombre.⌉[

La même page en thème sombre.

### Topologie

Le schéma de l’infrastructure se lit sous trois angles : la segmentation (quel équipement
et quel service dans quel VLAN), l’hébergement (quel hyperviseur porte quelle machine)
et les dépendances de service. C’est le moteur du schéma réseau de la page Homelab
de ce portfolio, alimenté ici par les sources du laboratoire. L’en-tête indique,
pour chaque source, sa fraîcheur et sa couverture : une liaison documentée n’est
pas présentée comme une liaison vérifiée.

[⌊Topologie, onglet Segmentation : état des sources et début du schéma réseau.⌉⌊
Topologie, onglet Segmentation : état des sources et début du schéma réseau.⌉⌊Topologie,
onglet Segmentation : état des sources et début du schéma réseau.⌉⌊Topologie, onglet
Segmentation : état des sources et début du schéma réseau.⌉[

Onglet Segmentation : état et couverture des sources, puis le schéma.

[⌊Topologie : schéma des hyperviseurs et des machines hébergées.⌉⌊Topologie : schéma
des hyperviseurs et des machines hébergées.⌉⌊Topologie : schéma des hyperviseurs
et des machines hébergées.⌉⌊Topologie : schéma des hyperviseurs et des machines 
hébergées.⌉[

Le schéma : les trois hyperviseurs et les machines qu’ils hébergent.

[⌊Topologie, onglet Hébergement.⌉⌊Topologie, onglet Hébergement.⌉⌊Topologie, onglet
Hébergement.⌉⌊Topologie, onglet Hébergement.⌉[

Onglet Hébergement.

[⌊Topologie, onglet Dépendances de service.⌉⌊Topologie, onglet Dépendances de service.⌉⌊
Topologie, onglet Dépendances de service.⌉⌊Topologie, onglet Dépendances de service
.⌉[

Onglet Dépendances de service.

### Alertes

Une boîte de réception conserve les bulletins quotidiens (SOC, CVE, homelab), les
incidents et les retours à la normale, même sans notification activée. Les envois
vers Discord, Telegram ou en notification du navigateur sont optionnels ; les incidents
poussés sont plafonnés à dix par heure, le reste attend dans la boîte.

[⌊Boîte de réception des alertes de WatchTower, filtrable par catégorie.⌉⌊Boîte 
de réception des alertes de WatchTower, filtrable par catégorie.⌉⌊Boîte de réception
des alertes de WatchTower, filtrable par catégorie.⌉⌊Boîte de réception des alertes
de WatchTower, filtrable par catégorie.⌉[

La boîte de réception, filtrable par catégorie ; ici, des incidents remontés par
la sonde Suricata.

### Mode TV et répertoire des services

Le mode TV affiche la synthèse en plein écran, sans défilement, pour un écran laissé
allumé. Le répertoire liste les dix-sept services par domaine, avec une recherche.

[⌊Mode TV de WatchTower : indicateurs du cluster en grand format.⌉⌊Mode TV de WatchTower:
indicateurs du cluster en grand format.⌉⌊Mode TV de WatchTower : indicateurs du 
cluster en grand format.⌉⌊Mode TV de WatchTower : indicateurs du cluster en grand
format.⌉[

Mode TV : les indicateurs en grand format.

[⌊Répertoire des services de WatchTower, classés par domaine.⌉⌊Répertoire des services
de WatchTower, classés par domaine.⌉⌊Répertoire des services de WatchTower, classés
par domaine.⌉⌊Répertoire des services de WatchTower, classés par domaine.⌉[

Le répertoire des services.

## Infrastructure

Virtualisation, sauvegardes et contrôleur de domaine.

### ProxPanel

ProxPanel, l’interface d’administration Proxmox du laboratoire, s’ouvre dans un 
onglet de WatchTower sans quitter la console. Les hôtes et les identifiants Proxmox
restent gérés par ProxPanel : WatchTower ne les recopie pas.

### Proxmox Backup Server

Trois onglets en lecture seule. La vue d’ensemble donne la couverture des sauvegardes
par invité et par nœud, avec le nombre de sauvegardes vérifiées ; « Tâches » liste
les dernières tâches du serveur ; « Retards » compare l’âge de la dernière sauvegarde
de chaque invité à un seuil réglable.

[⌊PBS, vue d’ensemble : couverture des sauvegardes, sauvegardes visibles et vérifiées,
répartition par nœud.⌉⌊PBS, vue d’ensemble : couverture des sauvegardes, sauvegardes
visibles et vérifiées, répartition par nœud.⌉⌊PBS, vue d’ensemble : couverture des
sauvegardes, sauvegardes visibles et vérifiées, répartition par nœud.⌉⌊PBS, vue 
d’ensemble : couverture des sauvegardes, sauvegardes visibles et vérifiées, répartition
par nœud.⌉[

Vue d’ensemble : 16 invités, 176 sauvegardes visibles dont 144 vérifiées, et la 
répartition par nœud.

[⌊PBS, onglet Retards : âge de la dernière sauvegarde de chaque invité comparé au
seuil.⌉⌊PBS, onglet Retards : âge de la dernière sauvegarde de chaque invité comparé
au seuil.⌉⌊PBS, onglet Retards : âge de la dernière sauvegarde de chaque invité 
comparé au seuil.⌉⌊PBS, onglet Retards : âge de la dernière sauvegarde de chaque
invité comparé au seuil.⌉[

Onglet Retards : le 12 novembre, les dernières sauvegardes dataient de plus de 24
heures et sont donc signalées.

### Windows Server

Le contrôleur de domaine DC01 s’administre sans ouvrir de session dessus : WatchTower
passe par l’agent invité de Proxmox et n’exécute que des commandes PowerShell fixes.
Sept onglets couvrent l’état du serveur, l’annuaire Active Directory, les stratégies
de groupe, le DNS, le DHCP, l’autorité de certification et les journaux d’événements.

[⌊Windows Server, tableau de bord : état de DC01, résumé Active Directory et services
Windows.⌉⌊Windows Server, tableau de bord : état de DC01, résumé Active Directory
et services Windows.⌉⌊Windows Server, tableau de bord : état de DC01, résumé Active
Directory et services Windows.⌉⌊Windows Server, tableau de bord : état de DC01, 
résumé Active Directory et services Windows.⌉[

Tableau de bord : état du serveur, résumé de l’annuaire et services.

[⌊Windows Server, suite du tableau de bord : services, DNS, DHCP, AD CS, stockage
et diagnostics à la demande.⌉⌊Windows Server, suite du tableau de bord : services,
DNS, DHCP, AD CS, stockage et diagnostics à la demande.⌉⌊Windows Server, suite du
tableau de bord : services, DNS, DHCP, AD CS, stockage et diagnostics à la demande.⌉⌊
Windows Server, suite du tableau de bord : services, DNS, DHCP, AD CS, stockage 
et diagnostics à la demande.⌉[

Suite : DNS, DHCP, autorité de certification, stockage et diagnostics lancés à la
demande (dcdiag, réplication, heure).

[⌊Windows Server, utilisateurs et ordinateurs Active Directory : arborescence et
liste des comptes.⌉⌊Windows Server, utilisateurs et ordinateurs Active Directory:
arborescence et liste des comptes.⌉⌊Windows Server, utilisateurs et ordinateurs 
Active Directory : arborescence et liste des comptes.⌉⌊Windows Server, utilisateurs
et ordinateurs Active Directory : arborescence et liste des comptes.⌉[

Utilisateurs et ordinateurs : arborescence du domaine et comptes.

[⌊Windows Server, stratégies de groupe : liste des GPO, liens et versions.⌉⌊Windows
Server, stratégies de groupe : liste des GPO, liens et versions.⌉⌊Windows Server,
stratégies de groupe : liste des GPO, liens et versions.⌉⌊Windows Server, stratégies
de groupe : liste des GPO, liens et versions.⌉[

Stratégies de groupe : liens, versions et rapport.

[⌊Windows Server, gestionnaire DNS : redirecteurs et zones.⌉⌊Windows Server, gestionnaire
DNS : redirecteurs et zones.⌉⌊Windows Server, gestionnaire DNS : redirecteurs et
zones.⌉⌊Windows Server, gestionnaire DNS : redirecteurs et zones.⌉[

DNS : redirecteurs et zones du contrôleur.

[⌊Windows Server, serveur DHCP : étendues par VLAN et taux d’occupation.⌉⌊Windows
Server, serveur DHCP : étendues par VLAN et taux d’occupation.⌉⌊Windows Server, 
serveur DHCP : étendues par VLAN et taux d’occupation.⌉⌊Windows Server, serveur 
DHCP : étendues par VLAN et taux d’occupation.⌉[

DHCP : une étendue par VLAN, avec son occupation.

[⌊Windows Server, services de certificats : autorité racine et certificats émis.⌉⌊
Windows Server, services de certificats : autorité racine et certificats émis.⌉⌊
Windows Server, services de certificats : autorité racine et certificats émis.⌉⌊
Windows Server, services de certificats : autorité racine et certificats émis.⌉[

AD CS : l’autorité racine interne et les certificats émis, exportables ou révocables.

[⌊Windows Server, observateur d’événements filtré par journal et niveau.⌉⌊Windows
Server, observateur d’événements filtré par journal et niveau.⌉⌊Windows Server, 
observateur d’événements filtré par journal et niveau.⌉⌊Windows Server, observateur
d’événements filtré par journal et niveau.⌉[

Journaux : l’observateur d’événements, filtré par journal et par niveau.

## Réseau

Publication des services et résolution de noms.

### Nginx Proxy Manager

Les hôtes du reverse proxy et leurs certificats, lus par l’API de Nginx Proxy Manager:
domaine, service cible, redirection TLS et échéance de chaque certificat. Un hôte
se crée, se modifie ou se désactive depuis cet écran.

[⌊Nginx Proxy Manager dans WatchTower : liste des hôtes proxy avec cible, état et
certificat.⌉⌊Nginx Proxy Manager dans WatchTower : liste des hôtes proxy avec cible,
état et certificat.⌉⌊Nginx Proxy Manager dans WatchTower : liste des hôtes proxy
avec cible, état et certificat.⌉⌊Nginx Proxy Manager dans WatchTower : liste des
hôtes proxy avec cible, état et certificat.⌉[

Hôtes proxy : 17 hôtes, leur cible et leur certificat.

[⌊Nginx Proxy Manager dans WatchTower : certificats avec date d’expiration et statut.⌉⌊
Nginx Proxy Manager dans WatchTower : certificats avec date d’expiration et statut.⌉⌊
Nginx Proxy Manager dans WatchTower : certificats avec date d’expiration et statut.⌉⌊
Nginx Proxy Manager dans WatchTower : certificats avec date d’expiration et statut
.⌉[

Certificats : échéance et jours restants.

### Technitium DNS

Les zones du serveur DNS interne, avec leurs enregistrements, et les statistiques
de résolution : volume de requêtes, part bloquée, domaines et clients les plus actifs.
Un troisième onglet, prévu pour l’application de blocage avancé, n’était pas alimenté
lors du relevé.

[⌊Technitium DNS dans WatchTower : liste des zones avec type, DNSSEC et numéro de
série.⌉⌊Technitium DNS dans WatchTower : liste des zones avec type, DNSSEC et numéro
de série.⌉⌊Technitium DNS dans WatchTower : liste des zones avec type, DNSSEC et
numéro de série.⌉⌊Technitium DNS dans WatchTower : liste des zones avec type, DNSSEC
et numéro de série.⌉[

Zones : type, signature DNSSEC et numéro de série.

[⌊Technitium DNS dans WatchTower : statistiques de requêtes sur la dernière heure.⌉⌊
Technitium DNS dans WatchTower : statistiques de requêtes sur la dernière heure.⌉⌊
Technitium DNS dans WatchTower : statistiques de requêtes sur la dernière heure.⌉⌊
Technitium DNS dans WatchTower : statistiques de requêtes sur la dernière heure.⌉[

Statistiques : 5 044 requêtes sur la dernière heure, dont 5,7 % bloquées.

## Sécurité

Supervision, journaux, détection sur les hôtes et sur le réseau.

### Zabbix

Le parc supervisé (agents et équipements interrogés en SNMP), les problèmes en cours
classés par sévérité, que l’on peut acquitter, et les tendances d’un hôte sur 24
heures.

[⌊Zabbix dans WatchTower : hôtes supervisés avec type, état, disponibilité et durée
de fonctionnement.⌉⌊Zabbix dans WatchTower : hôtes supervisés avec type, état, disponibilité
et durée de fonctionnement.⌉⌊Zabbix dans WatchTower : hôtes supervisés avec type,
état, disponibilité et durée de fonctionnement.⌉⌊Zabbix dans WatchTower : hôtes 
supervisés avec type, état, disponibilité et durée de fonctionnement.⌉[

Hôtes : 17 machines et équipements supervisés.

[⌊Zabbix dans WatchTower : problèmes en cours par sévérité.⌉⌊Zabbix dans WatchTower:
problèmes en cours par sévérité.⌉⌊Zabbix dans WatchTower : problèmes en cours par
sévérité.⌉⌊Zabbix dans WatchTower : problèmes en cours par sévérité.⌉[

Problèmes : classés par sévérité, avec acquittement.

[⌊Zabbix dans WatchTower : courbes de tendance d’un hôte sur 24 heures.⌉⌊Zabbix 
dans WatchTower : courbes de tendance d’un hôte sur 24 heures.⌉⌊Zabbix dans WatchTower:
courbes de tendance d’un hôte sur 24 heures.⌉⌊Zabbix dans WatchTower : courbes de
tendance d’un hôte sur 24 heures.⌉[

Tendances : processeur, mémoire et réseau d’un hôte sur 24 heures.

### Prometheus

L’état du serveur de métriques, ses cibles de collecte, quelques métriques clés 
en direct, les règles d’alerte et un explorateur de requêtes PromQL.

[⌊Prometheus dans WatchTower : cibles de collecte et leur santé.⌉⌊Prometheus dans
WatchTower : cibles de collecte et leur santé.⌉⌊Prometheus dans WatchTower : cibles
de collecte et leur santé.⌉⌊Prometheus dans WatchTower : cibles de collecte et leur
santé.⌉[

Cibles : santé et dernier relevé de chaque point de collecte.

[⌊Prometheus dans WatchTower : métriques clés en temps réel.⌉⌊Prometheus dans WatchTower:
métriques clés en temps réel.⌉⌊Prometheus dans WatchTower : métriques clés en temps
réel.⌉⌊Prometheus dans WatchTower : métriques clés en temps réel.⌉[

Métriques : processeur, mémoire, stockage et débit réseau.

[⌊Prometheus dans WatchTower : explorateur PromQL et résultat d’une requête.⌉⌊Prometheus
dans WatchTower : explorateur PromQL et résultat d’une requête.⌉⌊Prometheus dans
WatchTower : explorateur PromQL et résultat d’une requête.⌉⌊Prometheus dans WatchTower:
explorateur PromQL et résultat d’une requête.⌉[

Explorateur PromQL : la requête « up » et son résultat.

### Wazuh

La sécurité des hôtes : agents et leur état, alertes avec leur niveau et la technique
MITRE ATT&CK associée, contrôle d’intégrité des fichiers et réponses actives (ces
deux derniers onglets ne sont pas reproduits : ils listent des chemins de fichiers
internes).

[⌊Wazuh dans WatchTower : liste des agents avec état, système et version.⌉⌊Wazuh
dans WatchTower : liste des agents avec état, système et version.⌉⌊Wazuh dans WatchTower:
liste des agents avec état, système et version.⌉⌊Wazuh dans WatchTower : liste des
agents avec état, système et version.⌉[

Agents : état, système et groupe de chaque agent.

[⌊Wazuh dans WatchTower : alertes avec niveau, règle, agent et technique MITRE.⌉⌊
Wazuh dans WatchTower : alertes avec niveau, règle, agent et technique MITRE.⌉⌊Wazuh
dans WatchTower : alertes avec niveau, règle, agent et technique MITRE.⌉⌊Wazuh dans
WatchTower : alertes avec niveau, règle, agent et technique MITRE.⌉[

Alertes : règle déclenchée, agent et technique ATT&CK.

### Loki et Grafana

Loki donne accès aux journaux centralisés : filtres par étiquette, sévérité et fenêtre
de temps, requête LogQL bornée et suivi en direct. L’écran Grafana résume le serveur
de tableaux de bord : tableaux, alertes, sources de données et état.

[⌊Loki dans WatchTower : filtres de journaux et requête LogQL.⌉⌊Loki dans WatchTower:
filtres de journaux et requête LogQL.⌉⌊Loki dans WatchTower : filtres de journaux
et requête LogQL.⌉⌊Loki dans WatchTower : filtres de journaux et requête LogQL.⌉[

Loki : filtres, requête et suivi en direct.

[⌊Grafana dans WatchTower : sources de données configurées.⌉⌊Grafana dans WatchTower:
sources de données configurées.⌉⌊Grafana dans WatchTower : sources de données configurées.⌉⌊
Grafana dans WatchTower : sources de données configurées.⌉[

Grafana : les sources de données configurées.

### CrowdSec

Les décisions de blocage connues de l’API locale de CrowdSec, avec leur scénario,
leur origine et leur durée restante. La page liste ce que la source fournit et n’en
déduit rien de plus.

[⌊CrowdSec dans WatchTower : décisions de blocage avec scénario, origine et durée.⌉⌊
CrowdSec dans WatchTower : décisions de blocage avec scénario, origine et durée.⌉⌊
CrowdSec dans WatchTower : décisions de blocage avec scénario, origine et durée.⌉⌊
CrowdSec dans WatchTower : décisions de blocage avec scénario, origine et durée.⌉[

Décisions : 4 291 reçues le 12 novembre, issues pour l’essentiel des listes communautaires.

### Suricata

Les alertes de la sonde réseau, l’état du moteur et le catalogue des règles. La 
sonde écoute une copie du trafic : elle détecte, elle ne bloque pas, et l’écran 
le rappelle.

[⌊Suricata dans WatchTower : alertes avec signature, sévérité, protocole et verdict.⌉⌊
Suricata dans WatchTower : alertes avec signature, sévérité, protocole et verdict.⌉⌊
Suricata dans WatchTower : alertes avec signature, sévérité, protocole et verdict.⌉⌊
Suricata dans WatchTower : alertes avec signature, sévérité, protocole et verdict
.⌉[

Alertes : signature, sévérité, protocole et verdict de chaque événement.

## Opérations

Accès distant, automatisation, versions et agent.

### Guacamole

L’accès distant aux machines, organisé comme un gestionnaire de connexions : arborescence
des cibles, connexion rapide, détails de la sélection et onglets de sessions. Le
bureau ou le terminal s’affiche dans la page et reste ouvert pendant la navigation.

[⌊Accès distant dans WatchTower : liste des machines SSH et RDP et zone du bureau
distant.⌉⌊Accès distant dans WatchTower : liste des machines SSH et RDP et zone 
du bureau distant.⌉⌊Accès distant dans WatchTower : liste des machines SSH et RDP
et zone du bureau distant.⌉⌊Accès distant dans WatchTower : liste des machines SSH
et RDP et zone du bureau distant.⌉[

Accès distant : 20 cibles (SSH et RDP) et la zone de session.

### n8n

Les workflows d’automatisation et leurs exécutions. « Voir » ouvre le graphe d’un
workflow en plein écran, redessiné à partir de sa définition et débarrassé de ses
paramètres.

[⌊n8n dans WatchTower : liste des workflows actifs.⌉⌊n8n dans WatchTower : liste
des workflows actifs.⌉⌊n8n dans WatchTower : liste des workflows actifs.⌉⌊n8n dans
WatchTower : liste des workflows actifs.⌉[

Workflows : les sept workflows actifs.

[⌊n8n dans WatchTower : historique des exécutions avec statut et durée.⌉⌊n8n dans
WatchTower : historique des exécutions avec statut et durée.⌉⌊n8n dans WatchTower:
historique des exécutions avec statut et durée.⌉⌊n8n dans WatchTower : historique
des exécutions avec statut et durée.⌉[

Exécutions : statut, début, fin et durée.

### Code et versions

Les notes de version de WatchTower, produites à partir de l’historique Git (messages
de commit normalisés), et les dépôts de la forge Gitea du laboratoire.

[⌊Code et versions dans WatchTower : notes de version classées par type de changement.⌉⌊
Code et versions dans WatchTower : notes de version classées par type de changement.⌉⌊
Code et versions dans WatchTower : notes de version classées par type de changement.⌉⌊
Code et versions dans WatchTower : notes de version classées par type de changement
.⌉[

Notes de version, classées par type de changement.

### Hermes

L’écran de conversation avec Hermes, l’agent du laboratoire présenté sur [sa propre page](https://dpioch.aristeecampus.org/hermes/):
liste des sessions, fil de la conversation avec le suivi des appels d’outils, et
validation explicite des actions sensibles. Trois autres onglets gèrent ses compétences,
sa mémoire et ses modèles ; leur contenu, privé, n’est pas reproduit ici.

[⌊Écran Hermes de WatchTower : liste des sessions (titres masqués) et zone de conversation.⌉⌊
Écran Hermes de WatchTower : liste des sessions (titres masqués) et zone de conversation.⌉⌊
Écran Hermes de WatchTower : liste des sessions (titres masqués) et zone de conversation.⌉⌊
Écran Hermes de WatchTower : liste des sessions (titres masqués) et zone de conversation
.⌉[

Conversation : les titres des sessions et le modèle sont masqués.

## Paramètres et registres

Les connecteurs, l’apparence et la mémoire écrite du laboratoire.

### Connecteurs et affichage

Chaque service se raccorde ici : adresse, identifiants ou clé d’API, vérification
du certificat. Tout est chiffré sur le serveur et une clé enregistrée n’est plus
jamais réaffichée. Un test de connexion indique si la source répond et en combien
de temps. La même section règle les bulletins et les envois de notifications.

[⌊Paramètres de WatchTower : liste des connecteurs avec état, latence et dernière
sonde.⌉⌊Paramètres de WatchTower : liste des connecteurs avec état, latence et dernière
sonde.⌉⌊Paramètres de WatchTower : liste des connecteurs avec état, latence et dernière
sonde.⌉⌊Paramètres de WatchTower : liste des connecteurs avec état, latence et dernière
sonde.⌉[

Connecteurs : 17 configurés, 16 joignables le 12 novembre.

[⌊Paramètres de WatchTower : réglages des alertes et bulletins.⌉⌊Paramètres de WatchTower:
réglages des alertes et bulletins.⌉⌊Paramètres de WatchTower : réglages des alertes
et bulletins.⌉⌊Paramètres de WatchTower : réglages des alertes et bulletins.⌉[

Alertes et bulletins : horaire, catégories et destinations.

### Personnalisation

Langue, thème clair ou sombre, densité, mouvement réduit, choix et ordre des blocs
de la vue d’ensemble, rotation du mode TV. Un compagnon animé facultatif, Petdex,
se règle dans l’onglet voisin.

[⌊Paramètres de WatchTower : langue, apparence et blocs de la vue d’ensemble.⌉⌊Paramètres
de WatchTower : langue, apparence et blocs de la vue d’ensemble.⌉⌊Paramètres de 
WatchTower : langue, apparence et blocs de la vue d’ensemble.⌉⌊Paramètres de WatchTower:
langue, apparence et blocs de la vue d’ensemble.⌉[

Personnalisation : apparence et blocs de la vue d’ensemble.

### Hôtes, réseau et PKI

Le registre des hôtes et des équipements réseau, avec pour chacun une fiche : identité,
mesures et écarts associés. La partie PKI recense les autorités et les certificats
établis, la partie proxy résume ce que publie le reverse proxy.

[⌊Paramètres de WatchTower : registre des hôtes.⌉⌊Paramètres de WatchTower : registre
des hôtes.⌉⌊Paramètres de WatchTower : registre des hôtes.⌉⌊Paramètres de WatchTower:
registre des hôtes.⌉[

Registre des hôtes.

[⌊Paramètres de WatchTower : fiche d’identité d’un hôte.⌉⌊Paramètres de WatchTower:
fiche d’identité d’un hôte.⌉⌊Paramètres de WatchTower : fiche d’identité d’un hôte.⌉⌊
Paramètres de WatchTower : fiche d’identité d’un hôte.⌉[

Fiche d’un hôte : identité déclarée.

### Écarts et registre d’architecture

Deux registres tenus à la main. Les écarts consignent ce qui diffère entre l’état
prévu et l’état constaté, jusqu’à leur résolution ; leur détail est masqué sur la
capture. Le registre d’architecture garde les décisions prises, leur justification
et les composants retirés.

[⌊Paramètres de WatchTower : registre des écarts, contenu masqué.⌉⌊Paramètres de
WatchTower : registre des écarts, contenu masqué.⌉⌊Paramètres de WatchTower : registre
des écarts, contenu masqué.⌉⌊Paramètres de WatchTower : registre des écarts, contenu
masqué.⌉[

Registre des écarts (détail masqué).

[⌊Paramètres de WatchTower : registre des décisions d’architecture.⌉⌊Paramètres 
de WatchTower : registre des décisions d’architecture.⌉⌊Paramètres de WatchTower:
registre des décisions d’architecture.⌉⌊Paramètres de WatchTower : registre des 
décisions d’architecture.⌉[

Décisions d’architecture.

### Veille

Un lecteur de flux pour la veille technique, réparti sur trois axes : outillage,
détection et menaces. Chaque article renvoie à sa source ; les sources en échec 
sont signalées sous la liste.

[⌊Paramètres de WatchTower : lecteur de veille par axe.⌉⌊Paramètres de WatchTower:
lecteur de veille par axe.⌉⌊Paramètres de WatchTower : lecteur de veille par axe.⌉⌊
Paramètres de WatchTower : lecteur de veille par axe.⌉[

Veille : 155 articles relevés le 12 novembre, répartis par axe.

## Sur mobile

La même console, installable comme une application.

WatchTower s’installe sur l’écran d’accueil d’un téléphone. La navigation passe 
en barre basse (ensemble, alertes, Hermes, services) et la vue d’ensemble se resserre
en synthèse.

[⌊WatchTower sur mobile : vue d’ensemble.⌉⌊WatchTower sur mobile : vue d’ensemble.⌉⌊
WatchTower sur mobile : vue d’ensemble.⌉⌊WatchTower sur mobile : vue d’ensemble.⌉[

Vue d’ensemble

[⌊WatchTower sur mobile : répertoire des services.⌉⌊WatchTower sur mobile : répertoire
des services.⌉⌊WatchTower sur mobile : répertoire des services.⌉⌊WatchTower sur 
mobile : répertoire des services.⌉[

Services

[⌊WatchTower sur mobile : alertes.⌉⌊WatchTower sur mobile : alertes.⌉⌊WatchTower
sur mobile : alertes.⌉⌊WatchTower sur mobile : alertes.⌉[

Alertes

[⌊WatchTower sur mobile : topologie.⌉⌊WatchTower sur mobile : topologie.⌉⌊WatchTower
sur mobile : topologie.⌉⌊WatchTower sur mobile : topologie.⌉[

Topologie

[⌊WatchTower sur mobile : sauvegardes PBS.⌉⌊WatchTower sur mobile : sauvegardes 
PBS.⌉⌊WatchTower sur mobile : sauvegardes PBS.⌉⌊WatchTower sur mobile : sauvegardes
PBS.⌉[

Sauvegardes

[⌊WatchTower sur mobile : Windows Server.⌉⌊WatchTower sur mobile : Windows Server.⌉⌊
WatchTower sur mobile : Windows Server.⌉⌊WatchTower sur mobile : Windows Server.⌉[

Windows Server

[⌊WatchTower sur mobile : Zabbix.⌉⌊WatchTower sur mobile : Zabbix.⌉⌊WatchTower sur
mobile : Zabbix.⌉⌊WatchTower sur mobile : Zabbix.⌉[

Zabbix

[⌊WatchTower sur mobile : Wazuh.⌉⌊WatchTower sur mobile : Wazuh.⌉⌊WatchTower sur
mobile : Wazuh.⌉⌊WatchTower sur mobile : Wazuh.⌉[

Wazuh

## Sous le capot

Ce qui fait tourner l’application.

ServeurUne API en Python (FastAPI) lit le registre, un fichier TOML typé, interroge
les services et expose un contrat unique à l’interface. Elle tourne dans un conteneur
LXC du laboratoire, lancée par systemd.

InterfaceUne application React et TypeScript construite avec Vite, installable (
PWA), en thème clair ou sombre.

ConnecteursAdresses et secrets chiffrés dans un coffre sur le serveur ; l’interface
ne reçoit jamais un secret, seulement le fait qu’il est renseigné.

AccèsPhrase de passe hachée en Argon2id, session courte, jeton anti-CSRF sur chaque
modification, service publié derrière le reverse proxy avec un certificat de l’autorité
interne.

TestsTests automatisés côté serveur (pytest) et côté interface (Vitest), rejoués
avant chaque mise en service.

Limites connues : l’application est mono-utilisateur et n’est pas exposée sur Internet;
certaines valeurs du registre restent « à compléter » ; une source en panne laisse
son écran en attente plutôt que d’afficher une valeur périmée.

[Procédure de déploiement](https://dpioch.aristeecampus.org/procedure/deploiement-de-watchtower/)·
[Le laboratoire](https://dpioch.aristeecampus.org/homelab/)
