Skip to content

Releases: netalertx/NetAlertX

v25.5.24 - MQTT, UI improvements, multiple notification emails

23 May 23:47

Choose a tag to compare

Hi everyone!

This update includes brings small enhancements across the board:

  • MQTT plugin now supports an "Alert Down" flag to better track device status
  • SMTP plugin supports multiple recipient emails
  • New localized date/time UI and improved tooltips
  • In-app notifications auto-cleanup with MAINT_NOTI_LENGTH
  • Plus: better error reporting in WEBMON, more reliable long emails, and fixes to plugin-watching alerts

Thanks to @jangrewe for the SMTP fix! See details below.

⚙Settings

  • A new MAINT_NOTI_LENGTH setting to auto-delete in-app notifications #1052 🆕

🔌Plugins

  • MQTT additional Alert Down attribute so you can check and filter down devices #1057
  • WEBMON more statuses for different errors (SSL, timeout) ✨
  • SMTP now supports multiple email addresses #1061

🖼 UI

  • Dates are localized in most places based on the TIMEZONE setting #1044 🆕
  • Fixed tooltips in presence view hover #1066

💠Core app updates

  • Watched_Value1-4 changes didn't trigger notifications if you were watching plugin changes #1053
  • Some SMTP servers were not handling 1000+ characters per line which could result in broken links in emails #1049 ✨ - thanks to @jangrewe 🙏

Other Info

🆕 - New features ✨ - Fixes & Improvements ⚠ - Possibly breaking changes 🧪 - Experimental/work in progress

What's Changed

New Contributors

Full Changelog: v25.4.14...v25.5.24

v25.4.14 - Styling, Workflows and other fixes

13 Apr 22:42

Choose a tag to compare

Hi,

This is a small release to fix some of the outstanding styling issues and a workflow issue, where a newly created workflow won't trigger unless the trigger type is changed.

Best,
Jokob

What's Changed

New Contributors

Full Changelog: v25.4.1...v25.4.14

v25.4.1 - 🔀 Workflows - automate device management

31 Mar 21:32

Choose a tag to compare

#1036 [bug] 🐛 There is a bug where a new workflow is not executed until you switch the Trigger type

Hey y'all 👋

You, your setup, your use cases... are different from mine and everyone's else's. I also don't like implementing really narrow features, that help only a handful of users.

So I thought, well, how about I let YOU to change the application behavior?

Here come 🔀 Workflow Automations 🥳

image

So, what can you do? You can change any Device field, or delete the Device itself, if any number of custom conditions are fulfilled. For example, you can UN-archive a device if it's detected online. Or group devices with a specific name or vendor into a group. Or assign devices to a location depending on the IP they get...

These are only examples, but I think you get the idea. Happy tinkering and automating! Share your workflows in Discord or GitHub Discussions.

There are also some smaller improvements, so check them out below ⏬

image

📚Docs updates

⚙Settings

  • A new LUCIRPC_only_reachable setting on the LUCIRPC to be able to import reachable or unreachable devices from OpenWRT #1010 🆕

🔌Plugins

  • ICMP failed if the setting LOG_LEVEL was set to verbose or higher #1025
  • MQTT didn't send updates for all fields, only some #1019

🖼 UI

  • Cleanup of the Network topology view ✨

💠Core app updates

Internal changes affecting the whole app and usually significant to developers 👩‍💻👨‍💻

  • LOADED_PLUGINS docker environment variable didn't work with the default app.conf #1023
  • Custom values of the devParentNode and devParentPort field were overwritten by plugins #1021

Other Info

🆕 - New features ✨ - Fixes & Improvements ⚠ - Possibly breaking changes 🧪 - Experimental/work in progress

What's Changed

  • Changing absolute path URL to relative path URL in devices.php by @cvc90 in #1022
  • Changing absolute path URL to relative path URL in userNotifications.php by @cvc90 in #1024
  • Next release - Workflow work by @jokob-sk in #1029

Full Changelog: v25.3.1...v25.4.1

v25.3.1 - 📚 New Docs portal, OMADA plugin and more MQTT attributes

28 Feb 23:27

Choose a tag to compare

Release Highlights 🚀

This release introduces a new OMADA (OMDSDNOPENAPI) plugin, contributed by @xfilo, as well as a revamped docs portal with improved search and navigation for a better user experience.

🔍 The MQTT plugin now sends additional attributes to Home Assistant’s device tracker object, enabling more detailed filtering of your devices.

To mitigate Docker Hub pull limits, container images will now also be available on the GitHub Container Registry (GHCR).

In other news, the Discord community has grown to nearly 100 members! 💙

Read on below for all the details included in this release!

image image

🏘️ Community

  • Almost 100 Discord members 🥳
  • @im-redactd created a OPNsense script to generate a dnsmasq compatible leases file for the DHCPLSS plugin 🆕

📚Docs updates

🔌Plugins

  • A new OMDSDNOPENAPI plugin by @xfilo 🆕
  • Easier filtering and listing in Home Assistant as MQTT now sends more device attributes into the app #999
  • The NTFY plugin supports now token authentication ✨

🖼 UI

  • Removal of some unnecessary default values from device dropdowns ✨
  • More control over new device names to keep or remove . (dots) in names #1002

Other Info

🆕 - New features ✨ - Fixes & Improvements ⚠ - Possibly breaking changes 🧪 - Experimental/work in progress

What's Changed

  • Fix spelling mistake in unifi plugin by @Peter-Maguire in #996
  • New plugin: Omada SDN import using OpenAPI (OMDSDNOPENAPI) by @xfilo in #1005
  • OMDSDNOPENAPI - Run command change due to plugin folder rename by @xfilo in #1006
  • OMDSDNOPENAPI - Fixed example in README.md, improved logging and code logic by @xfilo in #1007
  • OMDSDNOPENAPI - Refactored data collection into a class, improved code clarity with comments by @xfilo in #1008

New Contributors

Full Changelog: v25.2.8...v25.3.1

v25.2.8 - 🔽 Device filters and easier permission management

08 Feb 00:32
703ba5c

Choose a tag to compare

Hi there 👋

You can now configure Device filters on the main Devices listing screen with the UI_columns_filters setting. The app should also now reload a bit faster after you update devices and the app.log should contain more info for debugging when needed.

From the community @EinKantHolz helped figure out how to import DHCP leases files from Asus routers in a new guide, @labmonkey improved the ASUSWRT plugin and @vladaurosh helped with the Alpine upgrade and permissions setup, so you can specify PUID and PGID via docker compose variables.

One bigger change is the removal of the UNDIS plugin as there's now a simple way how to add devices manually and an accompanying ICMP plugin.

Have a look at what's more available in this release below. 🙂

image

🏘️ Community

  • @cvc90 fixed reverse proxy issues 🙏✨
  • @vladaurosh helped adding custom PUID and PGID variables and more 🙏✨

📚Docs updates

⚙Settings

  • A new UI_columns_filters setting so you can easily narrow down the devices list #953 🆕

🔌Plugins

  • UNDIS removal as covered by other functionality (manual device creation, ICMP plugin) ❌
  • ASUSWRT now supports custom ports - by @labmonkey 🙏✨

🖼 UI

  • New filters on the devices screen #953🆕
  • CRON format schedule validation check in Settings 🆕
  • IP address sorting in the Network screen was not working as expected #983

💠Core app updates

Internal changes affecting the whole app and usually significant to developers 👩‍💻👨‍💻

  • LOADED_PLUGINS docker compose variable #975 🆕
  • PUID and PGID docker compose variables #939 #974 🆕
  • Re-base to Alpine 3.21 with cleanup of the Dockerfile certificate management by @vladaurosh #968🙏✨
  • Support for regex validation in settings via the base64Regex property in elementOptions 🆕
  • API refresh between plugin execution to minimize Loading times on the devices page after editing a device #923

Other Info

🆕 - New features ✨ - Fixes & Improvements ⚠ - Possibly breaking changes 🧪 - Experimental/work in progress

What's Changed

  • Using busybox crond instead of dcron, starting it with s6 by @vladaurosh in #966
  • [ASUSWRT] Added router port to configurtation by @labmonkey in #970
  • Changed the "absolute URL" target to "relative URL" in common.js by @cvc90 in #976
  • Adding option to set user ID and GID by @vladaurosh in #980
  • Update default PUID and PGID, and update documentation by @vladaurosh in #981

Full Changelog: v24.1.19...v25.2.8

v25.1.19 - 🧪Experimental Home Assistant addon and AsusWRT import

19 Jan 12:16

Choose a tag to compare

Hey 👋

(re-release due to wrong tag)

This release brings you a new ASUSWRT Plugin to import devices from Asus routers by @labmonkey 🙏 Additionally, me and @alexbelgium have been working on enabling the installation of NetAlertX via a Home Assistant addon. This release contains fixes that will allow for ingress support (displaying the UI of NetAlertX) in Home Assistant. You can now also export your settings via the Maintenance section and there's more details displayed in the Plugins MAC columns.

image image
image image

🏘️ Community

⚙Settings

  • A new setting UI_TOPOLOGY_ORDER to change the order of devices in the Network view by the port number #949

🔌Plugins

  • A new ASUSWRT Plugin to import devices from Asus routers by @labmonkey 🙏🆕

🖼 UI

  • More information in MAC columns in plugins #951
  • Export and Import of the app.conf file via UI in Maintenance 🆕

Other Info

🆕 - New features ✨ - Fixes & Improvements ⚠ - Possibly breaking changes 🧪 - Experimental/work in progress

What's Changed

New Contributors

Full Changelog: v25.1.8...v24.1.19

v25.1.8 - ⚙️ Custom Device Properties and OpenWRT support

08 Jan 00:57

Choose a tag to compare

Happy new year! 🥳

Did you ever want to add some info to a device but none of the fields seemed right? 🤔 This release enables custom device properties where you can add any number of fields to a device. There are some predefined actions you can use and I might add things in the future as feedback trickles in. Read more about Custom Device Properties.

We also got a late Christmas present from @vaga9938 who developed the LUCIRPC plugin to import devices from OpenWRT 🎁

The release also contains some other minor improvements and fixes, so please check the full list of improvements below.

image

📚Docs updates

⚙Settings

  • New ICMP_IN_REGEX to include IPs to the ICMP (ping) scan to speed up the scan cycles 🆕

🔌Plugins

  • OpenWRT import via the LUCIRPC plugin by @vaga9938 🙏🆕
  • A new WOL plugin to automate Wake-On-Lan calls for down devices 🆕
  • ICMP didn't manage device online status #934
  • More robust FREEBOX device parsing to prevent errors #927
  • Custom names from Mikrotik fix in MKSCAN + cleanups by @kpolszewski 🙏✨

🖼 UI

  • A fix for archived devices still being displayed in the My devices listing #920
  • Network Site changed to dropdown for easier population #930
  • Displaying of the Sync Node field in the device details #931

💠Core app updates

Internal changes affecting the whole app and usually significant to developers 👩‍💻👨‍💻

  • You can now store custom properties on devices 🆕
  • Installation didn't create /app/log/plugins if /app/log was mounted #921

Other Info

🆕 - New features ✨ - Fixes & Improvements ⚠ - Possibly breaking changes 🧪 - Experimental/work in progress

What's Changed

  • Restore manual naming of static leases using comments for MKSCAN + cleanups by @kpolszewski in #940

New Contributors

Full Changelog: v24.12.23...v25.1.8

v24.12.23 - 🎁New FREEBOX, IPNEIGH, ICMP plugins and better performance

22 Dec 23:41
febc26b

Choose a tag to compare

This release contains a lot of changes, hopefully for the better 🙂

On the performance improvements, the app can now handle displaying 3000+ devices as I moved to server-side data retrieval (GraphQL - new application port needs to be made available). More work will be necessary to make the whole app performant, but I'll wait for feedback first. If you are interested in improving the performance further, especially by reducing Disk IO, go through the updated Performance improvements documentation - big thanks to @ingoratsdorf for the help here. There is also a new setting to disable Plugin discovery, if you want to speed up the saving and start time further.

On the usability side, I did lots of refactoring on the Devices details page to make the maintenance of it easier and the UI a bit more unified. There is now a better support of Remote network scanning, by using ICMP or NMAPDEV plugins. Read the remote networks docs for details. You can now also create new devices manually if you then for example want to scan them with the ICMP plugin or if you want to add undiscoverable devices with more details (I'll probably remove the UNDIS undiscoverables plugin as a result - reach out if you have feedback!).

There have been some amazing contributions from the community from @KayJay7, @Lucide, @Leicas, Antoine Weill--Duflos (plugins work), @ingoratsdorf (docs, testing), @ytorres (bare-metal install improvements), Максим Горпиніч (full Ukrainian translation), Anton Garcias, Sylvain Pichon, @Atalanttore, @MacVille, @YoSafeguard, @stan0ne, @mapi68, @gallegonovato, @GitSpoon (translation work)

🙏 thanks everyone - I wouldn't be able to maintain all of this just by myself 🙏

There have been lot's of other changes, so check the details below, especially when it comes to log and API file locations or if you have custom integrations relying on old DB column names.

Screenshots

image image
image image

❗ Known issues:

  • Events and Presence pages are still unoptimized

💔 Breaking changes

Sometimes I have to introduce breaking changes

  • Devices table column name changes to support access via GraphQL - might interfere with your existing integrations
  • If jumping to this version from an older version (3 + months older) please run v24.10.31 before upgrading to this version
  • If running multiple NetAlertX instances on the same URL, make sure GRAPHQL_PORT is unique across all instances
  • If using PRO font awesome icons the location has changed from /app/front/lib/AdminLTE/bower_components/font-awesome to /app/front/lib/font-awesome

🏘️ Community

  • This project received some amazing support from the community in this release, @KayJay7, @Lucide, @Leicas creating and fixing plugins 🙏

📚Docs updates

⚙Settings

  • The SYNC_api_token is used in the GraphQL server and renamed to API_TOKEN and moved to the General section ⚠
  • A new NMAPDEV_FAKE_MAC setting to generate MAC addresses from IPs 🆕
  • A new DISCOVER_PLUGINS setting to speed up app loading time 🆕

🔌Plugins

  • New FREEBOX device import plugin by @KayJay7 and @Lucide #799 🙏 🆕
  • New IPNEIGH plugin for device scans by the amazing @KayJay7 🙏 🆕
  • Fixes to the Omada OMDSDN plugin by the great @Leicas 🙏 should be fixing #825 #882
  • New ICMP plugin for device status checks #723 #891 🆕
  • SMTP: Missing Date filed in email caused issues with some SMTP providers #885
  • The PHOLUS plugin was removed as the functionality is replaced by AVAHISCAN, NBTSCAN and NSLOOKUP

🖼 UI

  • Manually create dummy devices with all details #891 🆕
  • Better Offline/Online status resolution in the Devices listing page preventing Online + Grey background statuses ✨
  • Wake-on-LAN (WOL) moved to the Tools tab ✨
  • Copy details from device moved to the Tools tab ✨
  • Rebuild and refactoring of the Device edit screen ✨
  • Removal of the "Scan device" attribute as it wasn't used anywhere ✨

💠Core app updates

Internal changes affecting the whole app and usually significant to developers 👩‍💻👨‍💻

  • Bare-metal installation improvements by @ytorres 🙏✨
  • GraphQL server added to improve application performance 🆕
  • Integer names were causing backed restarts #874
  • Rewrite of the Devices page to support 3000+ devices ✨
  • Vendor names were not automatically updated #889
  • Hopefully better wal database file management to keep the file size in check✨
  • Move of the API folder from /app/front/api to /app/api
  • Move of the LOGS folder from /app/front/log to /app/log
  • Move of the last_results.log from the plugins folders to /app/front/log/plugins/last_result.PLUGPREF.log
  • SYNC_api_token renamed to API_TOKEN and moved to the General section ⚠

Other Info

🆕 - New features ✨ - Fixes & Improvements ⚠ - Possibly breaking changes 🧪 - Experimental/work in progress

Previous releases:

https://github.com/jokob-sk/NetAlertX/releases

Target release frequency:

  • Monthly

What's Changed

New Contributors

Full Changelog: v24.10.31...v24.12.23

v24.10.31 - 🔌 Better Plugins UI and Auto deletion of Offline devices

31 Oct 04:54

Choose a tag to compare

In this release @johnwang16 helped solve a couple of issues, for example he fixed an issue where the presence would be empty for always-on devices 🙏 Another contributor, @richtj999 helped write up a use case for the Sync Hub. Thanks guys and everyone else that contributed, like the always speedy translation team @mapi68 , @realgooseman , @GitSpoon , @YoSafeguard , @wial88 , @ytorres ... Also @Stationary-1 helped me to debug a couple of issues, including 2 related to the INTRNSPD plugin, so it's more robust in reporting your internet speeds.

Other improvements include adding a Source Plugin column, so that you see which plugin detected the device, a rebuild of the Plugins view with data tables so you can filter, sort and some other quality of life improvements, such disabling Alert Events on a Device won't prevent New Device notifications or a new setting HRS_TO_KEEP_OFFDEV to delete offline devices after a certain time. Check out more details below.

Thanks everyone for the help!

Screenshots

image image
image image

💔 Breaking changes

Sometimes I have to introduce breaking changes

  • If you used "UI_dark_mode":"True" in your docker-compose.yml you need to replace it with "UI_theme":"Dark" and you might need to rebuild your container.

📚Docs updates

⚙Settings

  • A new setting HRS_TO_KEEP_OFFDEV to delete offline devices after a certain time #865 🆕
  • Sync: Generate token/key buttons as they are also used for Homepage authentication #838 🆕

🔌Plugins

  • The INTRNSPD plugin didn't display values over 100 and was frequently failing #854
  • The ROGUEDHCP plugin didn't allow for custom timeout configuration #851
  • The UNFINMP plugin may have imported devices with incorrect MAC addresses causing restarts #848

🖼 UI

  • Auto dark theme selection ( UI_dark_mode -> UI_theme) depending on system settings by @johnwang16 🙏🆕
  • Rebuild the Plugins section with data tables allowing for filtering, sorting 🆕
  • Preventing infinite recursion on the Network diagram #857
  • Clickable IPs in the devices listing table #856 🆕
  • Colors explanation in the presence page 🆕
  • Custom values didn't show up in the Location dropdown #862
  • @cvc90 fixed an issue causing problems with reverse proxies on the Notifications page ✨

💠Core app updates

Internal changes affecting the whole app and usually significant to developers 👩‍💻👨‍💻

  • Empty presence of always on devices fixed by @johnwang16 🙏#814
  • A new Source Plugin column on the Devices tables so you can quickly see where the device was discovered 🆕
  • Disabling Alert Events on a Device won't prevent New Device notifications #262

Other Info

🆕 - New features ✨ - Fixes & Improvements ⚠ - Possibly breaking changes 🧪 - Experimental/work in progress

What's Changed

  • Changed the "absolute URL" target to "relative URL" in userNotifications.php for viewing reports by @cvc90 in #837
  • Fix network tree offline color for SVG icons by @johnwang16 in #850
  • Allow auto light/dark mode matching user OS setting by @johnwang16 in #853
  • Add events for imported devs by @johnwang16 in #855

New Contributors

Full Changelog: v24.10.12...v24.10.31

v24.10.12 - Better name discovery, MQTT and UI improvements ✨

12 Oct 01:07
d36486e

Choose a tag to compare

Hey everyone 👋

This release contains stability improvements, bug fixes and a couple of new features. There is a new plugin for better device name resolution (AVAHISCAN) that helps getting more accurate device names especially for Apple devices. Thanks @stanelie for testing and the patience 🙂

Contributors helped me make the MQTT plugin better to support EMQX and to display time values in the Home Assistant attributes better. Thanks to @ingoratsdorf , @NightMean , @Jozko568 🙏

There are a couple of UI improvements in the Settings section on mobile, easier selection of Plugins, separately showing offline and down devices in the presence chart.

I've updated a few docs and also written up how to improve the performance on how to keep the app chugging along without issues 🚂

As always, thanks to everyone helping with translations (@ytorres, @Noschvie, @mapi68, @YoSafeguard, @gallegonovato), answering discussions (@leiweibau, @FlyingToto), testing (@corasaniti) and contributing (@RincewindX) in any way! 💪

Make sure you refresh your browser cache (usually shift + reload button) - and click the 🔄 refresh button in the top right corner.

image image
image image

🏘️ Community

  • Big thanks to @corasaniti for testing the dev branch 🙏

📚Docs updates

⚙Settings

  • MQTT_topic_root allowing to specify a custom topic, e.g. netalertx instead of the default system-sensors
  • NEWDEV_ignored_IPs and NEWDEV_ignored_MACs where not applied on new device discovery #836

🔌Plugins

  • AVAHISCAN for mDNS device name lookup to retrieve better names especially for Apple devices #815 🆕
  • MQTT improvements to support EMQX by @ingoratsdorf
  • MQTT improvements by @NightMean and @Jozko568, such as better diacritics support ✨
  • UNIFIMP didn't handle new devices correctly if a port value was passed to the app #833
  • UNIFIMP is now normalizing strings so that diacritics are normalized and not skipped caméra -> camera
  • MIKROTIK didn't pass IPs correctly, so they were missing in the devices tables #835

🖼 UI

  • CSV export didn't handle quotes and new lines in the comments field #808
  • Presence over time chart shows Down devices separately from Offline devices #816 🆕
  • Settings Mobile UI improvements to show description in pop-up and full-width input area ✨
  • Gradual replacement of the click+select setting component with a drop-down and pill component 🆕
  • Removal of DB backup functionality (usually handled externally) in the Maintenance section for easier code maintenance ✨
🆕 - New features ✨ - Fixes & Improvements ⚠ - Possibly breaking changes 🧪 - Experimental/work in progress

Previous releases:

https://github.com/jokob-sk/NetAlertX/releases

Target release frequency:

  • Monthly

What's Changed

New Contributors

Full Changelog: v24.9.26...v24.10.12