Subsections of Install
Docker
Replace $YOURTIMEZONE with correct time zone and $YOURIFACE with network interface you want to scan. Network mode must be host. Set $DOCKERDATAPATH for container to save data:
docker run --name wyl \
-e "IFACES=$YOURIFACE" \
-e "TZ=$YOURTIMEZONE" \
--network="host" \
-v $DOCKERDATAPATH/wyl:/data/WatchYourLAN \
aceberg/watchyourlan
Web GUI should be at http://localhost:8840
docker-compose
version: "3"
services:
# node-bootstrap: # optional, local themes and icons
# image: aceberg/node-bootstrap # dockerhub
# # image: ghcr.io/aceberg/node-bootstrap # or github
# restart: unless-stopped
# ports:
# - 8850:8850
wyl:
image: aceberg/watchyourlan # dockerhub
# image: ghcr.io/aceberg/watchyourlan # or github
network_mode: "host"
restart: unless-stopped
# uncomment those if you are using local node-bootstrap:
# command: "-n http://YOUR_IP:8850" # put your server IP or DNS name here
# depends_on:
# - node-bootstrap
volumes:
- ~/.dockerdata/wyl:/data/WatchYourLAN
environment:
TZ: Asia/Novosibirsk # required: needs your TZ for correct time
IFACES: "enp4s0 wlxf4ec3892dd51" # required: 1 or more interface
# HOST: "0.0.0.0" # optional, default: 0.0.0.0
# PORT: "8840" # optional, default: 8840
# TIMEOUT: "120" # optional, time in seconds, default: 120
# SHOUTRRR_URL: "" # optional, set url to notify
# THEME: "sand" # optional
# COLOR: "dark" # optional
Bianry
All binary packages can be found in latest release. There are .deb, .rpm, .apk (Alpine Linux) and .tar.gz files.
Supported architectures: amd64, i386, arm_v5, arm_v6, arm_v7, arm64.
Dependencies: arp-scan, tzdata.
For amd64 there is a deb repo available
API
Returns all hosts in json.
Returns all History. Not recommended, the output can be a lot.
GET /api/history/:mac/:date
Returns only history of a device with this mac filtered by date. date format can be anything from 2 to 2025-07 to 2025-07-26.
GET /api/history/:mac?num=20
Returns only last 20 lines of history of a device with this mac.
Returns host with this id in json.
GET /api/port/:addr/:port
Gets state of one port of addr. Returns true if port is open or false otherwise. Request example:
curl "http://0.0.0.0:8840/api/port/192.168.2.2/8844"
GET /api/edit/:id/:name/*known
Edit host with ID id. Can change name. known is optional, when set to toggle will change Known state.
Remove host with ID id.
Send test notification.
Show status (Total number of hosts, online/offline, known/unknown). The iface parameter is optional and shows status for one interface only. For all interfaces just call /api/status/.