-
-
Notifications
You must be signed in to change notification settings - Fork 365
Closed
Labels
Docker 🐋Docker relatedDocker relatedbug 🐛Something isn't workingSomething isn't workingnext release/in dev image 🚀This is coming in the next release or was already released if the issue is Closed.This is coming in the next release or was already released if the issue is Closed.
Description
Is there an existing issue for this?
- I have searched the existing open and closed issues and I checked the docs https://jokob-sk.github.io/NetAlertX/
The issue occurs in the following browsers. Select at least 2.
- Firefox
- Chrome
- Edge
- Safari (unsupported) - PRs welcome
- N/A - This is an issue with the backend
Current Behavior
Version: dev-20251218-061658. Running in Docker on Synology (compose file via portainer). V25.10.1 this was working.
Since a recent update, Wake on Lan has stopped working. Have 2 different networks this behaviour has occurred on. Was working previously. Have also tested with alternate WOL utilities which wake the machines fine.
The interface says the WOL command was sent and no errors within.
I also tried a fresh instance rather than migrating from prior version byt same behaviour
Expected Behavior
Wake on Lan button to wake targert machine with a magic packet
Steps To Reproduce
Select a host a press the wake on lan button under tools
Relevant app.conf settings
#-----------------AUTOGENERATED FILE-----------------#
# #
# Generated: 2025-12-15_22-06-23 #
# #
# Config file for the LAN intruder detection app: #
# https://github.com/jokob-sk/NetAlertX #
# #
#-----------------AUTOGENERATED FILE-----------------#
# General
#---------------------------
LOADED_PLUGINS=['ARPSCAN','AVAHISCAN','CSVBCKP','DBCLNP','DIGSCAN','INTRNT','MAINT','NEWDEV','NBTSCAN','NSLOOKUP','NTFPRCS','SETPWD','SMTP','SYNC','VNDRPDT','WORKFLOWS','UI','CUSTPROP','UNFIMP']
LOADED_PLUGINS__metadata="{}"
DISCOVER_PLUGINS=True
DISCOVER_PLUGINS__metadata="{}"
SCAN_SUBNETS=['--localnet','192.168.1.0/24 --interface=eth0','192.168.1.0/24 --interface=eth1']
SCAN_SUBNETS__metadata="{}"
LOG_LEVEL='verbose'
LOG_LEVEL__metadata="{}"
TIMEZONE='Europe/Berlin'
TIMEZONE__metadata="{}"
PLUGINS_KEEP_HIST=250
PLUGINS_KEEP_HIST__metadata="{}"
REPORT_DASHBOARD_URL='update_REPORT_DASHBOARD_URL_setting'
REPORT_DASHBOARD_URL__metadata="{}"
DAYS_TO_KEEP_EVENTS=90
DAYS_TO_KEEP_EVENTS__metadata="{}"
HRS_TO_KEEP_NEWDEV=0
HRS_TO_KEEP_NEWDEV__metadata="{}"
HRS_TO_KEEP_OFFDEV=0
HRS_TO_KEEP_OFFDEV__metadata="{}"
CLEAR_NEW_FLAG=0
CLEAR_NEW_FLAG__metadata="{}"
REFRESH_FQDN=False
REFRESH_FQDN__metadata="{}"
API_CUSTOM_SQL='SELECT * FROM Devices WHERE devPresentLastScan = 0'
API_CUSTOM_SQL__metadata="{}"
VERSION='dev-20251212-053949'
VERSION__metadata="{}"
NETWORK_DEVICE_TYPES=['AP','Access Point','Gateway','Firewall','Hypervisor','Powerline','Switch','WLAN','PLC','Router','USB LAN Adapter','USB WIFI Adapter','Internet']
NETWORK_DEVICE_TYPES__metadata="{}"
GRAPHQL_PORT=20212
GRAPHQL_PORT__metadata="{}"
API_TOKEN='t_LBgNqDQeI8lOMZJhHGXp'
API_TOKEN__metadata="{}"docker-compose.yml
services:
netalertx:
#use an environmental variable to set host networking mode if needed
container_name: netalertx # The name when you docker contiainer ls
image: ghcr.io/jokob-sk/netalertx-dev:latest
network_mode: ${NETALERTX_NETWORK_MODE:-host} # Use host networking for ARP scanning and other services
read_only: true # Make the container filesystem read-only
cap_drop: # Drop all capabilities for enhanced security
- ALL
cap_add: # Add only the necessary capabilities
- NET_ADMIN # Required for ARP scanning
- NET_RAW # Required for raw socket operations
- NET_BIND_SERVICE # Required to bind to privileged ports (nbtscan)
volumes:
- /volume1/docker/netalertx:/data:rw
- /etc/localtime:/etc/localtime:ro
# Example custom local folder called /home/user/netalertx_data
# - type: bind
# source: /home/user/netalertx_data
# target: /data
# read_only: false
# ... or use the alternative format
# - /home/user/netalertx_data:/data:rw
# Mount your DHCP server file into NetAlertX for a plugin to access
# - path/on/host/to/dhcp.file:/resources/dhcp.file
# tmpfs mount consolidates writable state for a read-only container and improves performance
# uid=20211 and gid=20211 is the netalertx user inside the container
# mode=1700 grants rwx------ permissions to the netalertx user only
tmpfs:
# Comment out to retain logs between container restarts - this has a server performance impact.
- "/tmp:uid=20211,gid=20211,mode=1700,rw,noexec,nosuid,nodev,async,noatime,nodiratime"
# Retain logs - comment out tmpfs /tmp if you want to retain logs between container restarts
# Please note if you remove the /tmp mount, you must create and maintain sub-folder mounts.
# - /path/on/host/log:/tmp/log
# - "/tmp/api:uid=20211,gid=20211,mode=1700,rw,noexec,nosuid,nodev,async,noatime,nodiratime"
# - "/tmp/nginx:uid=20211,gid=20211,mode=1700,rw,noexec,nosuid,nodev,async,noatime,nodiratime"
# - "/tmp/run:uid=20211,gid=20211,mode=1700,rw,noexec,nosuid,nodev,async,noatime,nodiratime"
environment:
LISTEN_ADDR: ${LISTEN_ADDR:-0.0.0.0} # Listen for connections on all interfaces
PORT: ${PORT:-20211} # Application port
GRAPHQL_PORT: ${GRAPHQL_PORT:-20212} # GraphQL API port (passed into APP_CONF_OVERRIDE at runtime)
# NETALERTX_DEBUG: ${NETALERTX_DEBUG:-0} # 0=kill all services and restart if any dies. 1 keeps running dead services.
env_file:
- stack.env
# Resource limits to prevent resource exhaustion
mem_limit: 1024m # Maximum memory usage
mem_reservation: 512m # Soft memory limit
cpu_shares: 512 # Relative CPU weight for CPU contention scenarios
pids_limit: 512 # Limit the number of processes/threads to prevent fork bombs
logging:
driver: "json-file" # Use JSON file logging driver
options:
max-size: "10m" # Rotate log files after they reach 10MB
max-file: "3" # Keep a maximum of 3 log files
# Always restart the container unless explicitly stopped
restart: unless-stopped
healthcheck:
test: curl -f http://localhost:17811/ || exit 1
volumes: # Persistent volume for configuration and database storage
netalertx_data:
# services:
# netalertx:
# container_name: netalertx
# healthcheck:
# test: curl -f http://localhost:17811/ || exit 1
# mem_limit: 1g
# cpu_shares: 768
# security_opt:
# - no-new-privileges:true
# volumes:
# - /volume1/docker/netalertx/config:/data/config:rw
# - /volume1/docker/netalertx/db:/data/db:rw
# - /volume1/docker/netalertx/logs:/tmp/log:rw
# environment:
# TZ: Australia/Melbourne
# PORT: 17811
# HOST_USER_ID: 1027
# HOST_USER_GID: 100
# network_mode: host
# restart: on-failure:5
# image: jokobsk/netalertx:latest
# cap_drop: # Drop all capabilities for enhanced security
# - ALL
# cap_add: # Add only the necessary capabilities
# - NET_ADMIN # Required for ARP scanning
# - NET_RAW # Required for raw socket operations
# - NET_BIND_SERVICE # Required to bind to privileged ports (nbtscan)What installation are you running?
Dev (netalertx-dev)
Debug or Trace enabled
- I have read and followed the steps in the wiki link above and provided the required debug logs and the log section covers the time when the issue occurs.
Relevant app.log section
Lines
100
Actions
--> first run config.sh
══════════════════════════════════════════════════════════════════════════════
🆕 First run detected. Default configuration written to /data/config/app.conf.
Review your settings in the UI or edit the file directly before trusting
this instance in production.
══════════════════════════════════════════════════════════════════════════════
--> first run db.sh
══════════════════════════════════════════════════════════════════════════════
🆕 First run detected — building initial database at: /data/db/app.db
Do not interrupt this step. When complete, consider backing up the fresh
DB before onboarding sensitive or critical networks.
══════════════════════════════════════════════════════════════════════════════
--> mandatory folders.sh
* Creating NetAlertX log directory.
* Creating NetAlertX API cache.
* Creating System services runtime directory.
* Creating nginx active configuration directory.
* Creating Plugins log.
* Creating System services run log.
* Creating System services run tmp.
* Creating DB locked log.
* Creating Execution queue log.
--> writable config.sh
--> apply conf override.sh
APP_CONF_OVERRIDE is not set. Skipping override config file creation.
--> nginx config.sh
--> user netalertx.sh
--> host mode network.sh
--> layer 2 capabilities.sh
--> excessive capabilities.sh
--> appliance integrity.sh
--> ports available.sh
Setting APP_CONF_OVERRIDE to {"GRAPHQL_PORT":"20212"}
Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 &
Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr &
Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2)
Starting /usr/sbin/nginx -p "/tmp/run/" -c "/tmp/nginx/active-config/nginx.conf" -g "error_log /dev/stderr; error_log /tmp/log/nginx-error.log; daemon off;" &
Successfully updated IEEE OUI database (112254 entries)
Caught signal, shutting down services...
Service signal exited with status 143.
Supercronic stopped! (exit 143)
nginx stopped! (exit 143)
php-fpm stopped! (exit 143)
All services stopped.
\033[1;31m
_ _ _ ___ _ _ __ __
| \ | | | | / _ \| | | | \ \ / /
| \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V /
| . |/ _ \ __| _ | |/ _ \ __| __|/ \
| |\ | __/ |_| | | | | __/ | | |_/ /^\ \
\_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/
\033[0m Network intruder and presence detector.
https://netalertx.com
Startup pre-checks
--> storage permission.sh
--> data migration.sh
--> mounts.py
Path | Writeable | Mount | RAMDisk | Performance | DataLoss
--------------------------+-----------+-------+---------+-------------+----------
/data | ✅ | ✅ | ➖ | ➖ | ✅
/data/db | ✅ | ✅ | ➖ | ➖ | ✅
/data/config | ✅ | ✅ | ➖ | ➖ | ✅
/tmp/run/tmp | ✅ | ✅ | ✅ | ✅ | ✅
/tmp/api | ✅ | ✅ | ✅ | ✅ | ✅
/tmp/log | ✅ | ✅ | ✅ | ✅ | ✅
/tmp/run | ✅ | ✅ | ✅ | ✅ | ✅
/tmp/nginx/active-config | ✅ | ✅ | ✅ | ✅ | ✅
--> first run config.sh
--> first run db.sh
--> mandatory folders.sh
* Creating NetAlertX log directory.
* Creating NetAlertX API cache.
* Creating System services runtime directory.
* Creating nginx active configuration directory.
* Creating Plugins log.
* Creating System services run log.
* Creating System services run tmp.
* Creating DB locked log.
* Creating Execution queue log.
--> writable config.sh
--> apply conf override.sh
APP_CONF_OVERRIDE is not set. Skipping override config file creation.
--> nginx config.sh
--> user netalertx.sh
--> host mode network.sh
--> layer 2 capabilities.sh
--> excessive capabilities.sh
--> appliance integrity.sh
--> ports available.sh
Setting APP_CONF_OVERRIDE to {"GRAPHQL_PORT":"20212"}
Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr &
Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 &
Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2)
Starting /usr/sbin/nginx -p "/tmp/run/" -c "/tmp/nginx/active-config/nginx.conf" -g "error_log /dev/stderr; error_log /tmp/log/nginx-error.log; daemon off;" &
Successfully updated IEEE OUI database (112310 entries)
Docker Logs
PASTE DOCKER LOG HERE. Using the triple backticks preserves format.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Docker 🐋Docker relatedDocker relatedbug 🐛Something isn't workingSomething isn't workingnext release/in dev image 🚀This is coming in the next release or was already released if the issue is Closed.This is coming in the next release or was already released if the issue is Closed.