Lightweight network IP scanner with web GUI
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 "IFACE=$YOURIFACE" \
-e "TZ=$YOURTIMEZONE" \
--network="host" \
-v $DOCKERDATAPATH/wyl:/data \
aceberg/watchyourlan
Web GUI should be at http://localhost:8840
Configuration can be done through config file or environment variables
Variable | Description | Default |
---|---|---|
ARP_TIMEOUT | Per host timeout for arp-scan (in milliseconds) | 500 |
AUTH | Enable Session-Cookie authentication | false |
AUTH_EXPIRE | Session expiration time. A number and suffix: m, h, d or M. | 7d |
AUTH_USER | Username | "" |
AUTH_PASSWORD | Encrypted password (bcrypt). How to encrypt password with bcrypt? | "" |
COLOR | Background color: light or dark | dark |
DBPATH | Path to Database | /data/db.sqlite |
GUIIP | Address for web GUI | 0.0.0.0 |
GUIPORT | Port for web GUI | 8840 |
HISTORY_DAYS | Keep devices online/offline history for (days) | 30 |
IFACE | Interface to scan. Could be one or more, separated by space. Currently docker0 is not allowed, as arp-scan wouldn't work with it correctly |
enp1s0 |
IGNOREIP | If you want to detect unknown hosts by MAC only, set this wariable to "yes" | no |
LOGLEVEL | How much log output you want to see ("short" or "verbose") | verbose |
SHOUTRRR_URL | Url to any notification service supported by Shoutrrr (gotify, email, telegram and others) or Generic Webhook | "" |
THEME | Any theme name from https://bootswatch.com in lowcase or additional (emerald, grass, sand) | solar |
TIMEOUT | Time between scans (seconds) | 60 (1 minute) |
Warning
Config file format has been migrated to YAML in release v1.0.0.
Config file path is /data/config.yaml
.
All variables could be set there. Example:
color: light
dbpath: /data/db.sqlite
guiip: 192.168.2.1
guiport: "8840"
iface: enp1s0
ignoreip: "no"
loglevel: short
shoutrrr_url: gotify://192.168.2.1:8083/AwQqpAae.rrl5Ob/?title=Unknown host detected&DisableTLS=yes
theme: solar
timeout: 120
Key | Description | Default |
---|---|---|
-c | Path to config file | /data/config.yaml |
-n | Path to node modules (see below) | "" |
By default, this app pulls themes, icons and fonts from the internet. But, in some cases, it may be useful to have an independent from global network setup. I created a separate image with all necessary modules and fonts. Run with Docker:
docker run --name node-bootstrap \
-p 8850:8850 \
aceberg/node-bootstrap
docker run --name wyl \
-e "IFACE=$YOURIFACE" \
-e "TZ=$YOURTIMEZONE" \
--network="host" \
-v $DOCKERDATAPATH/wyl:/data \
aceberg/watchyourlan -n "http://$YOUR_IP:8850"
Or use docker-compose
- All go packages listed in dependencies
- Favicon and logo: Access point icons created by Freepik - Flaticon
- Bootstrap
- Themes: Free themes for Bootstrap