Known issues: - some small translations are not yet completed in gaph extension - some small translations are not yet completed in entire frontend Modification within the fork: - enforce only one scancycle (crontab and frontend) - if not already done, then sqlite3 must be installed - DB must be patched via install/pialert_patch_DB.sh, otherwise the scan will run into an error
Pi.Alert
WIFI / LAN intruder detector.
Scan the devices connected to your WIFI / LAN and alert you the connection of unknown devices. It also warns the disconnection of "always connected" devices.
(Apologies for my English and my limited knowledge of Python, php and
JavaScript)
optional Darkmode within this fork
How it works
The system continuously scans the network for:
- New devices
- New connections (re-connections)
- Disconnections
- "Always Connected" devices down
- Devices IP changes
- Internet IP address changes
Scan Methods
Up to three scanning methods are used:
- Method 1: arp-scan. The arp-scan system utility is used to search for devices on the network using arp frames.
- Method 2: Pi-hole. This method is optional and complementary to method 1. If the Pi-hole DNS server is active, Pi.Alert examines its activity looking for active devices using DNS that have not been detected by method 1.
- Method 3. dnsmasq. This method is optional and complementary to the previous methods. If the DHCP server dnsmasq is active, Pi.Alert examines the DHCP leases (addresses assigned) to find active devices that were not discovered by the other methods.
Components
The system consists of two parts:
Back
In charge of:
- Scan the network searching connected devices using the scanning methods described
- Store the information in the DB
- Report the changes detected by e-mail
- Optional speedtest for Device "Internet"
![]() |
![]() |
|---|
Front
A web frontal that allows:
- Manage the devices inventory and the characteristics
- Display in a visual way all the information collected by the back
- Sessions
- Connected devices
- Favorites
- Events
- Presence
- Concurrent devices
- Down alerts
- IP's
- manuel nmap scans
- Optional speedtest for Device "Internet"
- ...
![]() |
![]() |
|---|---|
![]() |
![]() |
![]() |
![]() |
With the work of jokob-sk/Pi.Alert and own extensions, the new maintenance page was added with various possibilities for maintenance and settings:
- Status Infos (active scans, database size, backup counter)
- Theme Selection (blue, red, green, yellow, black, purple)
- Language Selection (english, german)
- Light/Dark-Mode Switch
- Pause arp-scan
- DB maintenance tools
- DB Backup and Restore
Installation
Initially designed to run on a Raspberry Pi, probably it can run on many other Linux distributions.
-
One-step Automated Install:
curl -sSL https://github.com/pucherot/Pi.Alert/raw/main/install/pialert_install.sh | bash -
One-step Automated Install (forked) without Webserver:
curl -sSL https://github.com/leiweibau/Pi.Alert/raw/main/install/pialert_install_no_webserver.sh | bash
Update
- One-step Automated Update:
curl -sSL https://github.com/pucherot/Pi.Alert/raw/main/install/pialert_update.sh | bash
Uninstall process
Device Management
Other useful info
Versions History
Powered by:
| Product | Objetive |
|---|---|
| Python | Programming language for the Back |
| PHP | Programming language for the Front-end |
| JavaScript | Programming language for the Front-end |
| Bootstrap | Front-end framework |
| Admin.LTE | Bootstrap template |
| FullCalendar | Calendar component |
| Sqlite | DB engine |
| Lighttpd | Webserver |
| arp-scan | Scan network using arp commands |
| Pi.hole | DNS Server with Ad-block |
| dnsmasq | DHCP Server |
| nmap | Network Scanner |
| zip | Filecompression Tool |
| speedtest-cli | Python SpeedTest https://github.com/sivel/speedtest-cli |
License
GPL 3.0 Read more here
Source of the animated GIF (Loading Animation) https://commons.wikimedia.org/wiki/File:Loading_Animation.gif
Source of the selfhosted Fonts https://github.com/adobe-fonts/source-sans
Contact
pi.alert.application@gmail.com
Suggestions and comments are welcome








