---
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
