Skip to content

πŸ”Œ Plugins

NetAlertX supports additional plugins to extend its functionality, each with its own settings and options. Plugins can be loaded via the General -> LOADED_PLUGINS setting. For custom plugin development, refer to the Plugin development guide.

Note

Please check this Plugins debugging guide and the corresponding Plugin documentation in the below table if you are facing issues.

⚑ Quick start

Tip

You can load additional Plugins via the General -> LOADED_PLUGINS setting. You need to save the settings for the new plugins to load (cache/page reload may be necessary). Loaded plugins settings

  1. Pick your πŸ” dev scanner plugin (e.g. ARPSCAN or NMAPDEV), or import devices into the application with an πŸ“₯ importer plugin. (See Enabling plugins below)
  2. Pick a ▢️ publisher plugin, if you want to send notifications. If you don't see a publisher you'd like to use, look at the πŸ“š_publisher_apprise plugin which is a proxy for over 80 notification services.
  3. Setup your Network topology diagram
  4. Fine-tune Notifications
  5. Setup Workflows
  6. Backup your setup
  7. Contribute and Create custom plugins

Plugin types

Plugin type Icon Description When to run Required Data source ?
publisher ▢️ Sending notifications to services. on_notification βœ– Script
dev scanner πŸ” Create devices in the app, manages online/offline device status. schedule βœ– Script / SQLite DB
name discovery πŸ†Ž Discovers names of devices via various protocols. before_name_updates, schedule βœ– Script
importer πŸ“₯ Importing devices from another service. schedule βœ– Script / SQLite DB
system βš™ Providing core system functionality. schedule / always on βœ–/βœ” Script / Template
other β™» Other plugins misc βœ– Script / Template

Features

Icon Description
πŸ–§ Auto-imports the network topology diagram
πŸ”„ Has the option to sync some data back into the plugin source

Available Plugins

Device-detecting plugins insert values into the CurrentScan database table. The plugins that are not required are safe to ignore, however, it makes sense to have at least some device-detecting plugins enabled, such as ARPSCAN or NMAPDEV.

ID Plugin docs Type Description Features Required
APPRISE _publisher_apprise ▢️ Apprise notification proxy
ARPSCAN arp_scan πŸ” ARP-scan on current network
AVAHISCAN avahi_scan πŸ†Ž Avahi (mDNS-based) name resolution
ASUSWRT asuswrt_import πŸ” Import connected devices from AsusWRT
CSVBCKP csv_backup βš™ CSV devices backup
CUSTPROP custom_props βš™ Managing custom device properties values Yes
DBCLNP db_cleanup βš™ Database cleanup Yes*
DDNS ddns_update βš™ DDNS update
DHCPLSS dhcp_leases πŸ”/πŸ“₯/πŸ†Ž Import devices from DHCP leases
DHCPSRVS dhcp_servers β™» DHCP servers
DIGSCAN dig_scan πŸ†Ž Dig (DNS) Name resolution
FREEBOX freebox πŸ”/β™»/πŸ†Ž Pull data and names from Freebox/Iliadbox
ICMP icmp_scan β™» ICMP (ping) status checker
INTRNT internet_ip πŸ” Internet IP scanner
INTRSPD internet_speedtest β™» Internet speed test
IPNEIGH ipneigh πŸ” Scan ARP (IPv4) and NDP (IPv6) tables
LUCIRPC luci_import πŸ” Import connected devices from OpenWRT
MAINT maintenance βš™ Maintenance of logs, etc.
MQTT _publisher_mqtt ▢️ MQTT for synching to Home Assistant
NBTSCAN nbtscan_scan πŸ†Ž Nbtscan (NetBIOS-based) name resolution
NEWDEV newdev_template βš™ New device template Yes
NMAP nmap_scan β™» Nmap port scanning & discovery
NMAPDEV nmap_dev_scan πŸ” Nmap dev scan on current network
NSLOOKUP nslookup_scan πŸ†Ž NSLookup (DNS-based) name resolution
NTFPRCS notification_processing βš™ Notification processing Yes
NTFY _publisher_ntfy ▢️ NTFY notifications
OMDSDN omada_sdn_imp πŸ“₯/πŸ†Ž ❌ UNMAINTAINED use OMDSDNOPENAPI πŸ–§ πŸ”„
OMDSDNOPENAPI omada_sdn_openapi πŸ“₯/πŸ†Ž OMADA TP-Link import via OpenAPI πŸ–§
PIHOLE pihole_scan πŸ”/πŸ†Ž/πŸ“₯ Pi-hole device import & sync
PUSHSAFER _publisher_pushsafer ▢️ Pushsafer notifications
PUSHOVER _publisher_pushover ▢️ Pushover notifications
SETPWD set_password βš™ Set password Yes
SMTP _publisher_email ▢️ Email notifications
SNMPDSC snmp_discovery πŸ”/πŸ“₯ SNMP device import & sync
SYNC sync πŸ”/βš™/πŸ“₯ Sync & import from NetAlertX instances πŸ–§ πŸ”„ Yes
TELEGRAM _publisher_telegram ▢️ Telegram notifications
UI ui_settings β™» UI specific settings Yes
UNFIMP unifi_import πŸ”/πŸ“₯/πŸ†Ž UniFi device import & sync πŸ–§
VNDRPDT vendor_update βš™ Vendor database update
WEBHOOK _publisher_webhook ▢️ Webhook notifications
WEBMON website_monitor β™» Website down monitoring
WOL wake_on_lan β™» Automatic wake-on-lan

* The database cleanup plugin (DBCLNP) is not required but the app will become unusable after a while if not executed. ❌ marked for removal/unmaintained - looking for help ⌚It's recommended to use the same schedule interval for all plugins responsible for discovering new devices.

Enabling plugins

Plugins can be enabled via Settings, and can be disabled as needed.

  1. Research which plugin you'd like to use, enable DISCOVER_PLUGINS and load the required plugins in Settings via the LOADED_PLUGINS setting.
  2. Save the changes and review the Settings of the newly loaded plugins.
  3. Change the <prefix>_RUN Setting to the recommended or custom value as per the documentation of the given setting
    • If using schedule on a πŸ” dev scanner plugin, make sure the schedules are the same across all πŸ” dev scanner plugins

Disabling, Unloading and Ignoring plugins

  1. Change the <prefix>_RUN Setting to disabled if you want to disable the plugin, but keep the settings
  2. If you want to speed up the application, you can unload the plugin by unselecting it in the LOADED_PLUGINS setting.
    • Careful, once you save the Settings Unloaded plugin settings will be lost (old app.conf files are kept in the /config folder)
  3. You can completely ignore plugins by placing a ignore_plugin file into the plugin directory. Ignored plugins won't show up in the LOADED_PLUGINS setting.

πŸ†• Developing new custom plugins

If you want to develop a custom plugin, please read this Plugin development guide.