Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Releases: netalertx/NetAlertX

v26.1.17 - 🔽 AdGuard Integration, Deployment Flexibility & MQTT Enhancements

17 Jan 04:26

Choose a tag to compare

Hey y'all 👋 ,

This release has a strong mix of new capabilities and long-requested fixes. Big thanks to continuous and new contributors.

The SNMP plugin now supports Fortinet / FortiGate devices, and the ICMP plugin now supports fping for faster scans. High-speed networks benefit from a new opt-in native binary for INTRSPD, and MQTT users can now receive full, rich notification payloads (matching webhook behavior) for events like new, down, and reconnected devices. This release also introduces AdGuard Home integration via a new import plugin, expands deployment flexibility with the return of PUID/GUID environment variables, and improves overall discovery accuracy.

Reverse-proxy setups are now more robust thanks to the new BACKEND_API_URL setting and improved documentation. MQTT now correctly supports anonymous connections, a new UI_LOCALE setting addresses browser-specific date quirks, and fake MAC addresses are clearly identifiable using the FA:CE: prefix.

As always, huge thanks to the community contributors who helped push this release forward — your PRs, testing, and feedback continue to make NetAlertX better with every iteration 🙏

See below for more detailed updates.

Screenshots

img

💔 Breaking changes

Sometimes I have to introduce breaking changes

docker-compose.yml updates

To add the GUID and PUID capability we had to add new permissions:

    cap_add:                                        # Add only the necessary capabilities
      - NET_ADMIN                                   # Required for ARP scanning
      - NET_RAW                                     # Required for raw socket operations
      - NET_BIND_SERVICE
      - CHOWN       # 🆕new line
      - SETUID      # 🆕new line
      - SETGID      # 🆕new line

See the updated docker-compose docs for details

For reverse proxies use the BACKEND_API_URL setting to point to your backend port

If SMTP not working as expected please navigate to Settings and do the following:

  1. Clear the existing SMTP_PASS in the UI
  2. Enter your SMTP_PASS
  3. Click Save

Warning

  • ⚠DEPRECATED: The port of the sync nodes for the SYNC plugin will change to the value of the GRAPHQL_PORT setting. Both ports are currently supported, so please update your configuration to point to the new port in the SYNC_hub_url and SYNC_nodes settings.
  • 🔺DEPRECATED: If you have implemented external applications using the OLD API endpoints, please migrate to the NEW API endpoints.

Some OLD endpoints are still present but they will be now removed in upcoming versions.

🆕New capabilities

  • SNMPDSC now supports Fortinet/Fortigate systems #1324
  • INTRSPD now supports opt-in native binary for high-sped internet connections (see docs on how to enable) - thanks to @amir0ff 🙏
  • MQTT now supports sending of full notification messages #1339
  • A new AdGuard import plugin ADGUARDIMP #1341
  • Re-introduction of PUID and GUID environmental variables for more deployment options - thanks to @adamoutler 🙏
  • The ICMP plugin now supports fping via the ICMP_MODE setting #1331

✨Fixes and Improvements

  • For reverse proxies use the BACKEND_API_URL setting to point to your backend port
  • More robust error handling in the Network topology view #1323 #1308
  • More robust handling of date-time stamps YYYY.DD.MM #1312
  • Backups of app.conf files created in wrong directory during settings save #1311
  • APP_CONF_OVERRIDE was not applied #1328
  • MQTT allows for anonymous connections #1358
  • A new UI_LOCALE setting to control date display as Chrome and Firefox behave differently when using the TZ #1335
  • Fake MAC addresses will from now start with FA:CE: to make it easily distinguishable and detectable #1344
  • Better Reverse Proxy support and Authentik docs by @luckylinux 🙏
  • New NEWDEV_NAME_CLEANUP_REGEX defaults to cleanup .home.arpa names #1383

🔝 Current priorities

  • High priority: Settings, Workflows and Plugins core improvements
  • Low priority: UI (PRs welcome, but follow guidelines)

What's Changed

New Contributors

Full Changelog: v25.11.29...v26.1.17

v25.11.29 - 🛡 Enhanced security, PIHOLEAPI and changes in data folders

29 Nov 05:34

Choose a tag to compare

Hi everyone 👋 !

This release significantly improves the security of the application by running on a read-only filesystem. Because of this major internal change, manual migration steps are required. The user data Docker volume paths have moved from /app to /data, and a tmpfs mount is now required for all writable directories. Find a sample docker-compose.yml template below and read the Migration docs for details on how the permissions changed. Also ensure you re-save the settings after the migration (See details below on why).

A big thanks to @adamoutler who rewrote the installation scripts and created a comprehensive pre-initialization check, enhancing the code-base with linting checks, created a devcontainer to speed-up development and various other additions.

This version also adds a PIHOLEAPI plugin that leverages the new v6 API for device retrieval from your PiHole instance. Thank you to @leiweibau for the bulk of the code from his PiAlert project.

Thanks also to @JVKeller for help with the bare-metal install.

As always, thank you to all translators: @GitSpoon , @maksim2005UKR , @mapi68 , "R" , @Atalanttore , "anton garcias", @YoSafeguard , @AlmaziikDev , "jeet moh", @Blueberryy , @p-bo , @bo3bdo , "Carlos M. Silva"

Minimum required docker-compose.yml template:

services:
  netalertx:
    container_name: netalertx
    image: "ghcr.io/jokob-sk/netalertx"  # 🆕 This has changed
    network_mode: "host"
    cap_drop:                # 🆕 New line
      - ALL                  # 🆕 New line
    cap_add:                 # 🆕 New line
      - NET_RAW              # 🆕 New line
      - NET_ADMIN            # 🆕 New line
      - NET_BIND_SERVICE     # 🆕 New line
    restart: unless-stopped
    volumes:
      - /local_data_dir:/data  # 🆕 This folder contains your /db and /config directories and the parent changed from /app to /data
      # Ensuring the timezone is the same as on the server - make sure also the TIMEZONE setting is configured
      - /etc/localtime:/etc/localtime:ro    # 🆕 New line
    environment:
      - PORT=20211
    # 🆕 New "tmpfs" section START 🔽
    tmpfs:
      # All writable runtime state resides under /tmp; comment out to persist logs between restarts
      - "/tmp:uid=20211,gid=20211,mode=1700,rw,noexec,nosuid,nodev,async,noatime,nodiratime"
    # 🆕 New "tmpfs" section END  🔼

See the Migration docs for details as the folders and files need to be owned by a 20211 user and group.

img

❗ Known issues:

  • See open issues.

📃 Changelog

💔 Breaking changes

Sometimes I have to introduce breaking changes

  • ⏰ Reminder: Due to code refactoring in order to upgrade to this version from a version before v25.5.24, you have to upgrade to v25.5.24 before upgrading to this version). See the upgrades docs for details.
  • 💔 Due to language string cleanup you will have to select your UI_LANG again and re-save your settings.
  • 💔 Due to the format of the SMTP_PASS setting changes you will have to re-save your settings.
  • 💔 The TZ=Europe/Berlin docker variable was replaced by a more common approach mapping - v /etc/localtime:/etc/localtime:ro
  • 💔 Due to security hardening the docker container volume locations changed, from /app to /data and a new tmpfs mount for all writable directories was added. See Migration docs for details.

Warning

  • ⚠️UPCOMING: The port of the sync nodes for the SYNC plugin will change to the value of the GRAPHQL_PORT setting. Both ports are currently supported, so please update your configuration to point to the new port in the SYNC_hub_url and SYNC_nodes settings.
  • ⚠️UPCOMING: If you have implemented external applications using the OLD API endpoints, please migrate to the NEW API endpoints.

🆕New capabilities

  • ARPSCAN_DURATION setting to run ARPSCAN for a longer time to try to discover IoT or similar devices #1172
  • Device name in page titles #1162
  • UI_DEFAULT_PAGE_SIZE setting to change the default page size #1181
  • NEWDEV_IP_MATCH_NAME setting to disable name discovery and matching based on IP if you don't have static IPs on your network
  • PIHOLEAPI plugin to connect to your PiHole instance via API #1282
  • Notifications now contain a link to the server in the footer as per the REPORT_DASHBOARD_URL setting #1267

✨Fixes and Improvements

  • events notifications enabled on the Internet root node and using the SYNC plugin led to IP flipping #1207
  • app.log line break fix
  • LOG_LEVEL not respected #1217
  • Compound notification filters didn't work #1210
  • The Device tile for All devices didn't work properly #1238
  • SNMPDSC didn't respect timeout settings #1231
  • Multi-edit preventing error if no devices selected #1219
  • SMTP_PASS didn't allow for ' quotes in passwords #1253
  • Devices with number-only names caused Network topology page error #1281
  • You can now use the --vlan parameter if you have both NMAPDEV and ARPSCAN enabled #1264
  • Performance optimizations of name lookups #1251
  • Better invalid data handling of the UNIFIAPI plugin #1224
  • More robust args handling in the NMAP plugin #1288
  • Better SCHEDULE cron value validation #1306

🔝 Current priorities

  • High priority: Settings, Workflows and Plugins core improvements
  • Low priority: UI (PRs welcome, but follow guidelines)

🐞 Known issues

If you have any debug info/suggestions regarding the above, please open a separate issue, thanks! 🤍

What's Changed

Read more

v25.10.1 - 📈Performance, UNIFIAPI, new API layer, SYNC port change

01 Oct 05:18

Choose a tag to compare

Hey everyone! 👋

Any contribution, big or small makes me incredibly grateful and happy. Currently going thru some bumps in life, so this release, with that many contributions, makes me breath easier and helps me focus on some necessary things outside of FOSS.

This release comes with lots of backend improvements and LOTS of contributions from the amazing @ingoratsdorf , @adamoutler, @PreistlyPython, @cvc90, @SantosSi , @ningmeng68 , @martinkuck , @FlyingToto , and @Virenbar 💙

To highlight biggest ones, @ingoratsdorf helped improve performance of the backend significantly - in some cases by over 50% in certain cases. This will be mostly felt on slower servers. He targeted disk writes, read access, and helped remove unnecessary setting changes checks.

Then @adamoutler swooped in to significantly improve the developer experience with a devcontainer setup and he is hardening the image, and fixing bugs all over the place.

On top of that more bare metal installation options are being worked on, the setup process is being streamlined, and security being hardened.

Hope everyone appreciates this release as much as I do.

Screenshots

img

💔 Breaking changes

Sometimes I have to introduce breaking changes

  • Reminder: Due to code refactoring in order to upgrade to this version from a version before v25.5.24, you have to upgrade to v25.5.24 before upgrading to this version). See the upgrades docs for details.

Warning

  • ⚠️UPCOMING: The port of the sync nodes for the SYNC plugin will change to the value of the GRAPHQL_PORT setting. Both ports are currently supported, so please update your configuration to point to the new port in the SYNC_hub_url and SYNC_nodes settings.
  • ⚠️UPCOMING: If you have implemented external applications using the OLD API endpoints, please migrate to the NEW API endpoints.

🆕New capabilities

✨Fixes and Improvements

  • Better handling of non-existing parent nodes which prevented the devices list to load #1132
  • Better handling of date time formats #1147
  • Performance improvements by @ingoratsdorf 🙏 #1144
  • Breaking and upcoming changes will be updated in #1150
  • A relative URL in the Reports page was fixed thanks to @cvc90 so reverse proxies work as expected 🙏
  • Muting SYNC plugin notifications if LOG_LEVEL set to minimal or none #1164

Previous releases:

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

What's Changed

New Contributors

Full Changelog: v25.8.6...v25.10.1

v25.8.6 - Prometheus metrics endpoint, better icon, type guessing 📊

05 Aug 23:29

Choose a tag to compare

Hi selfhosters! ☁️

A small release to fix a couple of outstanding issues and a nice addition by @kllngtme contributing a Prometheus metrics endpoint and NetAlertX-like looking Grafana template 📊

I also managed to sneak in a better icon and type guessing mechanism, with an easy to maintain (and contribute to 😉 ) heuristics json file.

As always, see all the stuff that has changed below.

img

💔 Breaking changes

Sometimes I have to introduce breaking changes

  • Reminder: Due to code refactoring in order to upgrade to this version from a version before v25.5.24, you have to upgrade to v25.5.24 before upgrading to this version). See the upgrades docs for details.

🆕New capabilities

✨Fixes and Improvements

  • Reworked device heuristics for guessing device icon an device type #1129
  • Further performance improvements to the System info page by switching from https://ifconfig.co to https://api64.ipify.org with a 10s timeout #1124
  • Fixed the dummy/manual device creation #1126
  • Fixed copying icons across devices of the same type #1128
  • Fixed the loading overlay on the Tools tab on devices when returning to a different device #1130
  • Fixed issue when creating new devices with number-only names #1131
  • System info sub-menu items

Previous releases:

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

Full Changelog: v25.7.30...v25.8.6

v25.7.30 - Relationship types and NICs support 🎨

30 Jul 12:44

Choose a tag to compare

Hi everyone! 👋

This release adds new ways to control device status via NICs, along with support for colored relationship types, including virtual devices. Children nodes are now shown on the device details page, complete with hover-over tooltips for quick insights.

The Network topology page has been redesigned with filtering, sorting, search, and hover-over info boxes for easier navigation 🔍. A new setting also allows you to hide specific relationship types from the main view 🛠️.

Additional improvements include available IP listings per subnet 📶, support for Apprise tags and non-SSL NTFY instances 📢, performance optimizations, translation updates 🌍, and various UI refinements for a smoother experience 🎨. See the full list of new capabilities, fixes, and improvements below.

A big thank YOU to all contributors to translations and code 🙏 :

Thanks to @dougmaitelli @fuad00 @slammingprogramming for code contributions 👨‍💻, and on the translations side, @kkumakuma for finalizing the Chinese translation 🥳 and @cosmicDustOfLightLength for a big push on the Polish one 🙌 as well as to ongoing translation maintenance by @slammingprogramming @ond000 @mapi68 @YoSafeguard @GitSpoon @Atalanttore @bo3bdo @Maksim2005UA2 @BekirKayraCigdem @ptsa @GoldBull3t @PrinsGeryha @Noschvie @mriosriquelme 🙏

img

💔 Breaking changes

Sometimes I have to introduce breaking changes

  • Reminder: Due to code refactoring in order to upgrade to this version from a version before v25.5.24, you have to upgrade to v25.5.24 before upgrading to this version). See the upgrades docs for details.

🆕New capabilities

  • New relationship type option to be configured for devices
  • Colored relationship types to represent different types of connections and devices, such as NICs, virtual devices and more #724
  • Rework of the Network topology page with Offline/Archived filters, search, ordering, hover info boxes and more
  • Network node indicator of a network node via an icon
  • A new UI_hide_rel_types setting to select which relationships to hide from the main devices lists
  • Device presence status override based on NICs
  • Children devices and NICs shown on Device details screens with hover-over details peeking
  • Filtering and sorting support added on the Network screen of Unassigned and Connected devices
  • Added support for non-ssl self-hosted NTFY instances via the NTFY_VERIFY_SSL setting #1117
  • Hover-over details peeking in some devices views
  • Added support for Apprise tags by @dougmaitelli 🙏 #1122
  • List of available IPs per subnet in System info #1124

✨Fixes and Improvements

  • Better icon and device type guessing from @slammingprogramming 🙏
  • Incorrect volume fix in docker-compose by @fuad00 🙏
  • Performance gains by adding DB indexes mostly on the Device details pages
  • Device details tabs are only loaded on focus speeding up initial load time
  • Last Seen (devLastConnection) is now updated when the device was last connected, and not only when it switched from offline to online as this seems to be a more logical behavior
  • Network tree setup docs update
  • Links opening in a new tab are marked with an arrow to prevent confusion when navigating the UI
  • Small dark theme fixes
  • Removal of now unnecessary VOIDED events detection that was causing missing-events in the presence views #1119
  • Fix of double-bars for newly detected devices #1119
  • Integrations / Device -> Plugins view only shows plugins with data to streamline the UI
  • Better icon selector for custom device properties

Previous releases:

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

Target release frequency:

  • Monthly

What's Changed

New Contributors

Full Changelog: v25.7.4...v25.7.30

v25.7.4 - Unifi hotfix 🩹

04 Jul 22:07

Choose a tag to compare

Quick hot-fix - left in some test code 🤦‍♂️

Thanks to @scalerow for quick report and fix 🙏

🔌Plugins

  • Fix for UNFIMP where I left some test code ✨

What's Changed

New Contributors

Full Changelog: v25.7.3...v25.7.4

v25.7.3 - 🌍 Arabic translation and various fixes

03 Jul 21:52

Choose a tag to compare

Hey everyone 👋,

This is a lighter release of some fixes I wanted to get out before implementing some bigger changes. I want to thank the community to help me translate NetAlertX into almost 15 languages! 🌐 The latest big addition is @bo3bdo for a full Arabic translation and @ond000 who started on the Czech translation. As always, thanks everyone keeping the translations up-to-date: @mapi68 @Atalanttoreweblate @Maksim2005UA @GitSpoon @YoSafeguard @slammingprogramming @oldmav

img

Any small contribution to translations or code helps to keep this project going - consistency is key! 🙂

Read on what additional fixes are included in this release. 🔽

💔 Breaking changes

Sometimes I have to introduce breaking changes

  • Reminder: Due to code refactoring in order to upgrade to this version you have to run a previous version of the application (run v25.5.24 before upgrading to this version). See the upgrades docs for details.

🏘️ Community

📚Docs updates

⚙Settings

  • Fixed incorrect REFRESH_FQDN check in the device name discovery scanners #1081

🔌Plugins

  • Fix for devices with number only names that were not sent via MQTT #1102
  • Fix for the FREEBOX plugin by @mathoudebine #1084
  • Fix for VNDRPDT not updating the vendor database #1080

🖼 UI

  • Archived devices are now being hidden in the Network topology view ✨

Other Info

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

What's Changed

New Contributors

Full Changelog: v25.6.7...v25.7.3

v25.6.7 - Legacy upgrade removal and Fully Qualified Domain Names 🆎

06 Jun 23:44

Choose a tag to compare

Hi everyone! 👋

To simplify code maintenance (the database.py file has been reduced from 1000 to 500 lines), I’ve removed legacy migration support from PiAlert and dropped support for older database upgrade paths.

There’s no impact if you're upgrading from version v25.5.24 to this release.
However, if you're on an older version, please upgrade to v25.5.24 first by pulling the previous image:

ghcr.io/jokob-sk/netalertx:25.5.24

Then restart the application.

Upgrading from PiAlert is still supported — just ensure you first run the v25.5.24 version before upgrading to the latest release.


New in this version:

  • ✅ Auto-updated FQDN (Fully Qualified Domain Name) collection
  • 🔍 New DIGSCAN plugin to collect FQDN via active scans
  • 🛠️ Added init check under the Maintenance section to help debug startup issues

Big thanks to @johnwang16 for the reverse proxy fixes, and to everyone who submitted translations so quickly — @GitSpoon, @mapi68, @Maksim2005UA, @yunyi35 🙏

Hope you find the new features useful! As always, happy to hear your feedback here or on Discord.

img

💔 Breaking changes

Sometimes I have to introduce breaking changes

  • Due to code refactoring in order to upgrade to this version you have to run a previous version of the application (e.g. run ghcr.io/jokob-sk/netalertx:25.5.24 before upgrading to this version). To simplify maintenance migration from PiAlert has been removed and previous PiAlert installations will have to run the ghcr.io/jokob-sk/netalertx:25.5.24 image for an automated migration. See the migration docs for details.

📚Docs updates

⚙Settings

  • A new REFRESH_FQDN setting to auto-update the Device Fully Qualified Domain Name (FQDN) #1065 🆕

🔌Plugins

  • DIGSCAN new Dig plugin from code refactoring 🆕

🖼 UI

  • New Initialization check under Maintenance 🆕
  • devMac added to workflow fields for more automation options 🆕

Other Info

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

What's Changed

Full Changelog: v25.5.24...v25.6.7

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