explaingit

aceberg/watchyourlan

6,982GoAudience · ops devopsComplexity · 2/5Setup · easy

TLDR

A self-hosted network scanner with a web dashboard that continuously monitors your local network, logs every device by IP and MAC address, and alerts you when unknown devices appear.

Mindmap

mindmap
  root((repo))
    What it does
      Scan local network
      Track connected devices
      Alert on new devices
    Notifications
      Telegram
      Discord
      Slack
      Email and webhooks
    Storage
      SQLite or PostgreSQL
      InfluxDB export
      Prometheus metrics
    Setup
      Docker recommended
      Raspberry Pi support
      Web GUI or YAML config
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Get a Telegram or Discord alert the moment an unknown device joins your home or office network.

USE CASE 2

Track which devices are online or offline over time and visualize uptime history in Grafana.

USE CASE 3

Run on a Raspberry Pi to monitor a small network 24/7 with no cloud dependency.

Tech stack

GoDockerSQLitePostgreSQLInfluxDBPrometheus

Getting it running

Difficulty · easy Time to first run · 30min

No built-in login, place behind Authelia or similar if you expose the web UI outside your home network.

In plain English

WatchYourLAN is a self-hosted network scanner with a web interface. It continuously scans your local network using ARP, a standard method for discovering which devices are connected to a network, and keeps a list of every device it finds by its IP address and MAC address. When a new device appears on the network that it has not seen before, it can send you a notification. The web interface shows you which hosts are currently online and which are offline, along with a history of when each device was last seen. If you want to track this data over time with charts, WatchYourLAN can send its data to InfluxDB2 or expose it as a Prometheus metrics endpoint, both of which work with Grafana, a popular dashboarding tool. You can also choose to store data in either SQLite (a simple local database file) or PostgreSQL. Notifications can be sent to a wide range of services via a library called Shoutrrr, which supports Discord, Telegram, Slack, email, Gotify, Ntfy, Matrix, Pushover, and generic webhooks. You configure the notification destination through a single URL string. The easiest way to run it is with Docker. You specify which network interface to scan and your timezone as environment variables, and the web interface becomes available at port 8840. Binary packages for Debian, RPM-based, and Alpine Linux systems are also available, supporting a range of processor architectures including various ARM variants, which means it can run on a Raspberry Pi or similar small device. Configuration can be done through environment variables, a YAML config file, or directly through the web GUI. The app does not include built-in login or authentication, but the README notes that you can place it behind tools like Authelia for single sign-on access control. There is also an option to run it entirely without internet access by serving its frontend assets from a local container.

Copy-paste prompts

Prompt 1
Write a docker-compose.yml to run WatchYourLAN on my home server scanning the eth0 interface, storing data in PostgreSQL, and sending Telegram alerts when unknown devices appear.
Prompt 2
How do I configure WatchYourLAN to export device metrics to InfluxDB2 and build a Grafana dashboard that shows which devices were online each hour?
Prompt 3
I want to run WatchYourLAN on a Raspberry Pi 4 using the binary package instead of Docker. What are the installation steps for Raspberry Pi OS?
Open on GitHub → Explain another repo

← aceberg on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.