Files
wiki/Catalogue-Self-Hosted/apps/app-watchyourlan.md
T
2026-06-09 18:40:21 +02:00

151 lines
6.3 KiB
Markdown

---
title: WatchYourLAN
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, monitoring, reseau, scanner, ip, go, beginner, homelab]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Monitoring, https://github.com/aceberg/WatchYourLAN]
---
# 📊 WatchYourLAN
> **Le scanner réseau léger avec web GUI** : détecte qui est connecté sur votre LAN en temps réel. Idéal pour le homelab : voir les IPs, MAC, et hosts présents, même ceux qui n'apparaissent pas dans votre box.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | (GitHub) |
| **GitHub** | [aceberg/WatchYourLAN](https://github.com/aceberg/WatchYourLAN) |
| **License** | MIT |
| **Langage** | Go |
| **Étoiles GitHub** | 7 025 ⭐ |
| **Dernière MAJ** | 2026-06-06 |
| **Catégorie** | [[cat-monitoring|Monitoring]] |
## 📝 Description
**WatchYourLAN** n'est pas un outil de monitoring de services classique : c'est un **scanner réseau ARP** qui vous dit **quelles machines sont actuellement connectées à votre réseau local**. Là où votre box internet ne montre que les baux DHCP actifs, WatchYourLAN scanne en continu les tables ARP et vous présente l'historique des connexions : qui s'est connecté, quand, avec quelle IP et quelle MAC.
C'est l'outil parfait pour les **homelabeurs** qui veulent savoir :
- Quels appareils sont actuellement sur le réseau (IoT, invités, intrus potentiels)
- Quelles IPs ont été attribuées à quelles machines
- Détecter un appareil inconnu (nouvelle MAC, nouvelle IP)
- Surveiller la présence d'un serveur (est-ce qu'il reboote tout seul ?)
L'interface est volontairement minimaliste : une page web qui liste les hosts connus et inconnus, avec date de dernière vue et bouton « alertes ».
-**Scan ARP en continu** : intervalle configurable (1 min par défaut)
-**Détection IP + MAC** : table des hôtes actifs
-**Historique** : qui était connecté quand (last seen, first seen)
-**Détection de nouveaux hôtes** : alerte quand un appareil inconnu apparaît
-**Notifications** : Telegram, Gotify, Ntfy, Slack, Discord, Email, Webhook
-**Web UI simple** : page HTML statique, lookup en JS
-**Pas de base de données** : stockage fichier plat (JSON)
-**Binaire Go statique** : ARM64, ARMv7, x86_64 — tourne sur Raspberry Pi
-**Docker** multi-arch
-**Config via fichier** (YAML) ou variables d'environnement
**Public cible** : **homelabeurs et admins réseau** qui veulent **voir qui est sur le LAN** sans configurer un Nagios ou un NetBox complet. Si vous voulez scanner des sous-réseaux distants ou faire du port scanning, c'est pas le bon outil : partez sur [[app-zabbix]] ou des outils type nmap.
## 🚀 Installation
### Option 1 : Docker Compose
```yaml
# docker-compose.yml
version: '3.8'
services:
watchyourlan:
image: aceberg/watchyourlan:latest
container_name: watchyourlan
restart: unless-stopped
# network_mode: host est RECOMMANDÉ pour le scan ARP
network_mode: host
environment:
- IFACE=eth0
- TZ=Europe/Paris
- NOTIF_TG_CHATID=...
- NOTIF_TG_TOKEN=...
- GUI=YES
volumes:
- wyl-config:/config
volumes:
wyl-config:
```
> ⚠️ **Le mode `network_mode: host` est indispensable** : le scan ARP se fait via raw sockets, ce qui ne fonctionne pas avec le bridge Docker. Sur Synology/QNAP, prévoir un lancement direct du binaire.
### Option 2 : Binaire natif (Raspberry Pi, routeur, etc.)
```bash
wget https://github.com/aceberg/WatchYourLAN/releases/latest/download/watchyourlan_0.7.0_Linux_arm64.tar.gz
tar xzf watchyourlan_*.tar.gz
cd WatchYourLAN
./watchyourlan -if eth0 -g
```
## ⚙️ Configuration Initiale
1. **Identifier l'interface réseau** à scanner (`ip a` pour la trouver)
2. **Lancer WatchYourLAN** avec l'option `-if eth0` (ou `IFACE=eth0` en env)
3. **Accéder à l'UI** : `http://IP-DE-VOTRE-HOST:8847`
4. **Visiter l'UI** pour voir la liste des hosts détectés
5. **Configurer les notifications** : copier `config/gotify.env` et adapter
6. **Tester le scan** : redémarrer un appareil du LAN et vérifier qu'il est marqué « up »
## 🔄 Alternatives
### Open Source
- **arpwatch** — Le grand-père, CLI, log mail uniquement
- **NetBox** — IPAM complet (beaucoup plus lourd, source de vérité)
- **Pi.Alert** (fork de WatchYourLAN enrichi) — Plus de features
- **NetAlertX** — Plus avancé (notifications multiples, web UI plus riche)
- **Nmap** + script — Pour du scan ponctuel, pas continu
### Comparaison WatchYourLAN vs autres
| Critère | WatchYourLAN | arpwatch | NetBox | Pi.Alert |
| :--- | :--- | :--- | :--- | :--- |
| Self-hosted | ✅ | ✅ | ✅ | ✅ |
| Web UI | ✅ | ❌ | ✅✅ | ✅ |
| Historique | ✅ | ✅ | ✅ | ✅✅ |
| Alertes | ✅ | ⚠️ mail | ❌ | ✅✅ |
| Setup | 5 min | 10 min | 30 min | 5 min |
| Empreinte | ~10 Mo | < 1 Mo | 1 Go+ | ~50 Mo |
| IPAM | ❌ | ❌ | ✅✅ | ⚠️ |
| Binaire Go | ✅ | ❌ (C) | ❌ (Python) | ❌ (Python) |
**Verdict** : pour un **simple « qui est sur mon réseau »** avec un binaire Go qui tourne sur n'importe quoi, WatchYourLAN est imbattable. Pour de l'**IPAM professionnel** ou de l'**inventaire complet**, passez sur NetBox.
### Propriétaires (ce que WatchYourLAN remplace)
- **Fing** (mobile, freemium) — Le même usage en app mobile
- **NetSpot** (Windows) — Scanner Wi-Fi commercial
- **Solarwinds IPAM** (enterprise, $$$)
- **PRTG Network Monitor** (freemium)
## 🔐 Sécurité
- **Pas d'auth par défaut** : à protéger par un reverse proxy ([[app-traefik]]) ou un tunnel SSH
- **HTTPS recommandé** via [[app-traefik]]
- **Web UI statique** : pas de session, pas de cookie
- **Notifications** : tokens stockés en variables d'environnement (volatiles par défaut)
- **Scan ARP** : passif, ne génère pas de trafic intrusif sur le réseau
## 📚 Ressources
- [GitHub aceberg/WatchYourLAN](https://github.com/aceberg/WatchYourLAN)
- [Wiki / FAQ](https://github.com/aceberg/WatchYourLAN/wiki)
- [Releases multi-arch](https://github.com/aceberg/WatchYourLAN/releases)
## Pages Liées
- [[cat-monitoring]] — Catégorie Monitoring
- [[app-netalertx]] — Alternative plus riche (Python)
- [[app-zabbix]] — Monitoring réseau pro
- [[app-traefik]] — Reverse proxy HTTPS
- [[observabilite]] — Concept d'observabilité
- [[checklist-monitoring-minimal]] — Checklist de démarrage