Skip to content

Repository files navigation

NetworkBoss 🚬🗿

Network Boss temp logo - smug mob boss smoking big cigar, cartoonish digital illustration style smoking cat ascii art

24/7 network monitoring daemon for a Raspberry Pi that discovers devices on the local network, builds an identity profile for each one, and persists everything for visibility into who's connected and when.

Licensed under GPLv3 — see LICENSE

Architecture

NetworkBoss is built around a Controller/Coordinator pattern with dependency-injected, interface-based components.
Each component does one job and knows nothing about the others; the Controller is the only piece that sees the full picture and orchestrates the flow between them.

  • Scanner: host discovery. Answers "who's on the network right now?" Currently implemented via ARP scanning (scanner/arp_scanner.py).
  • Profiler: device identification. Takes a discovered device and adds whatever metadata it can determine (vendor, OS, hostname). Multiple profilers can be chained together via ProfilerPipeline, a composite component.
  • Storage: SQLite-backed persistence for devices, scans, and raw sighting data. Sightings are immutable forensic records; devices are the derived, evolving picture built from them.
  • Display: presentation layer. Console output for now with a terminal UI planned next.
  • Controller: owns the run loop; scan → persist → profile → persist enrichment → display. Contains all the orchestration logic; the only component allowed to know about the others.

main.py is the dependency-injection boundary, it's the only file that constructs concrete implementations and wires them into the Controller.
Swapping a scanner or profiler implementation never requires touching the Controller.

Status

Early development - Storage layer and component interfaces are stable; controller loop and terminal UI are in progress.

About

24/7 network monitoring daemon for a Raspberry Pi that discovers devices on the local network, builds an identity profile for each one, and persists everything for visibility into who's connected and when.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages