Add per-scanner enable/disable configuration

Each scanner (ARP, mDNS, SSDP/UPnP, DHCP) can now be turned off via an
`enabled` flag in its config section, defaulting to true so existing
deployments are unchanged. A disabled scanner's entry function returns
early and never starts.

Documented in the README options table (also fixing the stale `timings.*`
key names to the actual `arp_scanner.*` keys), and added to the TOML
samples and the NixOS module.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
rzuasti
2026-06-01 19:00:56 -04:00
co-authored by Claude Opus 4.8
parent 4e975598f9
commit 08ee4fc0ea
9 changed files with 160 additions and 30 deletions
+1 -22
View File
@@ -4,40 +4,19 @@
## Backend
- [ ] Add configuration options to enable/disable each scanner
- [x] Call out in README.md that the system needs to be run as root (to bind the network card and listen on lower ports)
- [x] Add the scanner that triggered the event to the device_events table
- [x] Improve notifications layout/text
- [x] Add configuration options to enable/disable each scanner
- [ ] Implement the pushover API call directly to support HTML content and review notification text to use it
- [x] Add SSDP/uPNP scanner
- [x] Make sure the new config options are in the TOML files and Nix module
- [x] Document in README.md the port needs/bindings
- [x] Add DHCP scanner
## Frontend
- [x] Add the SSDP/UPnP status to the status screen and home screen
- [x] Add the DHCP scanner status to the status screen and home screen
- [x] In the notifications list, modify the behavior so that you can fully see the text of the notification before navigating to the device details
- [ ] Can we add front-end tests?
- [x] In the devices list, add a color dot to reflect the last seen status (less than 10 minutes green, otherwise grey)
- [x] Change the URI for the homepage from /notifications to /home
- [x] In the devices list, the order by name is not consistent (iPad... before Lutron when ordering by name descending, maybe it should be case insensitive)
- [x] In the devices list, when the width is "medium", the list looks bad. Maybe make status pills not wrap to new lines
- [x] The ARP scanner status change the yellow to gray (yellow conveys problems, the scanner is just waiting)
## Improve engine
Several complementary approaches work well alongside ARP:
Passive (low noise, no probing):
- SSDP/UPnP — similar but for smart devices/IoT; multicast on 239.255.255.250:1900
- DHCP snooping — monitor DHCP DISCOVER/REQUEST packets; new devices must ask for an IP before doing anything else, so this catches them very early
- Passive packet capture — observe any broadcast/multicast traffic; a device that never responds to ARP still generates traffic
Active (you probe the network):
- ICMP ping sweep — ping every host in the subnet range; more universal than ARP but generates traffic
- TCP/UDP SYN scan — probe common ports (22, 80, 443, etc.); finds devices that silently drop ICMP
- NDP (Neighbor Discovery Protocol) — IPv6 equivalent of ARP; important if the network uses IPv6
Via infrastructure: