How to install NetAlertX on your Synology NAS

NetAlertX is an open-source, self-hosted network monitoring application that scans local Wi-Fi or LAN networks to identify connected devices. It provides real-time alerts for events such as new device connections, disconnections, and critical changes. Users often utilize NetAlertX to detect intruders or unauthorized devices on their networks.

The application stores device metadata locally, ensuring that no data is sent externally. Additionally, it supports features like monitoring port changes and customizable notifications.

🚨 2025-12-10  Note: This has been updated for version NetAlertX25.11.29 🚨

Step-by-Step Instructions:

  1. Install the Container Manager on yourΒ Synology NAS. Developed by Docker and published by Synology.
  2. Create a shared Docker folder for storing your Docker containers.
  3. Inside the Docker folder, create a new folder and name itΒ NetAlertx.
  4. Find the absolute path of the folder created inΒ step 3Β by viewing the properties of the folder.
  5. In theΒ NetAlertxΒ folder, created inΒ step 3, create a new folder named data. (make the folder name Β lowercase)
  6. In the data folder create a new folder named logs. (make the folder name Β lowercase)
  7. In Container Manager, create a new project and name itΒ netalertx. Set the path to theΒ NetAlertx folder created inΒ step 3, and selectΒ Create docker-compose.yamlΒ as the source.
  8. Enter the following configuration information into the source box. Replace the volume paths with the path from step 4. The sample configuration shows /volume4/docker/NetAlertx/ as an example; replace this with your path.
    services:
    Β  netalertx:
    Β  container_name: netalertx
    Β  Β  image: "jokobsk/netalertx:latest"
    Β  network_mode: host
    Β  restart: unless-stopped
    Β  cap_drop:
    Β  Β  - ALL
    Β  Β  cap_add:
    Β  Β  - NET_ADMIN
    Β  Β  - NET_RAW
    Β  Β  - NET_BIND_SERVICE
    Β  Β  volumes:
    Β  Β  Β  - /volume4/docker/NetAlertx/data/logs:/tmp/log
    Β  Β  Β  - /volume4/docker/NetAlertx/data:/data:rw
    Β  Β  Β  - /etc/localtime:/etc/localtime:ro
    Β  Β  tmpfs:
    Β  Β  - "/tmp:uid=20211,gid=20211,mode=1700,rw,noexec,nosuid,nodev,async,noatime,nodiratime"
    Β  Β  environment:
    Β  Β  - PORT=20211

    # https://github.com/jokob-sk/NetAlertX/blob/main/docker-compose.yml
  9. Click Next
  10. Click Next
  11. Click Done to start the installation.
  12. Once installation is complete, access your NetAlertx installation through the host address of your Synology NAS, port 20211 (specified in the compose YAML).

Permanent link to this article: https://www.dvlprlife.com/2025/11/how-to-install-netalertx-on-your-synology-nas/

6 comments

Skip to comment form

    • Milcho on December 14, 2025 at 1:11 pm
    • Reply

    hey there,

    sadly it dont work for me…. the container will be crashing and restarting all time:

    2025/12/14 18:08:25 stderr ⚠️ ATTENTION: Configuration issues detected (marked with ❌).
    2025/12/14 18:08:25 stderr [1;33m══════════════════════════════════════════════════════════════════════════════
    2025/12/14 18:08:25 stderr
    2025/12/14 18:08:25 stderr
    2025/12/14 18:08:25 stdout /tmp/nginx/active-config | βœ… | βœ… | βœ… | βœ… | βœ…
    2025/12/14 18:08:25 stdout /tmp/run | βœ… | βœ… | βœ… | βœ… | βœ…
    2025/12/14 18:08:25 stdout /tmp/log | ❌ | βœ… | ❌ | ❌ | βœ…
    2025/12/14 18:08:25 stdout /tmp/api | βœ… | βœ… | βœ… | βœ… | βœ…
    2025/12/14 18:08:25 stdout /tmp/run/tmp | βœ… | βœ… | βœ… | βœ… | βœ…
    2025/12/14 18:08:25 stdout /data/config | ❌ | βœ… | βž– | βž– | βœ…
    2025/12/14 18:08:25 stdout /data/db | ❌ | βœ… | βž– | βž– | βœ…
    2025/12/14 18:08:25 stdout /data | ❌ | βœ… | βž– | βž– | βœ…
    2025/12/14 18:08:25 stdout ————————–+———–+——-+———+————-+———-
    2025/12/14 18:08:25 stdout Path | Writeable | Mount | RAMDisk | Performance | DataLoss

    1. What do you have for permissions for the NetAlertX folder? Try adjusting the permissions on the NetAlertX folder for Everyone to read.

        • milcho on December 17, 2025 at 7:03 am
        • Reply

        Read has not helped i set it now to Read / Write for Everyone now he has created a Config-folder and file but is still failing and is still not happy about the log-folder:

        2025/12/17 12:00:46 stderr ❌ NetAlertX startup aborted: critical failure in first run db.sh.
        2025/12/17 12:00:46 stderr [0m\033[1;31m══════════════════════════════════════════════════════════════════════════════
        2025/12/17 12:00:46 stderr ══════════════════════════════════════════════════════════════════════════════
        2025/12/17 12:00:46 stderr has write access to the database path and adequate storage space.
        2025/12/17 12:00:46 stderr Check the logs for detailed SQLite error messages. Ensure the container
        2025/12/17 12:00:46 stderr
        2025/12/17 12:00:46 stderr * File system issues preventing database file creation
        2025/12/17 12:00:46 stderr * Corrupted or inaccessible SQLite installation
        2025/12/17 12:00:46 stderr * Insufficient disk space or write permissions in the database directory
        2025/12/17 12:00:46 stderr
        2025/12/17 12:00:46 stderr failure typically indicates:
        2025/12/17 12:00:46 stderr NetAlertX cannot start without a properly initialized database. This
        2025/12/17 12:00:46 stderr
        2025/12/17 12:00:46 stderr ❌ CRITICAL: Database schema creation failed for /data/db/app.db.
        2025/12/17 12:00:46 stderr [1;31m══════════════════════════════════════════════════════════════════════════════
        2025/12/17 12:00:46 stderr [0mError: unable to open database “/data/db/app.db”: unable to open database file
        2025/12/17 12:00:46 stderr ══════════════════════════════════════════════════════════════════════════════
        2025/12/17 12:00:46 stderr database before onboarding sensitive networks.
        2025/12/17 12:00:46 stderr Do not interrupt this step. Once complete, consider backing up the fresh
        2025/12/17 12:00:46 stderr
        2025/12/17 12:00:46 stderr πŸ†• First run detected. Building initial database schema in /data/db/app.db.
        2025/12/17 12:00:46 stderr [1;36m══════════════════════════════════════════════════════════════════════════════
        2025/12/17 12:00:46 stdout –> first run db.sh
        2025/12/17 12:00:46 stdout –> first run config.sh
        2025/12/17 12:00:46 stderr [0m
        2025/12/17 12:00:46 stderr ══════════════════════════════════════════════════════════════════════════════
        2025/12/17 12:00:46 stderr https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md
        2025/12/17 12:00:46 stderr https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md
        2025/12/17 12:00:46 stderr Review the documentation for a correct setup:
        2025/12/17 12:00:46 stderr
        2025/12/17 12:00:46 stderr configuration can be quite complex.
        2025/12/17 12:00:46 stderr We recommend starting with the default docker-compose.yml as the
        2025/12/17 12:00:46 stderr
        2025/12/17 12:00:46 stderr as shown in the table above.
        2025/12/17 12:00:46 stderr Your configuration has write permission, dataloss, or performance issues
        2025/12/17 12:00:46 stderr
        2025/12/17 12:00:46 stderr ⚠️ ATTENTION: Configuration issues detected (marked with ❌).
        2025/12/17 12:00:46 stderr [1;33m══════════════════════════════════════════════════════════════════════════════
        2025/12/17 12:00:46 stderr
        2025/12/17 12:00:46 stderr
        2025/12/17 12:00:46 stdout /tmp/nginx/active-config | βœ… | βœ… | βœ… | βœ… | βœ…
        2025/12/17 12:00:46 stdout /tmp/run | βœ… | βœ… | βœ… | βœ… | βœ…
        2025/12/17 12:00:46 stdout /tmp/log | βœ… | βœ… | ❌ | ❌ | βœ…
        2025/12/17 12:00:46 stdout /tmp/api | βœ… | βœ… | βœ… | βœ… | βœ…
        2025/12/17 12:00:46 stdout /tmp/run/tmp | βœ… | βœ… | βœ… | βœ… | βœ…
        2025/12/17 12:00:46 stdout /data/config | βœ… | βœ… | βž– | βž– | βœ…
        2025/12/17 12:00:46 stdout /data/db | βœ… | βœ… | βž– | βž– | βœ…
        2025/12/17 12:00:46 stdout /data | βœ… | βœ… | βž– | βž– | βœ…
        2025/12/17 12:00:46 stdout ————————–+———–+——-+———+————-+———-
        2025/12/17 12:00:46 stdout Path | Writeable | Mount | RAMDisk | Performance | DataLoss

        1. Did you map the logs file? Review the options on https://github.com/jokob-sk/NetAlertX/blob/main/docker-compose.yml

    • Patrick on December 15, 2025 at 6:01 am
    • Reply

    Hi,

    Thanks for the reply to Milcho which resolved part of my issue, I’m now stuck with
    2025/12/15 10:54:32 stdout /tmp/nginx/active-config | βœ… | βœ… | βœ… | βœ… | βœ…
    2025/12/15 10:54:32 stdout /tmp/run | βœ… | βœ… | βœ… | βœ… | βœ…
    2025/12/15 10:54:32 stdout /tmp/log | βœ… | βœ… | ❌ | ❌ | βœ…
    2025/12/15 10:54:32 stdout /tmp/api | βœ… | βœ… | βœ… | βœ… | βœ…
    2025/12/15 10:54:32 stdout /tmp/run/tmp | βœ… | βœ… | βœ… | βœ… | βœ…
    2025/12/15 10:54:32 stdout /data/config | βœ… | βœ… | βž– | βž– | βœ…
    2025/12/15 10:54:32 stdout /data/db | βœ… | βœ… | βž– | βž– | βœ…
    2025/12/15 10:54:32 stdout /data | βœ… | βœ… | βž– | βž– | βœ…
    2025/12/15 10:54:32 stdout ————————–+———–+——-+———+————-+———-
    2025/12/15 10:54:32 stdout Path | Writeable | Mount | RAMDisk | Performance | DataLoss

    Is my DS223 not performant enough or are there other options to tweak?

    kind regards
    Patrick

    1. Are you mapping the /tmp/log file to a folder on your NAS? Is the folder accessible and does it have permissions? You can assign permissions to the user id 20211 or everyone (to test). If you do not want the log files to persist, you can remove that from the volume mapping.

Leave a Reply

Your email address will not be published.