Starting Docker Compose Tests - Sun Dec 21 23:37:01 UTC 2025 ========================================== File: docker-compose.missing-caps.yml ---------------------------------------- Testing: docker-compose.missing-caps.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations Running docker-compose up... Volume "configurations_netalertx_data" Creating Volume "configurations_netalertx_data" Created Container netalertx-test-missing-caps Creating Container netalertx-test-missing-caps Created Attaching to netalertx-test-missing-caps netalertx-test-missing-caps | exec /bin/sh: operation not permitted netalertx-test-missing-caps exited with code 255 File: docker-compose.readonly.yml ---------------------------------------- Testing: docker-compose.readonly.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations Running docker-compose up... Volume "configurations_netalertx_data" Creating Volume "configurations_netalertx_data" Created Container netalertx-test-readonly Creating Container netalertx-test-readonly Created Attaching to netalertx-test-readonly netalertx-test-readonly |  netalertx-test-readonly | _ _ _ ___ _ _ __ __ netalertx-test-readonly | | \ | | | | / _ \| | | | \ \ / / netalertx-test-readonly | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-readonly | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-readonly | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-readonly | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-readonly |  Network intruder and presence detector. netalertx-test-readonly | https://netalertx.com netalertx-test-readonly | netalertx-test-readonly | netalertx-test-readonly | Startup pre-checks netalertx-test-readonly | --> storage permission.sh netalertx-test-readonly | --> data migration.sh netalertx-test-readonly | --> mounts.py netalertx-test-readonly | --> first run config.sh netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-readonly | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-readonly | netalertx-test-readonly | Review your settings in the UI or edit the file directly before trusting netalertx-test-readonly | this instance in production. netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-readonly | --> first run db.sh netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-readonly | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-readonly | netalertx-test-readonly | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-readonly | DB before onboarding sensitive or critical networks. netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-readonly | --> mandatory folders.sh netalertx-test-readonly | --> apply conf override.sh netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-readonly | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-readonly | netalertx-test-readonly | Make sure the JSON content is correct before starting the application. netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-readonly | --> writable config.sh netalertx-test-readonly | --> nginx config.sh netalertx-test-readonly | --> user netalertx.sh netalertx-test-readonly | --> host mode network.sh netalertx-test-readonly | --> layer 2 capabilities.sh netalertx-test-readonly | --> excessive capabilities.sh netalertx-test-readonly | --> appliance integrity.sh netalertx-test-readonly | --> ports available.sh netalertx-test-readonly | /services/scripts/update_vendors.sh: line 28: /tmp/run/tmp/ieee-oui.txt.tmp: Read-only file system netalertx-test-readonly | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-readonly | Starting supercronic --debug "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-readonly | /services/start-php-fpm.sh: line 30: /tmp/log/app.php_errors.log: Read-only file system netalertx-test-readonly | /services/start-cron.sh: line 37: /tmp/log/cron.log: Read-only file system netalertx-test-readonly | php-fpm stopped! (exit 1) netalertx-test-readonly | Supercronic stopped! (exit 1) netalertx-test-readonly | mktemp: : Read-only file system netalertx-test-readonly | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-readonly | /services/start-backend.sh: line 16: /tmp/log/stdout.log: Read-only file system netalertx-test-readonly | ERROR: Failed to download or process OUI data Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-readonly Stopping Container netalertx-test-readonly Stopped File: docker-compose.writable.yml ---------------------------------------- Testing: docker-compose.writable.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations Running docker-compose up... Volume "configurations_netalertx_data" Creating Volume "configurations_netalertx_data" Created Container netalertx-test-writable Creating Container netalertx-test-writable Created Attaching to netalertx-test-writable netalertx-test-writable |  netalertx-test-writable | _ _ _ ___ _ _ __ __ netalertx-test-writable | | \ | | | | / _ \| | | | \ \ / / netalertx-test-writable | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-writable | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-writable | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-writable | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-writable |  Network intruder and presence detector. netalertx-test-writable | https://netalertx.com netalertx-test-writable | netalertx-test-writable | netalertx-test-writable | Startup pre-checks netalertx-test-writable | --> storage permission.sh netalertx-test-writable | --> data migration.sh netalertx-test-writable | --> mounts.py netalertx-test-writable | --> first run config.sh netalertx-test-writable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-writable | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-writable | netalertx-test-writable | Review your settings in the UI or edit the file directly before trusting netalertx-test-writable | this instance in production. netalertx-test-writable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-writable | --> first run db.sh netalertx-test-writable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-writable | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-writable | netalertx-test-writable | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-writable | DB before onboarding sensitive or critical networks. netalertx-test-writable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-writable | --> mandatory folders.sh netalertx-test-writable | * Creating NetAlertX log directory. netalertx-test-writable | * Creating NetAlertX API cache. netalertx-test-writable | * Creating System services runtime directory. netalertx-test-writable | * Creating nginx active configuration directory. netalertx-test-writable | * Creating Plugins log. netalertx-test-writable | * Creating System services run log. netalertx-test-writable | * Creating System services run tmp. netalertx-test-writable | * Creating DB locked log. netalertx-test-writable | * Creating Execution queue log. netalertx-test-writable | --> apply conf override.sh netalertx-test-writable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-writable | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-writable | netalertx-test-writable | Make sure the JSON content is correct before starting the application. netalertx-test-writable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-writable | --> writable config.sh netalertx-test-writable | --> nginx config.sh netalertx-test-writable | --> user netalertx.sh netalertx-test-writable | --> host mode network.sh netalertx-test-writable | --> layer 2 capabilities.sh netalertx-test-writable | --> excessive capabilities.sh netalertx-test-writable | --> appliance integrity.sh netalertx-test-writable | --> ports available.sh netalertx-test-writable | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-writable | Starting supercronic --debug "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-writable | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-writable | 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;" & netalertx-test-writable | Traceback (most recent call last): netalertx-test-writable | File "", line 198, in _run_module_as_main netalertx-test-writable | File "", line 88, in _run_code netalertx-test-writable | File "/app/server/__main__.py", line 260, in netalertx-test-writable | sys.exit(main()) netalertx-test-writable | ^^^^^^ netalertx-test-writable | File "/app/server/__main__.py", line 104, in main netalertx-test-writable | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-writable | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-writable | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-writable | for setting_name, value in settings_override.items(): netalertx-test-writable | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-writable | AttributeError: 'int' object has no attribute 'items' netalertx-test-writable | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-writable Stopping Container netalertx-test-writable Stopped File: docker-compose.mount-test.active_config_mounted.yml ---------------------------------------- Expected outcome: Container starts successfully with proper nginx config mount - SYSTEM_SERVICES_ACTIVE_CONFIG shows as writable and mounted - No configuration warnings for nginx config path - Custom PORT configuration should work when nginx config is writable Testing: docker-compose.mount-test.active_config_mounted.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_test_system_services_active_config" Creating Volume "mount-tests_test_system_services_active_config" Created Container netalertx-test-mount-active_config_mounted Creating Container netalertx-test-mount-active_config_mounted Created Attaching to netalertx-test-mount-active_config_mounted netalertx-test-mount-active_config_mounted |  netalertx-test-mount-active_config_mounted | _ _ _ ___ _ _ __ __ netalertx-test-mount-active_config_mounted | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-active_config_mounted | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-active_config_mounted | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-active_config_mounted | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-active_config_mounted | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-active_config_mounted |  Network intruder and presence detector. netalertx-test-mount-active_config_mounted | https://netalertx.com netalertx-test-mount-active_config_mounted | netalertx-test-mount-active_config_mounted | netalertx-test-mount-active_config_mounted | Startup pre-checks netalertx-test-mount-active_config_mounted | --> storage permission.sh netalertx-test-mount-active_config_mounted | --> data migration.sh netalertx-test-mount-active_config_mounted | --> mounts.py netalertx-test-mount-active_config_mounted | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-active_config_mounted | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-active_config_mounted | /data | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-active_config_mounted | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-active_config_mounted | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-active_config_mounted | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_mounted | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_mounted | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_mounted | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_mounted | /tmp/nginx/active-config | ✅| ✅| ✅ | ❌ | ❌ | ✅ netalertx-test-mount-active_config_mounted | netalertx-test-mount-active_config_mounted | netalertx-test-mount-active_config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_mounted | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-active_config_mounted | netalertx-test-mount-active_config_mounted | * /tmp/nginx/active-config performance issue netalertx-test-mount-active_config_mounted | netalertx-test-mount-active_config_mounted | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-active_config_mounted | configuration can be quite complex. netalertx-test-mount-active_config_mounted | netalertx-test-mount-active_config_mounted | Review the documentation for a correct setup: netalertx-test-mount-active_config_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-active_config_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-active_config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_mounted |  netalertx-test-mount-active_config_mounted | --> first run config.sh netalertx-test-mount-active_config_mounted | --> first run db.sh netalertx-test-mount-active_config_mounted | INFO: ALWAYS_FRESH_INSTALL enabled — removing existing database. netalertx-test-mount-active_config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_mounted | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-active_config_mounted | netalertx-test-mount-active_config_mounted | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-active_config_mounted | DB before onboarding sensitive or critical networks. netalertx-test-mount-active_config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_mounted | --> mandatory folders.sh netalertx-test-mount-active_config_mounted | * Creating NetAlertX log directory. netalertx-test-mount-active_config_mounted | * Creating NetAlertX API cache. netalertx-test-mount-active_config_mounted | * Creating System services runtime directory. netalertx-test-mount-active_config_mounted | * Creating Plugins log. netalertx-test-mount-active_config_mounted | * Creating System services run log. netalertx-test-mount-active_config_mounted | * Creating System services run tmp. netalertx-test-mount-active_config_mounted | * Creating DB locked log. netalertx-test-mount-active_config_mounted | * Creating Execution queue log. netalertx-test-mount-active_config_mounted | --> apply conf override.sh netalertx-test-mount-active_config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_mounted | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-active_config_mounted | netalertx-test-mount-active_config_mounted | Make sure the JSON content is correct before starting the application. netalertx-test-mount-active_config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_mounted | --> writable config.sh netalertx-test-mount-active_config_mounted | --> nginx config.sh netalertx-test-mount-active_config_mounted | --> user netalertx.sh netalertx-test-mount-active_config_mounted | --> host mode network.sh netalertx-test-mount-active_config_mounted | --> layer 2 capabilities.sh netalertx-test-mount-active_config_mounted | --> excessive capabilities.sh netalertx-test-mount-active_config_mounted | --> appliance integrity.sh netalertx-test-mount-active_config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_mounted | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-active_config_mounted | netalertx-test-mount-active_config_mounted | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-active_config_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-active_config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_mounted | --> ports available.sh netalertx-test-mount-active_config_mounted | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-active_config_mounted | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-active_config_mounted | mktemp: : Permission denied netalertx-test-mount-active_config_mounted | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-active_config_mounted | Traceback (most recent call last): netalertx-test-mount-active_config_mounted | File "", line 198, in _run_module_as_main netalertx-test-mount-active_config_mounted | File "", line 88, in _run_code netalertx-test-mount-active_config_mounted | File "/app/server/__main__.py", line 260, in netalertx-test-mount-active_config_mounted | sys.exit(main()) netalertx-test-mount-active_config_mounted | ^^^^^^ netalertx-test-mount-active_config_mounted | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-active_config_mounted | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-active_config_mounted | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-active_config_mounted | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-active_config_mounted | for setting_name, value in settings_override.items(): netalertx-test-mount-active_config_mounted | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-active_config_mounted | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-active_config_mounted | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-active_config_mounted Stopping Container netalertx-test-mount-active_config_mounted Stopped File: docker-compose.mount-test.active_config_no-mount.yml ---------------------------------------- Expected outcome: Container shows warning about missing nginx config mount - SYSTEM_SERVICES_ACTIVE_CONFIG shows as not mounted - Warning message about nginx configuration mount being missing - Custom PORT configuration may not work properly Testing: docker-compose.mount-test.active_config_no-mount.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_test_netalertx_data" Creating Volume "mount-tests_test_netalertx_data" Created Container netalertx-test-mount-active_config_no-mount Creating Container netalertx-test-mount-active_config_no-mount Created Attaching to netalertx-test-mount-active_config_no-mount netalertx-test-mount-active_config_no-mount |  netalertx-test-mount-active_config_no-mount | _ _ _ ___ _ _ __ __ netalertx-test-mount-active_config_no-mount | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-active_config_no-mount | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-active_config_no-mount | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-active_config_no-mount | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-active_config_no-mount | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-active_config_no-mount |  Network intruder and presence detector. netalertx-test-mount-active_config_no-mount | https://netalertx.com netalertx-test-mount-active_config_no-mount | netalertx-test-mount-active_config_no-mount | netalertx-test-mount-active_config_no-mount | Startup pre-checks netalertx-test-mount-active_config_no-mount | --> storage permission.sh netalertx-test-mount-active_config_no-mount | --> data migration.sh netalertx-test-mount-active_config_no-mount | --> mounts.py netalertx-test-mount-active_config_no-mount | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-active_config_no-mount | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-active_config_no-mount | /data | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-active_config_no-mount | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-active_config_no-mount | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-active_config_no-mount | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_no-mount | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_no-mount | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_no-mount | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_no-mount | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_no-mount | --> first run config.sh netalertx-test-mount-active_config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_no-mount | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-active_config_no-mount | netalertx-test-mount-active_config_no-mount | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-active_config_no-mount | this instance in production. netalertx-test-mount-active_config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_no-mount | --> first run db.sh netalertx-test-mount-active_config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_no-mount | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-active_config_no-mount | netalertx-test-mount-active_config_no-mount | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-active_config_no-mount | DB before onboarding sensitive or critical networks. netalertx-test-mount-active_config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_no-mount | --> mandatory folders.sh netalertx-test-mount-active_config_no-mount | * Creating NetAlertX log directory. netalertx-test-mount-active_config_no-mount | * Creating NetAlertX API cache. netalertx-test-mount-active_config_no-mount | * Creating System services runtime directory. netalertx-test-mount-active_config_no-mount | * Creating nginx active configuration directory. netalertx-test-mount-active_config_no-mount | * Creating Plugins log. netalertx-test-mount-active_config_no-mount | * Creating System services run log. netalertx-test-mount-active_config_no-mount | * Creating System services run tmp. netalertx-test-mount-active_config_no-mount | * Creating DB locked log. netalertx-test-mount-active_config_no-mount | * Creating Execution queue log. netalertx-test-mount-active_config_no-mount | --> apply conf override.sh netalertx-test-mount-active_config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_no-mount | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-active_config_no-mount | netalertx-test-mount-active_config_no-mount | Make sure the JSON content is correct before starting the application. netalertx-test-mount-active_config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_no-mount | --> writable config.sh netalertx-test-mount-active_config_no-mount | --> nginx config.sh netalertx-test-mount-active_config_no-mount | --> user netalertx.sh netalertx-test-mount-active_config_no-mount | --> host mode network.sh netalertx-test-mount-active_config_no-mount | --> layer 2 capabilities.sh netalertx-test-mount-active_config_no-mount | --> excessive capabilities.sh netalertx-test-mount-active_config_no-mount | --> appliance integrity.sh netalertx-test-mount-active_config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_no-mount | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-active_config_no-mount | netalertx-test-mount-active_config_no-mount | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-active_config_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-active_config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_no-mount | --> ports available.sh netalertx-test-mount-active_config_no-mount | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-active_config_no-mount | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-active_config_no-mount | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-active_config_no-mount | 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;" & netalertx-test-mount-active_config_no-mount | Traceback (most recent call last): netalertx-test-mount-active_config_no-mount | File "", line 198, in _run_module_as_main netalertx-test-mount-active_config_no-mount | File "", line 88, in _run_code netalertx-test-mount-active_config_no-mount | File "/app/server/__main__.py", line 260, in netalertx-test-mount-active_config_no-mount | sys.exit(main()) netalertx-test-mount-active_config_no-mount | ^^^^^^ netalertx-test-mount-active_config_no-mount | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-active_config_no-mount | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-active_config_no-mount | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-active_config_no-mount | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-active_config_no-mount | for setting_name, value in settings_override.items(): netalertx-test-mount-active_config_no-mount | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-active_config_no-mount | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-active_config_no-mount | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-active_config_no-mount Stopping Container netalertx-test-mount-active_config_no-mount Stopped File: docker-compose.mount-test.active_config_ramdisk.yml ---------------------------------------- Expected outcome: Container shows performance warning for nginx config on RAM disk - SYSTEM_SERVICES_ACTIVE_CONFIG shows as mounted on tmpfs (RAM disk) - Performance issue warning since nginx config should be persistent - Custom PORT configuration may have performance implications Testing: docker-compose.mount-test.active_config_ramdisk.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_test_netalertx_data" Creating Volume "mount-tests_test_netalertx_data" Created Container netalertx-test-mount-active_config_ramdisk Creating Container netalertx-test-mount-active_config_ramdisk Created Attaching to netalertx-test-mount-active_config_ramdisk netalertx-test-mount-active_config_ramdisk |  netalertx-test-mount-active_config_ramdisk | _ _ _ ___ _ _ __ __ netalertx-test-mount-active_config_ramdisk | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-active_config_ramdisk | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-active_config_ramdisk | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-active_config_ramdisk | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-active_config_ramdisk | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-active_config_ramdisk |  Network intruder and presence detector. netalertx-test-mount-active_config_ramdisk | https://netalertx.com netalertx-test-mount-active_config_ramdisk | netalertx-test-mount-active_config_ramdisk | netalertx-test-mount-active_config_ramdisk | Startup pre-checks netalertx-test-mount-active_config_ramdisk | --> storage permission.sh netalertx-test-mount-active_config_ramdisk | --> data migration.sh netalertx-test-mount-active_config_ramdisk | --> mounts.py netalertx-test-mount-active_config_ramdisk | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-active_config_ramdisk | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-active_config_ramdisk | /data | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-active_config_ramdisk | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-active_config_ramdisk | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-active_config_ramdisk | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_ramdisk | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_ramdisk | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_ramdisk | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_ramdisk | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_ramdisk | --> first run config.sh netalertx-test-mount-active_config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_ramdisk | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-active_config_ramdisk | netalertx-test-mount-active_config_ramdisk | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-active_config_ramdisk | this instance in production. netalertx-test-mount-active_config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_ramdisk | --> first run db.sh netalertx-test-mount-active_config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_ramdisk | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-active_config_ramdisk | netalertx-test-mount-active_config_ramdisk | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-active_config_ramdisk | DB before onboarding sensitive or critical networks. netalertx-test-mount-active_config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_ramdisk | --> mandatory folders.sh netalertx-test-mount-active_config_ramdisk | * Creating NetAlertX log directory. netalertx-test-mount-active_config_ramdisk | * Creating NetAlertX API cache. netalertx-test-mount-active_config_ramdisk | * Creating System services runtime directory. netalertx-test-mount-active_config_ramdisk | * Creating nginx active configuration directory. netalertx-test-mount-active_config_ramdisk | * Creating Plugins log. netalertx-test-mount-active_config_ramdisk | * Creating System services run log. netalertx-test-mount-active_config_ramdisk | * Creating System services run tmp. netalertx-test-mount-active_config_ramdisk | * Creating DB locked log. netalertx-test-mount-active_config_ramdisk | * Creating Execution queue log. netalertx-test-mount-active_config_ramdisk | --> apply conf override.sh netalertx-test-mount-active_config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_ramdisk | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-active_config_ramdisk | netalertx-test-mount-active_config_ramdisk | Make sure the JSON content is correct before starting the application. netalertx-test-mount-active_config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_ramdisk | --> writable config.sh netalertx-test-mount-active_config_ramdisk | --> nginx config.sh netalertx-test-mount-active_config_ramdisk | --> user netalertx.sh netalertx-test-mount-active_config_ramdisk | --> host mode network.sh netalertx-test-mount-active_config_ramdisk | --> layer 2 capabilities.sh netalertx-test-mount-active_config_ramdisk | --> excessive capabilities.sh netalertx-test-mount-active_config_ramdisk | --> appliance integrity.sh netalertx-test-mount-active_config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_ramdisk | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-active_config_ramdisk | netalertx-test-mount-active_config_ramdisk | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-active_config_ramdisk | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-active_config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_ramdisk | --> ports available.sh netalertx-test-mount-active_config_ramdisk | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-active_config_ramdisk | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-active_config_ramdisk | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-active_config_ramdisk | 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;" & netalertx-test-mount-active_config_ramdisk | Traceback (most recent call last): netalertx-test-mount-active_config_ramdisk | File "", line 198, in _run_module_as_main netalertx-test-mount-active_config_ramdisk | File "", line 88, in _run_code netalertx-test-mount-active_config_ramdisk | File "/app/server/__main__.py", line 260, in netalertx-test-mount-active_config_ramdisk | sys.exit(main()) netalertx-test-mount-active_config_ramdisk | ^^^^^^ netalertx-test-mount-active_config_ramdisk | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-active_config_ramdisk | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-active_config_ramdisk | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-active_config_ramdisk | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-active_config_ramdisk | for setting_name, value in settings_override.items(): netalertx-test-mount-active_config_ramdisk | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-active_config_ramdisk | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-active_config_ramdisk | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-active_config_ramdisk Stopping Container netalertx-test-mount-active_config_ramdisk Stopped File: docker-compose.mount-test.active_config_unwritable.yml ---------------------------------------- Expected outcome: Container fails to start due to unwritable nginx config partition - SYSTEM_SERVICES_ACTIVE_CONFIG shows as mounted but unwritable (❌ in Writeable column) - 35-nginx-config.sh detects permission error and exits with code 1 - Container startup fails because nginx configuration cannot be written for custom ports Testing: docker-compose.mount-test.active_config_unwritable.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_test_netalertx_data" Creating Volume "mount-tests_test_netalertx_data" Created Volume "mount-tests_test_system_services_active_config" Creating Volume "mount-tests_test_system_services_active_config" Created Container netalertx-test-mount-active_config_unwritable Creating Container netalertx-test-mount-active_config_unwritable Created Attaching to netalertx-test-mount-active_config_unwritable netalertx-test-mount-active_config_unwritable |  netalertx-test-mount-active_config_unwritable | _ _ _ ___ _ _ __ __ netalertx-test-mount-active_config_unwritable | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-active_config_unwritable | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-active_config_unwritable | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-active_config_unwritable | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-active_config_unwritable | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-active_config_unwritable |  Network intruder and presence detector. netalertx-test-mount-active_config_unwritable | https://netalertx.com netalertx-test-mount-active_config_unwritable | netalertx-test-mount-active_config_unwritable | netalertx-test-mount-active_config_unwritable | Startup pre-checks netalertx-test-mount-active_config_unwritable | --> storage permission.sh netalertx-test-mount-active_config_unwritable | --> data migration.sh netalertx-test-mount-active_config_unwritable | --> mounts.py netalertx-test-mount-active_config_unwritable | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-active_config_unwritable | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-active_config_unwritable | /data | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-active_config_unwritable | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-active_config_unwritable | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-active_config_unwritable | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_unwritable | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_unwritable | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_unwritable | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-active_config_unwritable | /tmp/nginx/active-config | ✅| ❌| ✅ | ❌ | ❌ | ✅ netalertx-test-mount-active_config_unwritable | netalertx-test-mount-active_config_unwritable | netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_unwritable | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-active_config_unwritable | netalertx-test-mount-active_config_unwritable | * /tmp/nginx/active-config error writing, performance issue netalertx-test-mount-active_config_unwritable | netalertx-test-mount-active_config_unwritable | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-active_config_unwritable | configuration can be quite complex. netalertx-test-mount-active_config_unwritable | netalertx-test-mount-active_config_unwritable | Review the documentation for a correct setup: netalertx-test-mount-active_config_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-active_config_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_unwritable |  netalertx-test-mount-active_config_unwritable | --> first run config.sh netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_unwritable | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-active_config_unwritable | netalertx-test-mount-active_config_unwritable | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-active_config_unwritable | this instance in production. netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_unwritable | --> first run db.sh netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_unwritable | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-active_config_unwritable | netalertx-test-mount-active_config_unwritable | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-active_config_unwritable | DB before onboarding sensitive or critical networks. netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_unwritable | --> mandatory folders.sh netalertx-test-mount-active_config_unwritable | * Creating NetAlertX log directory. netalertx-test-mount-active_config_unwritable | * Creating NetAlertX API cache. netalertx-test-mount-active_config_unwritable | * Creating System services runtime directory. netalertx-test-mount-active_config_unwritable | * Creating Plugins log. netalertx-test-mount-active_config_unwritable | * Creating System services run log. netalertx-test-mount-active_config_unwritable | * Creating System services run tmp. netalertx-test-mount-active_config_unwritable | * Creating DB locked log. netalertx-test-mount-active_config_unwritable | * Creating Execution queue log. netalertx-test-mount-active_config_unwritable | --> apply conf override.sh netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_unwritable | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-active_config_unwritable | netalertx-test-mount-active_config_unwritable | Make sure the JSON content is correct before starting the application. netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_unwritable | --> writable config.sh netalertx-test-mount-active_config_unwritable | --> nginx config.sh netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_unwritable | ⚠️ ATTENTION: Unable to write to /tmp/nginx/active-config/netalertx.conf. netalertx-test-mount-active_config_unwritable | netalertx-test-mount-active_config_unwritable | Ensure the conf.active mount is writable by the netalertx user before netalertx-test-mount-active_config_unwritable | changing LISTEN_ADDR or PORT. Fix permissions: netalertx-test-mount-active_config_unwritable | chown -R 20211:20211 /tmp/nginx/active-config netalertx-test-mount-active_config_unwritable | find /tmp/nginx/active-config -type d -exec chmod 700 {} + netalertx-test-mount-active_config_unwritable | find /tmp/nginx/active-config -type f -exec chmod 600 {} + netalertx-test-mount-active_config_unwritable | netalertx-test-mount-active_config_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/nginx-configuration-mount.md netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_unwritable | \033[1;31m══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_unwritable | ❌ NetAlertX startup aborted: critical failure in nginx config.sh. netalertx-test-mount-active_config_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/troubleshooting.md netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-active_config_unwritable | \033[0m netalertx-test-mount-active_config_unwritable exited with code 1 File: docker-compose.mount-test.api_mounted.yml ---------------------------------------- Expected outcome: Container starts successfully with proper API mount - NETALERTX_API shows as writable and mounted - No configuration warnings for API path - API data persistence works correctly Testing: docker-compose.mount-test.api_mounted.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Container netalertx-test-mount-api_mounted Creating Container netalertx-test-mount-api_mounted Created Attaching to netalertx-test-mount-api_mounted netalertx-test-mount-api_mounted |  netalertx-test-mount-api_mounted | _ _ _ ___ _ _ __ __ netalertx-test-mount-api_mounted | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-api_mounted | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-api_mounted | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-api_mounted | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-api_mounted | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-api_mounted |  Network intruder and presence detector. netalertx-test-mount-api_mounted | https://netalertx.com netalertx-test-mount-api_mounted | netalertx-test-mount-api_mounted | netalertx-test-mount-api_mounted | Startup pre-checks netalertx-test-mount-api_mounted | --> storage permission.sh netalertx-test-mount-api_mounted | --> data migration.sh netalertx-test-mount-api_mounted | --> mounts.py netalertx-test-mount-api_mounted | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-api_mounted | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-api_mounted | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-api_mounted | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-api_mounted | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_mounted | /tmp/api | ✅| ✅| ✅ | ❌ | ❌ | ✅ netalertx-test-mount-api_mounted | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_mounted | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_mounted | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_mounted | netalertx-test-mount-api_mounted | netalertx-test-mount-api_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_mounted | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-api_mounted | netalertx-test-mount-api_mounted | * /tmp/api performance issue netalertx-test-mount-api_mounted | netalertx-test-mount-api_mounted | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-api_mounted | configuration can be quite complex. netalertx-test-mount-api_mounted | netalertx-test-mount-api_mounted | Review the documentation for a correct setup: netalertx-test-mount-api_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-api_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-api_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_mounted |  netalertx-test-mount-api_mounted | --> first run config.sh netalertx-test-mount-api_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_mounted | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-api_mounted | netalertx-test-mount-api_mounted | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-api_mounted | this instance in production. netalertx-test-mount-api_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_mounted | --> first run db.sh netalertx-test-mount-api_mounted | INFO: ALWAYS_FRESH_INSTALL enabled — removing existing database. netalertx-test-mount-api_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_mounted | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-api_mounted | netalertx-test-mount-api_mounted | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-api_mounted | DB before onboarding sensitive or critical networks. netalertx-test-mount-api_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_mounted | --> mandatory folders.sh netalertx-test-mount-api_mounted | * Creating Plugins log. netalertx-test-mount-api_mounted | * Creating System services run log. netalertx-test-mount-api_mounted | * Creating System services run tmp. netalertx-test-mount-api_mounted | * Creating DB locked log. netalertx-test-mount-api_mounted | * Creating Execution queue log. netalertx-test-mount-api_mounted | --> apply conf override.sh netalertx-test-mount-api_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_mounted | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-api_mounted | netalertx-test-mount-api_mounted | Make sure the JSON content is correct before starting the application. netalertx-test-mount-api_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_mounted | --> writable config.sh netalertx-test-mount-api_mounted | --> nginx config.sh netalertx-test-mount-api_mounted | --> user netalertx.sh netalertx-test-mount-api_mounted | --> host mode network.sh netalertx-test-mount-api_mounted | --> layer 2 capabilities.sh netalertx-test-mount-api_mounted | --> excessive capabilities.sh netalertx-test-mount-api_mounted | --> appliance integrity.sh netalertx-test-mount-api_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_mounted | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-api_mounted | netalertx-test-mount-api_mounted | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-api_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-api_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_mounted | --> ports available.sh netalertx-test-mount-api_mounted | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-api_mounted | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-api_mounted | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-api_mounted | 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;" & netalertx-test-mount-api_mounted | Traceback (most recent call last): netalertx-test-mount-api_mounted | File "", line 198, in _run_module_as_main netalertx-test-mount-api_mounted | File "", line 88, in _run_code netalertx-test-mount-api_mounted | File "/app/server/__main__.py", line 260, in netalertx-test-mount-api_mounted | sys.exit(main()) netalertx-test-mount-api_mounted | ^^^^^^ netalertx-test-mount-api_mounted | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-api_mounted | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-api_mounted | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-api_mounted | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-api_mounted | for setting_name, value in settings_override.items(): netalertx-test-mount-api_mounted | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-api_mounted | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-api_mounted | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-api_mounted Stopping Container netalertx-test-mount-api_mounted Stopped File: docker-compose.mount-test.api_no-mount.yml ---------------------------------------- Expected outcome: Container shows mount error for API directory - NETALERTX_API shows as not mounted - Mount error since API directory should be mounted for proper operation - API functionality may be limited Testing: docker-compose.mount-test.api_no-mount.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_netalertx_db" Creating Volume "mount-tests_netalertx_db" Created Volume "mount-tests_netalertx_config" Creating Volume "mount-tests_netalertx_config" Created Container netalertx-test-mount-api_no-mount Creating Container netalertx-test-mount-api_no-mount Created Attaching to netalertx-test-mount-api_no-mount netalertx-test-mount-api_no-mount |  netalertx-test-mount-api_no-mount | _ _ _ ___ _ _ __ __ netalertx-test-mount-api_no-mount | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-api_no-mount | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-api_no-mount | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-api_no-mount | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-api_no-mount | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-api_no-mount |  Network intruder and presence detector. netalertx-test-mount-api_no-mount | https://netalertx.com netalertx-test-mount-api_no-mount | netalertx-test-mount-api_no-mount | netalertx-test-mount-api_no-mount | Startup pre-checks netalertx-test-mount-api_no-mount | --> storage permission.sh netalertx-test-mount-api_no-mount | --> data migration.sh netalertx-test-mount-api_no-mount | --> mounts.py netalertx-test-mount-api_no-mount | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-api_no-mount | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-api_no-mount | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-api_no-mount | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-api_no-mount | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_no-mount | /tmp/api | ✅| ✅| ❌ | ❌ | ❌ | ✅ netalertx-test-mount-api_no-mount | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_no-mount | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_no-mount | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_no-mount | netalertx-test-mount-api_no-mount | netalertx-test-mount-api_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_no-mount | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-api_no-mount | netalertx-test-mount-api_no-mount | * /tmp/api not mounted, performance issue netalertx-test-mount-api_no-mount | netalertx-test-mount-api_no-mount | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-api_no-mount | configuration can be quite complex. netalertx-test-mount-api_no-mount | netalertx-test-mount-api_no-mount | Review the documentation for a correct setup: netalertx-test-mount-api_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-api_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-api_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_no-mount |  netalertx-test-mount-api_no-mount | --> first run config.sh netalertx-test-mount-api_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_no-mount | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-api_no-mount | netalertx-test-mount-api_no-mount | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-api_no-mount | this instance in production. netalertx-test-mount-api_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_no-mount | --> first run db.sh netalertx-test-mount-api_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_no-mount | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-api_no-mount | netalertx-test-mount-api_no-mount | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-api_no-mount | DB before onboarding sensitive or critical networks. netalertx-test-mount-api_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_no-mount | --> mandatory folders.sh netalertx-test-mount-api_no-mount | * Creating Plugins log. netalertx-test-mount-api_no-mount | * Creating System services run log. netalertx-test-mount-api_no-mount | * Creating System services run tmp. netalertx-test-mount-api_no-mount | * Creating DB locked log. netalertx-test-mount-api_no-mount | * Creating Execution queue log. netalertx-test-mount-api_no-mount | --> apply conf override.sh netalertx-test-mount-api_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_no-mount | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-api_no-mount | netalertx-test-mount-api_no-mount | Make sure the JSON content is correct before starting the application. netalertx-test-mount-api_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_no-mount | --> writable config.sh netalertx-test-mount-api_no-mount | --> nginx config.sh netalertx-test-mount-api_no-mount | --> user netalertx.sh netalertx-test-mount-api_no-mount | --> host mode network.sh netalertx-test-mount-api_no-mount | --> layer 2 capabilities.sh netalertx-test-mount-api_no-mount | --> excessive capabilities.sh netalertx-test-mount-api_no-mount | --> appliance integrity.sh netalertx-test-mount-api_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_no-mount | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-api_no-mount | netalertx-test-mount-api_no-mount | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-api_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-api_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_no-mount | --> ports available.sh netalertx-test-mount-api_no-mount | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-api_no-mount | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-api_no-mount | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-api_no-mount | 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;" & netalertx-test-mount-api_no-mount | Traceback (most recent call last): netalertx-test-mount-api_no-mount | File "", line 198, in _run_module_as_main netalertx-test-mount-api_no-mount | File "", line 88, in _run_code netalertx-test-mount-api_no-mount | File "/app/server/__main__.py", line 260, in netalertx-test-mount-api_no-mount | sys.exit(main()) netalertx-test-mount-api_no-mount | ^^^^^^ netalertx-test-mount-api_no-mount | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-api_no-mount | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-api_no-mount | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-api_no-mount | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-api_no-mount | for setting_name, value in settings_override.items(): netalertx-test-mount-api_no-mount | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-api_no-mount | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-api_no-mount | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-api_no-mount Stopping Container netalertx-test-mount-api_no-mount Stopped File: docker-compose.mount-test.api_ramdisk.yml ---------------------------------------- Expected outcome: Container shows performance warning for API on RAM disk - NETALERTX_API shows as mounted on tmpfs (RAM disk) - Performance issue warning since API data should be on persistent storage - API data will be lost on container restart Testing: docker-compose.mount-test.api_ramdisk.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_test_netalertx_data" Creating Volume "mount-tests_test_netalertx_data" Created Container netalertx-test-mount-api_ramdisk Creating Container netalertx-test-mount-api_ramdisk Created Attaching to netalertx-test-mount-api_ramdisk netalertx-test-mount-api_ramdisk |  netalertx-test-mount-api_ramdisk | _ _ _ ___ _ _ __ __ netalertx-test-mount-api_ramdisk | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-api_ramdisk | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-api_ramdisk | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-api_ramdisk | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-api_ramdisk | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-api_ramdisk |  Network intruder and presence detector. netalertx-test-mount-api_ramdisk | https://netalertx.com netalertx-test-mount-api_ramdisk | netalertx-test-mount-api_ramdisk | netalertx-test-mount-api_ramdisk | Startup pre-checks netalertx-test-mount-api_ramdisk | --> storage permission.sh netalertx-test-mount-api_ramdisk | --> data migration.sh netalertx-test-mount-api_ramdisk | --> mounts.py netalertx-test-mount-api_ramdisk | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-api_ramdisk | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-api_ramdisk | /data | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-api_ramdisk | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-api_ramdisk | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-api_ramdisk | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_ramdisk | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_ramdisk | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_ramdisk | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_ramdisk | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_ramdisk | --> first run config.sh netalertx-test-mount-api_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_ramdisk | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-api_ramdisk | netalertx-test-mount-api_ramdisk | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-api_ramdisk | this instance in production. netalertx-test-mount-api_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_ramdisk | --> first run db.sh netalertx-test-mount-api_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_ramdisk | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-api_ramdisk | netalertx-test-mount-api_ramdisk | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-api_ramdisk | DB before onboarding sensitive or critical networks. netalertx-test-mount-api_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_ramdisk | --> mandatory folders.sh netalertx-test-mount-api_ramdisk | * Creating NetAlertX log directory. netalertx-test-mount-api_ramdisk | * Creating NetAlertX API cache. netalertx-test-mount-api_ramdisk | * Creating System services runtime directory. netalertx-test-mount-api_ramdisk | * Creating nginx active configuration directory. netalertx-test-mount-api_ramdisk | * Creating Plugins log. netalertx-test-mount-api_ramdisk | * Creating System services run log. netalertx-test-mount-api_ramdisk | * Creating System services run tmp. netalertx-test-mount-api_ramdisk | * Creating DB locked log. netalertx-test-mount-api_ramdisk | * Creating Execution queue log. netalertx-test-mount-api_ramdisk | --> apply conf override.sh netalertx-test-mount-api_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_ramdisk | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-api_ramdisk | netalertx-test-mount-api_ramdisk | Make sure the JSON content is correct before starting the application. netalertx-test-mount-api_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_ramdisk | --> writable config.sh netalertx-test-mount-api_ramdisk | --> nginx config.sh netalertx-test-mount-api_ramdisk | --> user netalertx.sh netalertx-test-mount-api_ramdisk | --> host mode network.sh netalertx-test-mount-api_ramdisk | --> layer 2 capabilities.sh netalertx-test-mount-api_ramdisk | --> excessive capabilities.sh netalertx-test-mount-api_ramdisk | --> appliance integrity.sh netalertx-test-mount-api_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_ramdisk | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-api_ramdisk | netalertx-test-mount-api_ramdisk | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-api_ramdisk | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-api_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_ramdisk | --> ports available.sh netalertx-test-mount-api_ramdisk | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-api_ramdisk | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-api_ramdisk | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-api_ramdisk | 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;" & netalertx-test-mount-api_ramdisk | Traceback (most recent call last): netalertx-test-mount-api_ramdisk | File "", line 198, in _run_module_as_main netalertx-test-mount-api_ramdisk | File "", line 88, in _run_code netalertx-test-mount-api_ramdisk | File "/app/server/__main__.py", line 260, in netalertx-test-mount-api_ramdisk | sys.exit(main()) netalertx-test-mount-api_ramdisk | ^^^^^^ netalertx-test-mount-api_ramdisk | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-api_ramdisk | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-api_ramdisk | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-api_ramdisk | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-api_ramdisk | for setting_name, value in settings_override.items(): netalertx-test-mount-api_ramdisk | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-api_ramdisk | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-api_ramdisk | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-api_ramdisk Stopping Container netalertx-test-mount-api_ramdisk Stopped File: docker-compose.mount-test.api_unwritable.yml ---------------------------------------- Expected outcome: Container fails to start due to unwritable API partition - NETALERTX_API shows as mounted but unwritable (❌ in Writeable column) - API directory must be writable for proper operation - Container startup fails because API functionality cannot work without write access Testing: docker-compose.mount-test.api_unwritable.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_netalertx_db" Creating Volume "mount-tests_netalertx_db" Created Volume "mount-tests_netalertx_config" Creating Volume "mount-tests_netalertx_config" Created Volume "mount-tests_test_netalertx_api" Creating Volume "mount-tests_test_netalertx_api" Created Container netalertx-test-mount-api_unwritable Creating Container netalertx-test-mount-api_unwritable Created Attaching to netalertx-test-mount-api_unwritable netalertx-test-mount-api_unwritable |  netalertx-test-mount-api_unwritable | _ _ _ ___ _ _ __ __ netalertx-test-mount-api_unwritable | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-api_unwritable | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-api_unwritable | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-api_unwritable | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-api_unwritable | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-api_unwritable |  Network intruder and presence detector. netalertx-test-mount-api_unwritable | https://netalertx.com netalertx-test-mount-api_unwritable | netalertx-test-mount-api_unwritable | netalertx-test-mount-api_unwritable | Startup pre-checks netalertx-test-mount-api_unwritable | --> storage permission.sh netalertx-test-mount-api_unwritable | --> data migration.sh netalertx-test-mount-api_unwritable | --> mounts.py netalertx-test-mount-api_unwritable | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-api_unwritable | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-api_unwritable | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-api_unwritable | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-api_unwritable | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_unwritable | /tmp/api | ✅| ❌| ✅ | ❌ | ❌ | ✅ netalertx-test-mount-api_unwritable | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_unwritable | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_unwritable | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-api_unwritable | netalertx-test-mount-api_unwritable | netalertx-test-mount-api_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_unwritable | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-api_unwritable | netalertx-test-mount-api_unwritable | * /tmp/api error writing, performance issue netalertx-test-mount-api_unwritable | netalertx-test-mount-api_unwritable | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-api_unwritable | configuration can be quite complex. netalertx-test-mount-api_unwritable | netalertx-test-mount-api_unwritable | Review the documentation for a correct setup: netalertx-test-mount-api_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-api_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-api_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_unwritable |  netalertx-test-mount-api_unwritable | \033[1;31m══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_unwritable | ❌ NetAlertX startup aborted: critical failure in mounts.py. netalertx-test-mount-api_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/troubleshooting.md netalertx-test-mount-api_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-api_unwritable | \033[0m netalertx-test-mount-api_unwritable exited with code 1 File: docker-compose.mount-test.config_mounted.yml ---------------------------------------- Expected outcome: Container starts successfully with proper config mount - NETALERTX_CONFIG shows as writable and mounted - No configuration warnings for config path - Configuration persistence works correctly Testing: docker-compose.mount-test.config_mounted.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_test_netalertx_data" Creating Volume "mount-tests_test_netalertx_data" Created Container netalertx-test-mount-config_mounted Creating Container netalertx-test-mount-config_mounted Created Attaching to netalertx-test-mount-config_mounted netalertx-test-mount-config_mounted |  netalertx-test-mount-config_mounted | _ _ _ ___ _ _ __ __ netalertx-test-mount-config_mounted | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-config_mounted | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-config_mounted | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-config_mounted | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-config_mounted | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-config_mounted |  Network intruder and presence detector. netalertx-test-mount-config_mounted | https://netalertx.com netalertx-test-mount-config_mounted | netalertx-test-mount-config_mounted | netalertx-test-mount-config_mounted | Startup pre-checks netalertx-test-mount-config_mounted | --> storage permission.sh netalertx-test-mount-config_mounted | --> data migration.sh netalertx-test-mount-config_mounted | --> mounts.py netalertx-test-mount-config_mounted | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-config_mounted | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-config_mounted | /data | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-config_mounted | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-config_mounted | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-config_mounted | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_mounted | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_mounted | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_mounted | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_mounted | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_mounted | --> first run config.sh netalertx-test-mount-config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_mounted | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-config_mounted | netalertx-test-mount-config_mounted | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-config_mounted | this instance in production. netalertx-test-mount-config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_mounted | --> first run db.sh netalertx-test-mount-config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_mounted | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-config_mounted | netalertx-test-mount-config_mounted | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-config_mounted | DB before onboarding sensitive or critical networks. netalertx-test-mount-config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_mounted | --> mandatory folders.sh netalertx-test-mount-config_mounted | * Creating NetAlertX log directory. netalertx-test-mount-config_mounted | * Creating NetAlertX API cache. netalertx-test-mount-config_mounted | * Creating System services runtime directory. netalertx-test-mount-config_mounted | * Creating nginx active configuration directory. netalertx-test-mount-config_mounted | * Creating Plugins log. netalertx-test-mount-config_mounted | * Creating System services run log. netalertx-test-mount-config_mounted | * Creating System services run tmp. netalertx-test-mount-config_mounted | * Creating DB locked log. netalertx-test-mount-config_mounted | * Creating Execution queue log. netalertx-test-mount-config_mounted | --> apply conf override.sh netalertx-test-mount-config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_mounted | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-config_mounted | netalertx-test-mount-config_mounted | Make sure the JSON content is correct before starting the application. netalertx-test-mount-config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_mounted | --> writable config.sh netalertx-test-mount-config_mounted | --> nginx config.sh netalertx-test-mount-config_mounted | --> user netalertx.sh netalertx-test-mount-config_mounted | --> host mode network.sh netalertx-test-mount-config_mounted | --> layer 2 capabilities.sh netalertx-test-mount-config_mounted | --> excessive capabilities.sh netalertx-test-mount-config_mounted | --> appliance integrity.sh netalertx-test-mount-config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_mounted | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-config_mounted | netalertx-test-mount-config_mounted | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-config_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-config_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_mounted | --> ports available.sh netalertx-test-mount-config_mounted | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-config_mounted | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-config_mounted | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-config_mounted | 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;" & netalertx-test-mount-config_mounted | Traceback (most recent call last): netalertx-test-mount-config_mounted | File "", line 198, in _run_module_as_main netalertx-test-mount-config_mounted | File "", line 88, in _run_code netalertx-test-mount-config_mounted | File "/app/server/__main__.py", line 260, in netalertx-test-mount-config_mounted | sys.exit(main()) netalertx-test-mount-config_mounted | ^^^^^^ netalertx-test-mount-config_mounted | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-config_mounted | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-config_mounted | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-config_mounted | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-config_mounted | for setting_name, value in settings_override.items(): netalertx-test-mount-config_mounted | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-config_mounted | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-config_mounted | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-config_mounted Stopping Container netalertx-test-mount-config_mounted Stopped File: docker-compose.mount-test.config_no-mount.yml ---------------------------------------- Expected outcome: Container shows mount error for config directory - NETALERTX_CONFIG shows as not mounted - Mount error since config directory should be mounted for proper operation - Configuration may not persist across restarts Testing: docker-compose.mount-test.config_no-mount.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_netalertx_db" Creating Volume "mount-tests_netalertx_db" Created Container netalertx-test-mount-config_no-mount Creating Container netalertx-test-mount-config_no-mount Created Attaching to netalertx-test-mount-config_no-mount netalertx-test-mount-config_no-mount |  netalertx-test-mount-config_no-mount | _ _ _ ___ _ _ __ __ netalertx-test-mount-config_no-mount | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-config_no-mount | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-config_no-mount | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-config_no-mount | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-config_no-mount | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-config_no-mount |  Network intruder and presence detector. netalertx-test-mount-config_no-mount | https://netalertx.com netalertx-test-mount-config_no-mount | netalertx-test-mount-config_no-mount | netalertx-test-mount-config_no-mount | Startup pre-checks netalertx-test-mount-config_no-mount | --> storage permission.sh netalertx-test-mount-config_no-mount | --> data migration.sh netalertx-test-mount-config_no-mount | --> mounts.py netalertx-test-mount-config_no-mount | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-config_no-mount | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-config_no-mount | /data | ✅| ✅| ❌ | ➖ | ➖ | ❌ netalertx-test-mount-config_no-mount | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-config_no-mount | /data/config | ✅| ✅| ❌ | ➖ | ➖ | ❌ netalertx-test-mount-config_no-mount | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_no-mount | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_no-mount | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_no-mount | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_no-mount | netalertx-test-mount-config_no-mount | netalertx-test-mount-config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_no-mount | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-config_no-mount | netalertx-test-mount-config_no-mount | * /data not mounted, risk of dataloss netalertx-test-mount-config_no-mount | * /data/config not mounted, risk of dataloss netalertx-test-mount-config_no-mount | netalertx-test-mount-config_no-mount | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-config_no-mount | configuration can be quite complex. netalertx-test-mount-config_no-mount | netalertx-test-mount-config_no-mount | Review the documentation for a correct setup: netalertx-test-mount-config_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-config_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_no-mount |  netalertx-test-mount-config_no-mount | --> first run config.sh netalertx-test-mount-config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_no-mount | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-config_no-mount | netalertx-test-mount-config_no-mount | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-config_no-mount | this instance in production. netalertx-test-mount-config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_no-mount | --> first run db.sh netalertx-test-mount-config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_no-mount | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-config_no-mount | netalertx-test-mount-config_no-mount | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-config_no-mount | DB before onboarding sensitive or critical networks. netalertx-test-mount-config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_no-mount | --> mandatory folders.sh netalertx-test-mount-config_no-mount | * Creating Plugins log. netalertx-test-mount-config_no-mount | * Creating System services run log. netalertx-test-mount-config_no-mount | * Creating System services run tmp. netalertx-test-mount-config_no-mount | * Creating DB locked log. netalertx-test-mount-config_no-mount | * Creating Execution queue log. netalertx-test-mount-config_no-mount | --> apply conf override.sh netalertx-test-mount-config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_no-mount | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-config_no-mount | netalertx-test-mount-config_no-mount | Make sure the JSON content is correct before starting the application. netalertx-test-mount-config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_no-mount | --> writable config.sh netalertx-test-mount-config_no-mount | --> nginx config.sh netalertx-test-mount-config_no-mount | --> user netalertx.sh netalertx-test-mount-config_no-mount | --> host mode network.sh netalertx-test-mount-config_no-mount | --> layer 2 capabilities.sh netalertx-test-mount-config_no-mount | --> excessive capabilities.sh netalertx-test-mount-config_no-mount | --> appliance integrity.sh netalertx-test-mount-config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_no-mount | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-config_no-mount | netalertx-test-mount-config_no-mount | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-config_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-config_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_no-mount | --> ports available.sh netalertx-test-mount-config_no-mount | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-config_no-mount | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-config_no-mount | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-config_no-mount | 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;" & netalertx-test-mount-config_no-mount | Traceback (most recent call last): netalertx-test-mount-config_no-mount | File "", line 198, in _run_module_as_main netalertx-test-mount-config_no-mount | File "", line 88, in _run_code netalertx-test-mount-config_no-mount | File "/app/server/__main__.py", line 260, in netalertx-test-mount-config_no-mount | sys.exit(main()) netalertx-test-mount-config_no-mount | ^^^^^^ netalertx-test-mount-config_no-mount | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-config_no-mount | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-config_no-mount | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-config_no-mount | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-config_no-mount | for setting_name, value in settings_override.items(): netalertx-test-mount-config_no-mount | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-config_no-mount | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-config_no-mount | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-config_no-mount Stopping Container netalertx-test-mount-config_no-mount Stopped File: docker-compose.mount-test.config_ramdisk.yml ---------------------------------------- Expected outcome: Container shows dataloss risk warning for config on RAM disk - NETALERTX_CONFIG shows as mounted on tmpfs (RAM disk) - Dataloss risk warning since config data should be persistent - Configuration will be lost on container restart Testing: docker-compose.mount-test.config_ramdisk.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_netalertx_db" Creating Volume "mount-tests_netalertx_db" Created Container netalertx-test-mount-config_ramdisk Creating Container netalertx-test-mount-config_ramdisk Created Attaching to netalertx-test-mount-config_ramdisk netalertx-test-mount-config_ramdisk |  netalertx-test-mount-config_ramdisk | _ _ _ ___ _ _ __ __ netalertx-test-mount-config_ramdisk | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-config_ramdisk | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-config_ramdisk | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-config_ramdisk | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-config_ramdisk | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-config_ramdisk |  Network intruder and presence detector. netalertx-test-mount-config_ramdisk | https://netalertx.com netalertx-test-mount-config_ramdisk | netalertx-test-mount-config_ramdisk | netalertx-test-mount-config_ramdisk | Startup pre-checks netalertx-test-mount-config_ramdisk | --> storage permission.sh netalertx-test-mount-config_ramdisk | --> data migration.sh netalertx-test-mount-config_ramdisk | --> mounts.py netalertx-test-mount-config_ramdisk | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-config_ramdisk | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-config_ramdisk | /data | ✅| ✅| ❌ | ➖ | ➖ | ❌ netalertx-test-mount-config_ramdisk | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-config_ramdisk | /data/config | ✅| ✅| ✅ | ❌ | ➖ | ❌ netalertx-test-mount-config_ramdisk | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_ramdisk | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_ramdisk | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_ramdisk | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_ramdisk | netalertx-test-mount-config_ramdisk | netalertx-test-mount-config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_ramdisk | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-config_ramdisk | netalertx-test-mount-config_ramdisk | * /data not mounted, risk of dataloss netalertx-test-mount-config_ramdisk | * /data/config risk of dataloss netalertx-test-mount-config_ramdisk | netalertx-test-mount-config_ramdisk | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-config_ramdisk | configuration can be quite complex. netalertx-test-mount-config_ramdisk | netalertx-test-mount-config_ramdisk | Review the documentation for a correct setup: netalertx-test-mount-config_ramdisk | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-config_ramdisk | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_ramdisk |  netalertx-test-mount-config_ramdisk | --> first run config.sh netalertx-test-mount-config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_ramdisk | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-config_ramdisk | netalertx-test-mount-config_ramdisk | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-config_ramdisk | this instance in production. netalertx-test-mount-config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_ramdisk | --> first run db.sh netalertx-test-mount-config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_ramdisk | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-config_ramdisk | netalertx-test-mount-config_ramdisk | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-config_ramdisk | DB before onboarding sensitive or critical networks. netalertx-test-mount-config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_ramdisk | --> mandatory folders.sh netalertx-test-mount-config_ramdisk | * Creating Plugins log. netalertx-test-mount-config_ramdisk | * Creating System services run log. netalertx-test-mount-config_ramdisk | * Creating System services run tmp. netalertx-test-mount-config_ramdisk | * Creating DB locked log. netalertx-test-mount-config_ramdisk | * Creating Execution queue log. netalertx-test-mount-config_ramdisk | --> apply conf override.sh netalertx-test-mount-config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_ramdisk | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-config_ramdisk | netalertx-test-mount-config_ramdisk | Make sure the JSON content is correct before starting the application. netalertx-test-mount-config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_ramdisk | --> writable config.sh netalertx-test-mount-config_ramdisk | --> nginx config.sh netalertx-test-mount-config_ramdisk | --> user netalertx.sh netalertx-test-mount-config_ramdisk | --> host mode network.sh netalertx-test-mount-config_ramdisk | --> layer 2 capabilities.sh netalertx-test-mount-config_ramdisk | --> excessive capabilities.sh netalertx-test-mount-config_ramdisk | --> appliance integrity.sh netalertx-test-mount-config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_ramdisk | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-config_ramdisk | netalertx-test-mount-config_ramdisk | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-config_ramdisk | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_ramdisk | --> ports available.sh netalertx-test-mount-config_ramdisk | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-config_ramdisk | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-config_ramdisk | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-config_ramdisk | 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;" & netalertx-test-mount-config_ramdisk | Traceback (most recent call last): netalertx-test-mount-config_ramdisk | File "", line 198, in _run_module_as_main netalertx-test-mount-config_ramdisk | File "", line 88, in _run_code netalertx-test-mount-config_ramdisk | File "/app/server/__main__.py", line 260, in netalertx-test-mount-config_ramdisk | sys.exit(main()) netalertx-test-mount-config_ramdisk | ^^^^^^ netalertx-test-mount-config_ramdisk | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-config_ramdisk | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-config_ramdisk | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-config_ramdisk | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-config_ramdisk | for setting_name, value in settings_override.items(): netalertx-test-mount-config_ramdisk | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-config_ramdisk | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-config_ramdisk | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-config_ramdisk Stopping Container netalertx-test-mount-config_ramdisk Stopped File: docker-compose.mount-test.config_unwritable.yml ---------------------------------------- Expected outcome: Container fails to start due to unwritable config partition - NETALERTX_CONFIG shows as mounted but unwritable (❌ in Writeable column) - 30-writable-config.sh detects permission error and exits with code 1 - Container startup fails because config files cannot be written to Testing: docker-compose.mount-test.config_unwritable.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_test_netalertx_config" Creating Volume "mount-tests_test_netalertx_config" Created Volume "mount-tests_netalertx_db" Creating Volume "mount-tests_netalertx_db" Created Container netalertx-test-mount-config_unwritable Creating Container netalertx-test-mount-config_unwritable Created Attaching to netalertx-test-mount-config_unwritable netalertx-test-mount-config_unwritable |  netalertx-test-mount-config_unwritable | _ _ _ ___ _ _ __ __ netalertx-test-mount-config_unwritable | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-config_unwritable | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-config_unwritable | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-config_unwritable | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-config_unwritable | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-config_unwritable |  Network intruder and presence detector. netalertx-test-mount-config_unwritable | https://netalertx.com netalertx-test-mount-config_unwritable | netalertx-test-mount-config_unwritable | netalertx-test-mount-config_unwritable | Startup pre-checks netalertx-test-mount-config_unwritable | --> storage permission.sh netalertx-test-mount-config_unwritable | --> data migration.sh netalertx-test-mount-config_unwritable | --> mounts.py netalertx-test-mount-config_unwritable | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-config_unwritable | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-config_unwritable | /data | ✅| ✅| ❌ | ➖ | ➖ | ❌ netalertx-test-mount-config_unwritable | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-config_unwritable | /data/config | ✅| ❌| ✅ | ➖ | ➖ | ❌ netalertx-test-mount-config_unwritable | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_unwritable | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_unwritable | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_unwritable | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-config_unwritable | netalertx-test-mount-config_unwritable | netalertx-test-mount-config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_unwritable | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-config_unwritable | netalertx-test-mount-config_unwritable | * /data not mounted, risk of dataloss netalertx-test-mount-config_unwritable | * /data/config error writing, risk of dataloss netalertx-test-mount-config_unwritable | netalertx-test-mount-config_unwritable | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-config_unwritable | configuration can be quite complex. netalertx-test-mount-config_unwritable | netalertx-test-mount-config_unwritable | Review the documentation for a correct setup: netalertx-test-mount-config_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-config_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_unwritable |  netalertx-test-mount-config_unwritable | \033[1;31m══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_unwritable | ❌ NetAlertX startup aborted: critical failure in mounts.py. netalertx-test-mount-config_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/troubleshooting.md netalertx-test-mount-config_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-config_unwritable | \033[0m netalertx-test-mount-config_unwritable exited with code 1 File: docker-compose.mount-test.db_mounted.yml ---------------------------------------- Expected outcome: Container starts successfully with proper database mount - NETALERTX_DB shows as writable and mounted - No configuration warnings for database path - Database persistence works correctly Testing: docker-compose.mount-test.db_mounted.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_test_netalertx_data" Creating Volume "mount-tests_test_netalertx_data" Created Container netalertx-test-mount-db_mounted Creating Container netalertx-test-mount-db_mounted Created Attaching to netalertx-test-mount-db_mounted netalertx-test-mount-db_mounted |  netalertx-test-mount-db_mounted | _ _ _ ___ _ _ __ __ netalertx-test-mount-db_mounted | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-db_mounted | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-db_mounted | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-db_mounted | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-db_mounted | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-db_mounted |  Network intruder and presence detector. netalertx-test-mount-db_mounted | https://netalertx.com netalertx-test-mount-db_mounted | netalertx-test-mount-db_mounted | netalertx-test-mount-db_mounted | Startup pre-checks netalertx-test-mount-db_mounted | --> storage permission.sh netalertx-test-mount-db_mounted | --> data migration.sh netalertx-test-mount-db_mounted | --> mounts.py netalertx-test-mount-db_mounted | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-db_mounted | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-db_mounted | /data | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-db_mounted | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-db_mounted | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-db_mounted | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_mounted | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_mounted | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_mounted | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_mounted | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_mounted | --> first run config.sh netalertx-test-mount-db_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_mounted | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-db_mounted | netalertx-test-mount-db_mounted | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-db_mounted | this instance in production. netalertx-test-mount-db_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_mounted | --> first run db.sh netalertx-test-mount-db_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_mounted | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-db_mounted | netalertx-test-mount-db_mounted | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-db_mounted | DB before onboarding sensitive or critical networks. netalertx-test-mount-db_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_mounted | --> mandatory folders.sh netalertx-test-mount-db_mounted | * Creating NetAlertX log directory. netalertx-test-mount-db_mounted | * Creating NetAlertX API cache. netalertx-test-mount-db_mounted | * Creating System services runtime directory. netalertx-test-mount-db_mounted | * Creating nginx active configuration directory. netalertx-test-mount-db_mounted | * Creating Plugins log. netalertx-test-mount-db_mounted | * Creating System services run log. netalertx-test-mount-db_mounted | * Creating System services run tmp. netalertx-test-mount-db_mounted | * Creating DB locked log. netalertx-test-mount-db_mounted | * Creating Execution queue log. netalertx-test-mount-db_mounted | --> apply conf override.sh netalertx-test-mount-db_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_mounted | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-db_mounted | netalertx-test-mount-db_mounted | Make sure the JSON content is correct before starting the application. netalertx-test-mount-db_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_mounted | --> writable config.sh netalertx-test-mount-db_mounted | --> nginx config.sh netalertx-test-mount-db_mounted | --> user netalertx.sh netalertx-test-mount-db_mounted | --> host mode network.sh netalertx-test-mount-db_mounted | --> layer 2 capabilities.sh netalertx-test-mount-db_mounted | --> excessive capabilities.sh netalertx-test-mount-db_mounted | --> appliance integrity.sh netalertx-test-mount-db_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_mounted | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-db_mounted | netalertx-test-mount-db_mounted | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-db_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-db_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_mounted | --> ports available.sh netalertx-test-mount-db_mounted | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-db_mounted | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-db_mounted | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-db_mounted | 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;" & netalertx-test-mount-db_mounted | Traceback (most recent call last): netalertx-test-mount-db_mounted | File "", line 198, in _run_module_as_main netalertx-test-mount-db_mounted | File "", line 88, in _run_code netalertx-test-mount-db_mounted | File "/app/server/__main__.py", line 260, in netalertx-test-mount-db_mounted | sys.exit(main()) netalertx-test-mount-db_mounted | ^^^^^^ netalertx-test-mount-db_mounted | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-db_mounted | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-db_mounted | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-db_mounted | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-db_mounted | for setting_name, value in settings_override.items(): netalertx-test-mount-db_mounted | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-db_mounted | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-db_mounted | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-db_mounted Stopping Container netalertx-test-mount-db_mounted Stopped File: docker-compose.mount-test.db_no-mount.yml ---------------------------------------- Expected outcome: Container shows mount error warning but continues running - NETALERTX_DB shows as not mounted (❌ in Mount column) but path gets created - Warning message displayed about configuration issues - Container continues because database directory can be created in writable filesystem Testing: docker-compose.mount-test.db_no-mount.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_netalertx_config" Creating Volume "mount-tests_netalertx_config" Created Container netalertx-test-mount-db_no-mount Creating Container netalertx-test-mount-db_no-mount Created Attaching to netalertx-test-mount-db_no-mount netalertx-test-mount-db_no-mount |  netalertx-test-mount-db_no-mount | _ _ _ ___ _ _ __ __ netalertx-test-mount-db_no-mount | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-db_no-mount | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-db_no-mount | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-db_no-mount | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-db_no-mount | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-db_no-mount |  Network intruder and presence detector. netalertx-test-mount-db_no-mount | https://netalertx.com netalertx-test-mount-db_no-mount | netalertx-test-mount-db_no-mount | netalertx-test-mount-db_no-mount | Startup pre-checks netalertx-test-mount-db_no-mount | --> storage permission.sh netalertx-test-mount-db_no-mount | --> data migration.sh netalertx-test-mount-db_no-mount | --> mounts.py netalertx-test-mount-db_no-mount | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-db_no-mount | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-db_no-mount | /data | ✅| ✅| ❌ | ➖ | ➖ | ❌ netalertx-test-mount-db_no-mount | /data/db | ✅| ✅| ❌ | ➖ | ➖ | ❌ netalertx-test-mount-db_no-mount | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-db_no-mount | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_no-mount | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_no-mount | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_no-mount | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_no-mount | netalertx-test-mount-db_no-mount | netalertx-test-mount-db_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_no-mount | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-db_no-mount | netalertx-test-mount-db_no-mount | * /data not mounted, risk of dataloss netalertx-test-mount-db_no-mount | * /data/db not mounted, risk of dataloss netalertx-test-mount-db_no-mount | netalertx-test-mount-db_no-mount | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-db_no-mount | configuration can be quite complex. netalertx-test-mount-db_no-mount | netalertx-test-mount-db_no-mount | Review the documentation for a correct setup: netalertx-test-mount-db_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-db_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-db_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_no-mount |  netalertx-test-mount-db_no-mount | --> first run config.sh netalertx-test-mount-db_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_no-mount | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-db_no-mount | netalertx-test-mount-db_no-mount | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-db_no-mount | this instance in production. netalertx-test-mount-db_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_no-mount | --> first run db.sh netalertx-test-mount-db_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_no-mount | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-db_no-mount | netalertx-test-mount-db_no-mount | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-db_no-mount | DB before onboarding sensitive or critical networks. netalertx-test-mount-db_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_no-mount | --> mandatory folders.sh netalertx-test-mount-db_no-mount | * Creating Plugins log. netalertx-test-mount-db_no-mount | * Creating System services run log. netalertx-test-mount-db_no-mount | * Creating System services run tmp. netalertx-test-mount-db_no-mount | * Creating DB locked log. netalertx-test-mount-db_no-mount | * Creating Execution queue log. netalertx-test-mount-db_no-mount | --> apply conf override.sh netalertx-test-mount-db_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_no-mount | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-db_no-mount | netalertx-test-mount-db_no-mount | Make sure the JSON content is correct before starting the application. netalertx-test-mount-db_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_no-mount | --> writable config.sh netalertx-test-mount-db_no-mount | --> nginx config.sh netalertx-test-mount-db_no-mount | --> user netalertx.sh netalertx-test-mount-db_no-mount | --> host mode network.sh netalertx-test-mount-db_no-mount | --> layer 2 capabilities.sh netalertx-test-mount-db_no-mount | --> excessive capabilities.sh netalertx-test-mount-db_no-mount | --> appliance integrity.sh netalertx-test-mount-db_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_no-mount | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-db_no-mount | netalertx-test-mount-db_no-mount | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-db_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-db_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_no-mount | --> ports available.sh netalertx-test-mount-db_no-mount | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-db_no-mount | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-db_no-mount | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-db_no-mount | 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;" & netalertx-test-mount-db_no-mount | Traceback (most recent call last): netalertx-test-mount-db_no-mount | File "", line 198, in _run_module_as_main netalertx-test-mount-db_no-mount | File "", line 88, in _run_code netalertx-test-mount-db_no-mount | File "/app/server/__main__.py", line 260, in netalertx-test-mount-db_no-mount | sys.exit(main()) netalertx-test-mount-db_no-mount | ^^^^^^ netalertx-test-mount-db_no-mount | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-db_no-mount | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-db_no-mount | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-db_no-mount | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-db_no-mount | for setting_name, value in settings_override.items(): netalertx-test-mount-db_no-mount | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-db_no-mount | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-db_no-mount | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-db_no-mount Stopping Container netalertx-test-mount-db_no-mount Stopped File: docker-compose.mount-test.db_ramdisk.yml ---------------------------------------- Expected outcome: Container shows dataloss risk warning for database on RAM disk - NETALERTX_DB shows as mounted on tmpfs (RAM disk) - Dataloss risk warning since database should be persistent - Database will be lost on container restart Testing: docker-compose.mount-test.db_ramdisk.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_netalertx_config" Creating Volume "mount-tests_netalertx_config" Created Container netalertx-test-mount-db_ramdisk Creating Container netalertx-test-mount-db_ramdisk Created Attaching to netalertx-test-mount-db_ramdisk netalertx-test-mount-db_ramdisk |  netalertx-test-mount-db_ramdisk | _ _ _ ___ _ _ __ __ netalertx-test-mount-db_ramdisk | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-db_ramdisk | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-db_ramdisk | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-db_ramdisk | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-db_ramdisk | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-db_ramdisk |  Network intruder and presence detector. netalertx-test-mount-db_ramdisk | https://netalertx.com netalertx-test-mount-db_ramdisk | netalertx-test-mount-db_ramdisk | netalertx-test-mount-db_ramdisk | Startup pre-checks netalertx-test-mount-db_ramdisk | --> storage permission.sh netalertx-test-mount-db_ramdisk | --> data migration.sh netalertx-test-mount-db_ramdisk | --> mounts.py netalertx-test-mount-db_ramdisk | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-db_ramdisk | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-db_ramdisk | /data | ✅| ✅| ❌ | ➖ | ➖ | ❌ netalertx-test-mount-db_ramdisk | /data/db | ✅| ✅| ✅ | ❌ | ➖ | ❌ netalertx-test-mount-db_ramdisk | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-db_ramdisk | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_ramdisk | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_ramdisk | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_ramdisk | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_ramdisk | netalertx-test-mount-db_ramdisk | netalertx-test-mount-db_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_ramdisk | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-db_ramdisk | netalertx-test-mount-db_ramdisk | * /data not mounted, risk of dataloss netalertx-test-mount-db_ramdisk | * /data/db risk of dataloss netalertx-test-mount-db_ramdisk | netalertx-test-mount-db_ramdisk | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-db_ramdisk | configuration can be quite complex. netalertx-test-mount-db_ramdisk | netalertx-test-mount-db_ramdisk | Review the documentation for a correct setup: netalertx-test-mount-db_ramdisk | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-db_ramdisk | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-db_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_ramdisk |  netalertx-test-mount-db_ramdisk | --> first run config.sh netalertx-test-mount-db_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_ramdisk | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-db_ramdisk | netalertx-test-mount-db_ramdisk | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-db_ramdisk | this instance in production. netalertx-test-mount-db_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_ramdisk | --> first run db.sh netalertx-test-mount-db_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_ramdisk | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-db_ramdisk | netalertx-test-mount-db_ramdisk | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-db_ramdisk | DB before onboarding sensitive or critical networks. netalertx-test-mount-db_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_ramdisk | --> mandatory folders.sh netalertx-test-mount-db_ramdisk | * Creating Plugins log. netalertx-test-mount-db_ramdisk | * Creating System services run log. netalertx-test-mount-db_ramdisk | * Creating System services run tmp. netalertx-test-mount-db_ramdisk | * Creating DB locked log. netalertx-test-mount-db_ramdisk | * Creating Execution queue log. netalertx-test-mount-db_ramdisk | --> apply conf override.sh netalertx-test-mount-db_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_ramdisk | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-db_ramdisk | netalertx-test-mount-db_ramdisk | Make sure the JSON content is correct before starting the application. netalertx-test-mount-db_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_ramdisk | --> writable config.sh netalertx-test-mount-db_ramdisk | --> nginx config.sh netalertx-test-mount-db_ramdisk | --> user netalertx.sh netalertx-test-mount-db_ramdisk | --> host mode network.sh netalertx-test-mount-db_ramdisk | --> layer 2 capabilities.sh netalertx-test-mount-db_ramdisk | --> excessive capabilities.sh netalertx-test-mount-db_ramdisk | --> appliance integrity.sh netalertx-test-mount-db_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_ramdisk | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-db_ramdisk | netalertx-test-mount-db_ramdisk | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-db_ramdisk | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-db_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_ramdisk | --> ports available.sh netalertx-test-mount-db_ramdisk | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-db_ramdisk | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-db_ramdisk | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-db_ramdisk | 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;" & netalertx-test-mount-db_ramdisk | Traceback (most recent call last): netalertx-test-mount-db_ramdisk | File "", line 198, in _run_module_as_main netalertx-test-mount-db_ramdisk | File "", line 88, in _run_code netalertx-test-mount-db_ramdisk | File "/app/server/__main__.py", line 260, in netalertx-test-mount-db_ramdisk | sys.exit(main()) netalertx-test-mount-db_ramdisk | ^^^^^^ netalertx-test-mount-db_ramdisk | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-db_ramdisk | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-db_ramdisk | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-db_ramdisk | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-db_ramdisk | for setting_name, value in settings_override.items(): netalertx-test-mount-db_ramdisk | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-db_ramdisk | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-db_ramdisk | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-db_ramdisk Stopping Container netalertx-test-mount-db_ramdisk Stopped File: docker-compose.mount-test.db_unwritable.yml ---------------------------------------- Expected outcome: Container fails to start due to unwritable database partition - NETALERTX_DB shows as mounted but unwritable (❌ in Writeable column) - 30-writable-config.sh detects permission error and exits with code 1 - Container startup fails because database files cannot be written to Testing: docker-compose.mount-test.db_unwritable.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_test_netalertx_db" Creating Volume "mount-tests_test_netalertx_db" Created Volume "mount-tests_netalertx_config" Creating Volume "mount-tests_netalertx_config" Created Container netalertx-test-mount-db_unwritable Creating Container netalertx-test-mount-db_unwritable Created Attaching to netalertx-test-mount-db_unwritable netalertx-test-mount-db_unwritable |  netalertx-test-mount-db_unwritable | _ _ _ ___ _ _ __ __ netalertx-test-mount-db_unwritable | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-db_unwritable | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-db_unwritable | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-db_unwritable | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-db_unwritable | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-db_unwritable |  Network intruder and presence detector. netalertx-test-mount-db_unwritable | https://netalertx.com netalertx-test-mount-db_unwritable | netalertx-test-mount-db_unwritable | netalertx-test-mount-db_unwritable | Startup pre-checks netalertx-test-mount-db_unwritable | --> storage permission.sh netalertx-test-mount-db_unwritable | --> data migration.sh netalertx-test-mount-db_unwritable | --> mounts.py netalertx-test-mount-db_unwritable | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-db_unwritable | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-db_unwritable | /data | ✅| ✅| ❌ | ➖ | ➖ | ❌ netalertx-test-mount-db_unwritable | /data/db | ✅| ❌| ✅ | ➖ | ➖ | ❌ netalertx-test-mount-db_unwritable | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-db_unwritable | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_unwritable | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_unwritable | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_unwritable | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-db_unwritable | netalertx-test-mount-db_unwritable | netalertx-test-mount-db_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_unwritable | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-db_unwritable | netalertx-test-mount-db_unwritable | * /data not mounted, risk of dataloss netalertx-test-mount-db_unwritable | * /data/db error writing, risk of dataloss netalertx-test-mount-db_unwritable | netalertx-test-mount-db_unwritable | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-db_unwritable | configuration can be quite complex. netalertx-test-mount-db_unwritable | netalertx-test-mount-db_unwritable | Review the documentation for a correct setup: netalertx-test-mount-db_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-db_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-db_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_unwritable |  netalertx-test-mount-db_unwritable | \033[1;31m══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_unwritable | ❌ NetAlertX startup aborted: critical failure in mounts.py. netalertx-test-mount-db_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/troubleshooting.md netalertx-test-mount-db_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-db_unwritable | \033[0m netalertx-test-mount-db_unwritable exited with code 1 File: docker-compose.mount-test.log_mounted.yml ---------------------------------------- Expected outcome: Container starts successfully with proper log mount - NETALERTX_LOG shows as mounted and writable - No mount warnings since logs can be non-persistent - Container starts normally with logging enabled Testing: docker-compose.mount-test.log_mounted.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_netalertx_db" Creating Volume "mount-tests_netalertx_db" Created Volume "mount-tests_netalertx_config" Creating Volume "mount-tests_netalertx_config" Created Volume "mount-tests_test_netalertx_log" Creating Volume "mount-tests_test_netalertx_log" Created Container netalertx-test-mount-log_mounted Creating Container netalertx-test-mount-log_mounted Created Attaching to netalertx-test-mount-log_mounted netalertx-test-mount-log_mounted |  netalertx-test-mount-log_mounted | _ _ _ ___ _ _ __ __ netalertx-test-mount-log_mounted | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-log_mounted | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-log_mounted | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-log_mounted | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-log_mounted | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-log_mounted |  Network intruder and presence detector. netalertx-test-mount-log_mounted | https://netalertx.com netalertx-test-mount-log_mounted | netalertx-test-mount-log_mounted | netalertx-test-mount-log_mounted | Startup pre-checks netalertx-test-mount-log_mounted | --> storage permission.sh netalertx-test-mount-log_mounted | --> data migration.sh netalertx-test-mount-log_mounted | --> mounts.py netalertx-test-mount-log_mounted | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-log_mounted | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-log_mounted | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-log_mounted | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-log_mounted | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_mounted | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_mounted | /tmp/log | ✅| ✅| ✅ | ❌ | ❌ | ✅ netalertx-test-mount-log_mounted | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_mounted | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_mounted | netalertx-test-mount-log_mounted | netalertx-test-mount-log_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_mounted | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-log_mounted | netalertx-test-mount-log_mounted | * /tmp/log performance issue netalertx-test-mount-log_mounted | netalertx-test-mount-log_mounted | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-log_mounted | configuration can be quite complex. netalertx-test-mount-log_mounted | netalertx-test-mount-log_mounted | Review the documentation for a correct setup: netalertx-test-mount-log_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-log_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-log_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_mounted |  netalertx-test-mount-log_mounted | --> first run config.sh netalertx-test-mount-log_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_mounted | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-log_mounted | netalertx-test-mount-log_mounted | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-log_mounted | this instance in production. netalertx-test-mount-log_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_mounted | --> first run db.sh netalertx-test-mount-log_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_mounted | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-log_mounted | netalertx-test-mount-log_mounted | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-log_mounted | DB before onboarding sensitive or critical networks. netalertx-test-mount-log_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_mounted | --> mandatory folders.sh netalertx-test-mount-log_mounted | * Creating System services run log. netalertx-test-mount-log_mounted | * Creating System services run tmp. netalertx-test-mount-log_mounted | --> apply conf override.sh netalertx-test-mount-log_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_mounted | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-log_mounted | netalertx-test-mount-log_mounted | Make sure the JSON content is correct before starting the application. netalertx-test-mount-log_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_mounted | --> writable config.sh netalertx-test-mount-log_mounted | --> nginx config.sh netalertx-test-mount-log_mounted | --> user netalertx.sh netalertx-test-mount-log_mounted | --> host mode network.sh netalertx-test-mount-log_mounted | --> layer 2 capabilities.sh netalertx-test-mount-log_mounted | --> excessive capabilities.sh netalertx-test-mount-log_mounted | --> appliance integrity.sh netalertx-test-mount-log_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_mounted | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-log_mounted | netalertx-test-mount-log_mounted | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-log_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-log_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_mounted | --> ports available.sh netalertx-test-mount-log_mounted | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-log_mounted | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-log_mounted | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-log_mounted | 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;" & netalertx-test-mount-log_mounted | Traceback (most recent call last): netalertx-test-mount-log_mounted | File "", line 198, in _run_module_as_main netalertx-test-mount-log_mounted | File "", line 88, in _run_code netalertx-test-mount-log_mounted | File "/app/server/__main__.py", line 260, in netalertx-test-mount-log_mounted | sys.exit(main()) netalertx-test-mount-log_mounted | ^^^^^^ netalertx-test-mount-log_mounted | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-log_mounted | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-log_mounted | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-log_mounted | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-log_mounted | for setting_name, value in settings_override.items(): netalertx-test-mount-log_mounted | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-log_mounted | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-log_mounted | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-log_mounted Stopping Container netalertx-test-mount-log_mounted Stopped File: docker-compose.mount-test.log_no-mount.yml ---------------------------------------- Expected outcome: Container shows mount error warning but continues running - NETALERTX_LOG shows as not mounted (❌ in Mount column) - Warning message displayed about configuration issues - Container continues to run despite the mount error Testing: docker-compose.mount-test.log_no-mount.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_netalertx_config" Creating Volume "mount-tests_netalertx_config" Created Volume "mount-tests_netalertx_db" Creating Volume "mount-tests_netalertx_db" Created Container netalertx-test-mount-log_no-mount Creating Container netalertx-test-mount-log_no-mount Created Attaching to netalertx-test-mount-log_no-mount netalertx-test-mount-log_no-mount |  netalertx-test-mount-log_no-mount | _ _ _ ___ _ _ __ __ netalertx-test-mount-log_no-mount | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-log_no-mount | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-log_no-mount | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-log_no-mount | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-log_no-mount | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-log_no-mount |  Network intruder and presence detector. netalertx-test-mount-log_no-mount | https://netalertx.com netalertx-test-mount-log_no-mount | netalertx-test-mount-log_no-mount | netalertx-test-mount-log_no-mount | Startup pre-checks netalertx-test-mount-log_no-mount | --> storage permission.sh netalertx-test-mount-log_no-mount | --> data migration.sh netalertx-test-mount-log_no-mount | --> mounts.py netalertx-test-mount-log_no-mount | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-log_no-mount | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-log_no-mount | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-log_no-mount | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-log_no-mount | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_no-mount | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_no-mount | /tmp/log | ✅| ✅| ❌ | ❌ | ❌ | ✅ netalertx-test-mount-log_no-mount | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_no-mount | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_no-mount | netalertx-test-mount-log_no-mount | netalertx-test-mount-log_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_no-mount | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-log_no-mount | netalertx-test-mount-log_no-mount | * /tmp/log not mounted, performance issue netalertx-test-mount-log_no-mount | netalertx-test-mount-log_no-mount | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-log_no-mount | configuration can be quite complex. netalertx-test-mount-log_no-mount | netalertx-test-mount-log_no-mount | Review the documentation for a correct setup: netalertx-test-mount-log_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-log_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-log_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_no-mount |  netalertx-test-mount-log_no-mount | --> first run config.sh netalertx-test-mount-log_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_no-mount | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-log_no-mount | netalertx-test-mount-log_no-mount | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-log_no-mount | this instance in production. netalertx-test-mount-log_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_no-mount | --> first run db.sh netalertx-test-mount-log_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_no-mount | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-log_no-mount | netalertx-test-mount-log_no-mount | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-log_no-mount | DB before onboarding sensitive or critical networks. netalertx-test-mount-log_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_no-mount | --> mandatory folders.sh netalertx-test-mount-log_no-mount | * Creating System services run log. netalertx-test-mount-log_no-mount | * Creating System services run tmp. netalertx-test-mount-log_no-mount | --> apply conf override.sh netalertx-test-mount-log_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_no-mount | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-log_no-mount | netalertx-test-mount-log_no-mount | Make sure the JSON content is correct before starting the application. netalertx-test-mount-log_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_no-mount | --> writable config.sh netalertx-test-mount-log_no-mount | --> nginx config.sh netalertx-test-mount-log_no-mount | --> user netalertx.sh netalertx-test-mount-log_no-mount | --> host mode network.sh netalertx-test-mount-log_no-mount | --> layer 2 capabilities.sh netalertx-test-mount-log_no-mount | --> excessive capabilities.sh netalertx-test-mount-log_no-mount | --> appliance integrity.sh netalertx-test-mount-log_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_no-mount | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-log_no-mount | netalertx-test-mount-log_no-mount | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-log_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-log_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_no-mount | --> ports available.sh netalertx-test-mount-log_no-mount | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-log_no-mount | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-log_no-mount | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-log_no-mount | 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;" & netalertx-test-mount-log_no-mount | Traceback (most recent call last): netalertx-test-mount-log_no-mount | File "", line 198, in _run_module_as_main netalertx-test-mount-log_no-mount | File "", line 88, in _run_code netalertx-test-mount-log_no-mount | File "/app/server/__main__.py", line 260, in netalertx-test-mount-log_no-mount | sys.exit(main()) netalertx-test-mount-log_no-mount | ^^^^^^ netalertx-test-mount-log_no-mount | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-log_no-mount | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-log_no-mount | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-log_no-mount | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-log_no-mount | for setting_name, value in settings_override.items(): netalertx-test-mount-log_no-mount | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-log_no-mount | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-log_no-mount | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-log_no-mount Stopping Container netalertx-test-mount-log_no-mount Stopped File: docker-compose.mount-test.log_ramdisk.yml ---------------------------------------- Expected outcome: Container shows dataloss risk warning for logs on RAM disk - NETALERTX_LOG shows as mounted on tmpfs (RAM disk) - Dataloss risk warning since logs may be lost on restart - Container starts but logs may not persist Testing: docker-compose.mount-test.log_ramdisk.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_test_netalertx_data" Creating Volume "mount-tests_test_netalertx_data" Created Container netalertx-test-mount-log_ramdisk Creating Container netalertx-test-mount-log_ramdisk Created Attaching to netalertx-test-mount-log_ramdisk netalertx-test-mount-log_ramdisk |  netalertx-test-mount-log_ramdisk | _ _ _ ___ _ _ __ __ netalertx-test-mount-log_ramdisk | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-log_ramdisk | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-log_ramdisk | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-log_ramdisk | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-log_ramdisk | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-log_ramdisk |  Network intruder and presence detector. netalertx-test-mount-log_ramdisk | https://netalertx.com netalertx-test-mount-log_ramdisk | netalertx-test-mount-log_ramdisk | netalertx-test-mount-log_ramdisk | Startup pre-checks netalertx-test-mount-log_ramdisk | --> storage permission.sh netalertx-test-mount-log_ramdisk | --> data migration.sh netalertx-test-mount-log_ramdisk | --> mounts.py netalertx-test-mount-log_ramdisk | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-log_ramdisk | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-log_ramdisk | /data | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-log_ramdisk | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-log_ramdisk | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-log_ramdisk | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_ramdisk | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_ramdisk | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_ramdisk | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_ramdisk | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_ramdisk | --> first run config.sh netalertx-test-mount-log_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_ramdisk | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-log_ramdisk | netalertx-test-mount-log_ramdisk | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-log_ramdisk | this instance in production. netalertx-test-mount-log_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_ramdisk | --> first run db.sh netalertx-test-mount-log_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_ramdisk | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-log_ramdisk | netalertx-test-mount-log_ramdisk | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-log_ramdisk | DB before onboarding sensitive or critical networks. netalertx-test-mount-log_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_ramdisk | --> mandatory folders.sh netalertx-test-mount-log_ramdisk | * Creating NetAlertX log directory. netalertx-test-mount-log_ramdisk | * Creating NetAlertX API cache. netalertx-test-mount-log_ramdisk | * Creating System services runtime directory. netalertx-test-mount-log_ramdisk | * Creating nginx active configuration directory. netalertx-test-mount-log_ramdisk | * Creating Plugins log. netalertx-test-mount-log_ramdisk | * Creating System services run log. netalertx-test-mount-log_ramdisk | * Creating System services run tmp. netalertx-test-mount-log_ramdisk | * Creating DB locked log. netalertx-test-mount-log_ramdisk | * Creating Execution queue log. netalertx-test-mount-log_ramdisk | --> apply conf override.sh netalertx-test-mount-log_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_ramdisk | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-log_ramdisk | netalertx-test-mount-log_ramdisk | Make sure the JSON content is correct before starting the application. netalertx-test-mount-log_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_ramdisk | --> writable config.sh netalertx-test-mount-log_ramdisk | --> nginx config.sh netalertx-test-mount-log_ramdisk | --> user netalertx.sh netalertx-test-mount-log_ramdisk | --> host mode network.sh netalertx-test-mount-log_ramdisk | --> layer 2 capabilities.sh netalertx-test-mount-log_ramdisk | --> excessive capabilities.sh netalertx-test-mount-log_ramdisk | --> appliance integrity.sh netalertx-test-mount-log_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_ramdisk | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-log_ramdisk | netalertx-test-mount-log_ramdisk | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-log_ramdisk | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-log_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_ramdisk | --> ports available.sh netalertx-test-mount-log_ramdisk | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-log_ramdisk | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-log_ramdisk | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-log_ramdisk | 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;" & netalertx-test-mount-log_ramdisk | Traceback (most recent call last): netalertx-test-mount-log_ramdisk | File "", line 198, in _run_module_as_main netalertx-test-mount-log_ramdisk | File "", line 88, in _run_code netalertx-test-mount-log_ramdisk | File "/app/server/__main__.py", line 260, in netalertx-test-mount-log_ramdisk | sys.exit(main()) netalertx-test-mount-log_ramdisk | ^^^^^^ netalertx-test-mount-log_ramdisk | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-log_ramdisk | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-log_ramdisk | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-log_ramdisk | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-log_ramdisk | for setting_name, value in settings_override.items(): netalertx-test-mount-log_ramdisk | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-log_ramdisk | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-log_ramdisk | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-log_ramdisk Stopping Container netalertx-test-mount-log_ramdisk Stopped File: docker-compose.mount-test.log_unwritable.yml ---------------------------------------- Expected outcome: Container fails to start due to unwritable log partition - NETALERTX_LOG shows as mounted but unwritable (❌ in Writeable column) - 25-mandatory-folders.sh cannot create required log files and fails - Container startup fails because logging infrastructure cannot be initialized Testing: docker-compose.mount-test.log_unwritable.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_test_netalertx_log" Creating Volume "mount-tests_test_netalertx_log" Created Volume "mount-tests_netalertx_db" Creating Volume "mount-tests_netalertx_db" Created Volume "mount-tests_netalertx_config" Creating Volume "mount-tests_netalertx_config" Created Container netalertx-test-mount-log_unwritable Creating Container netalertx-test-mount-log_unwritable Created Attaching to netalertx-test-mount-log_unwritable netalertx-test-mount-log_unwritable |  netalertx-test-mount-log_unwritable | _ _ _ ___ _ _ __ __ netalertx-test-mount-log_unwritable | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-log_unwritable | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-log_unwritable | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-log_unwritable | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-log_unwritable | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-log_unwritable |  Network intruder and presence detector. netalertx-test-mount-log_unwritable | https://netalertx.com netalertx-test-mount-log_unwritable | netalertx-test-mount-log_unwritable | netalertx-test-mount-log_unwritable | Startup pre-checks netalertx-test-mount-log_unwritable | --> storage permission.sh netalertx-test-mount-log_unwritable | --> data migration.sh netalertx-test-mount-log_unwritable | --> mounts.py netalertx-test-mount-log_unwritable | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-log_unwritable | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-log_unwritable | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-log_unwritable | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-log_unwritable | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_unwritable | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_unwritable | /tmp/log | ✅| ❌| ✅ | ❌ | ❌ | ✅ netalertx-test-mount-log_unwritable | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_unwritable | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-log_unwritable | netalertx-test-mount-log_unwritable | netalertx-test-mount-log_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_unwritable | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-log_unwritable | netalertx-test-mount-log_unwritable | * /tmp/log error writing, performance issue netalertx-test-mount-log_unwritable | netalertx-test-mount-log_unwritable | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-log_unwritable | configuration can be quite complex. netalertx-test-mount-log_unwritable | netalertx-test-mount-log_unwritable | Review the documentation for a correct setup: netalertx-test-mount-log_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-log_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-log_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_unwritable |  netalertx-test-mount-log_unwritable | \033[1;31m══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_unwritable | ❌ NetAlertX startup aborted: critical failure in mounts.py. netalertx-test-mount-log_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/troubleshooting.md netalertx-test-mount-log_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-log_unwritable | \033[0m netalertx-test-mount-log_unwritable exited with code 1 File: docker-compose.mount-test.run_mounted.yml ---------------------------------------- Expected outcome: Container starts successfully with proper run mount - NETALERTX_RUN shows as mounted and writable - No mount warnings since run directory can be non-persistent - Container starts normally with runtime files enabled Testing: docker-compose.mount-test.run_mounted.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_netalertx_db" Creating Volume "mount-tests_netalertx_db" Created Volume "mount-tests_netalertx_config" Creating Volume "mount-tests_netalertx_config" Created Volume "mount-tests_test_system_services_run" Creating Volume "mount-tests_test_system_services_run" Created Container netalertx-test-mount-run_mounted Creating Container netalertx-test-mount-run_mounted Created Attaching to netalertx-test-mount-run_mounted netalertx-test-mount-run_mounted |  netalertx-test-mount-run_mounted | _ _ _ ___ _ _ __ __ netalertx-test-mount-run_mounted | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-run_mounted | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-run_mounted | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-run_mounted | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-run_mounted | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-run_mounted |  Network intruder and presence detector. netalertx-test-mount-run_mounted | https://netalertx.com netalertx-test-mount-run_mounted | netalertx-test-mount-run_mounted | netalertx-test-mount-run_mounted | Startup pre-checks netalertx-test-mount-run_mounted | --> storage permission.sh netalertx-test-mount-run_mounted | --> data migration.sh netalertx-test-mount-run_mounted | --> mounts.py netalertx-test-mount-run_mounted | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-run_mounted | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-run_mounted | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-run_mounted | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-run_mounted | /tmp/run/tmp | ✅| ✅| ✅ | ❌ | ❌ | ✅ netalertx-test-mount-run_mounted | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_mounted | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_mounted | /tmp/run | ✅| ✅| ✅ | ❌ | ❌ | ✅ netalertx-test-mount-run_mounted | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_mounted | netalertx-test-mount-run_mounted | netalertx-test-mount-run_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_mounted | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-run_mounted | netalertx-test-mount-run_mounted | * /tmp/run/tmp performance issue netalertx-test-mount-run_mounted | * /tmp/run performance issue netalertx-test-mount-run_mounted | netalertx-test-mount-run_mounted | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-run_mounted | configuration can be quite complex. netalertx-test-mount-run_mounted | netalertx-test-mount-run_mounted | Review the documentation for a correct setup: netalertx-test-mount-run_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-run_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-run_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_mounted |  netalertx-test-mount-run_mounted | --> first run config.sh netalertx-test-mount-run_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_mounted | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-run_mounted | netalertx-test-mount-run_mounted | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-run_mounted | this instance in production. netalertx-test-mount-run_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_mounted | --> first run db.sh netalertx-test-mount-run_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_mounted | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-run_mounted | netalertx-test-mount-run_mounted | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-run_mounted | DB before onboarding sensitive or critical networks. netalertx-test-mount-run_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_mounted | --> mandatory folders.sh netalertx-test-mount-run_mounted | * Creating Plugins log. netalertx-test-mount-run_mounted | * Creating DB locked log. netalertx-test-mount-run_mounted | * Creating Execution queue log. netalertx-test-mount-run_mounted | --> apply conf override.sh netalertx-test-mount-run_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_mounted | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-run_mounted | netalertx-test-mount-run_mounted | Make sure the JSON content is correct before starting the application. netalertx-test-mount-run_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_mounted | --> writable config.sh netalertx-test-mount-run_mounted | --> nginx config.sh netalertx-test-mount-run_mounted | --> user netalertx.sh netalertx-test-mount-run_mounted | --> host mode network.sh netalertx-test-mount-run_mounted | --> layer 2 capabilities.sh netalertx-test-mount-run_mounted | --> excessive capabilities.sh netalertx-test-mount-run_mounted | --> appliance integrity.sh netalertx-test-mount-run_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_mounted | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-run_mounted | netalertx-test-mount-run_mounted | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-run_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-run_mounted | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_mounted | --> ports available.sh netalertx-test-mount-run_mounted | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-run_mounted | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-run_mounted | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-run_mounted | 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;" & netalertx-test-mount-run_mounted | Traceback (most recent call last): netalertx-test-mount-run_mounted | File "", line 198, in _run_module_as_main netalertx-test-mount-run_mounted | File "", line 88, in _run_code netalertx-test-mount-run_mounted | File "/app/server/__main__.py", line 260, in netalertx-test-mount-run_mounted | sys.exit(main()) netalertx-test-mount-run_mounted | ^^^^^^ netalertx-test-mount-run_mounted | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-run_mounted | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-run_mounted | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-run_mounted | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-run_mounted | for setting_name, value in settings_override.items(): netalertx-test-mount-run_mounted | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-run_mounted | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-run_mounted | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-run_mounted Stopping Container netalertx-test-mount-run_mounted Stopped File: docker-compose.mount-test.run_no-mount.yml ---------------------------------------- Expected outcome: Container shows mount error warning but continues running - NETALERTX_RUN shows as not mounted (❌ in Mount column) - Warning message displayed about configuration issues - Container continues to run despite the mount error Testing: docker-compose.mount-test.run_no-mount.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_netalertx_db" Creating Volume "mount-tests_netalertx_db" Created Volume "mount-tests_netalertx_config" Creating Volume "mount-tests_netalertx_config" Created Container netalertx-test-mount-run_no-mount Creating Container netalertx-test-mount-run_no-mount Created Attaching to netalertx-test-mount-run_no-mount netalertx-test-mount-run_no-mount |  netalertx-test-mount-run_no-mount | _ _ _ ___ _ _ __ __ netalertx-test-mount-run_no-mount | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-run_no-mount | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-run_no-mount | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-run_no-mount | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-run_no-mount | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-run_no-mount |  Network intruder and presence detector. netalertx-test-mount-run_no-mount | https://netalertx.com netalertx-test-mount-run_no-mount | netalertx-test-mount-run_no-mount | netalertx-test-mount-run_no-mount | Startup pre-checks netalertx-test-mount-run_no-mount | --> storage permission.sh netalertx-test-mount-run_no-mount | --> data migration.sh netalertx-test-mount-run_no-mount | --> mounts.py netalertx-test-mount-run_no-mount | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-run_no-mount | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-run_no-mount | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-run_no-mount | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-run_no-mount | /tmp/run/tmp | ✅| ✅| ❌ | ❌ | ❌ | ✅ netalertx-test-mount-run_no-mount | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_no-mount | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_no-mount | /tmp/run | ✅| ✅| ❌ | ❌ | ❌ | ✅ netalertx-test-mount-run_no-mount | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_no-mount | netalertx-test-mount-run_no-mount | netalertx-test-mount-run_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_no-mount | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-run_no-mount | netalertx-test-mount-run_no-mount | * /tmp/run/tmp not mounted, performance issue netalertx-test-mount-run_no-mount | * /tmp/run not mounted, performance issue netalertx-test-mount-run_no-mount | netalertx-test-mount-run_no-mount | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-run_no-mount | configuration can be quite complex. netalertx-test-mount-run_no-mount | netalertx-test-mount-run_no-mount | Review the documentation for a correct setup: netalertx-test-mount-run_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-run_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-run_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_no-mount |  netalertx-test-mount-run_no-mount | --> first run config.sh netalertx-test-mount-run_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_no-mount | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-run_no-mount | netalertx-test-mount-run_no-mount | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-run_no-mount | this instance in production. netalertx-test-mount-run_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_no-mount | --> first run db.sh netalertx-test-mount-run_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_no-mount | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-run_no-mount | netalertx-test-mount-run_no-mount | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-run_no-mount | DB before onboarding sensitive or critical networks. netalertx-test-mount-run_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_no-mount | --> mandatory folders.sh netalertx-test-mount-run_no-mount | * Creating Plugins log. netalertx-test-mount-run_no-mount | * Creating DB locked log. netalertx-test-mount-run_no-mount | * Creating Execution queue log. netalertx-test-mount-run_no-mount | --> apply conf override.sh netalertx-test-mount-run_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_no-mount | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-run_no-mount | netalertx-test-mount-run_no-mount | Make sure the JSON content is correct before starting the application. netalertx-test-mount-run_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_no-mount | --> writable config.sh netalertx-test-mount-run_no-mount | --> nginx config.sh netalertx-test-mount-run_no-mount | --> user netalertx.sh netalertx-test-mount-run_no-mount | --> host mode network.sh netalertx-test-mount-run_no-mount | --> layer 2 capabilities.sh netalertx-test-mount-run_no-mount | --> excessive capabilities.sh netalertx-test-mount-run_no-mount | --> appliance integrity.sh netalertx-test-mount-run_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_no-mount | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-run_no-mount | netalertx-test-mount-run_no-mount | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-run_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-run_no-mount | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_no-mount | --> ports available.sh netalertx-test-mount-run_no-mount | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-run_no-mount | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-run_no-mount | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-run_no-mount | 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;" & netalertx-test-mount-run_no-mount | Traceback (most recent call last): netalertx-test-mount-run_no-mount | File "", line 198, in _run_module_as_main netalertx-test-mount-run_no-mount | File "", line 88, in _run_code netalertx-test-mount-run_no-mount | File "/app/server/__main__.py", line 260, in netalertx-test-mount-run_no-mount | sys.exit(main()) netalertx-test-mount-run_no-mount | ^^^^^^ netalertx-test-mount-run_no-mount | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-run_no-mount | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-run_no-mount | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-run_no-mount | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-run_no-mount | for setting_name, value in settings_override.items(): netalertx-test-mount-run_no-mount | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-run_no-mount | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-run_no-mount | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-run_no-mount Stopping Container netalertx-test-mount-run_no-mount Stopped File: docker-compose.mount-test.run_ramdisk.yml ---------------------------------------- Expected outcome: Container shows dataloss risk warning for run on RAM disk - NETALERTX_RUN shows as mounted on tmpfs (RAM disk) - Dataloss risk warning since runtime files may be lost on restart - Container starts but runtime state may not persist Testing: docker-compose.mount-test.run_ramdisk.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_test_netalertx_data" Creating Volume "mount-tests_test_netalertx_data" Created Container netalertx-test-mount-run_ramdisk Creating Container netalertx-test-mount-run_ramdisk Created Attaching to netalertx-test-mount-run_ramdisk netalertx-test-mount-run_ramdisk |  netalertx-test-mount-run_ramdisk | _ _ _ ___ _ _ __ __ netalertx-test-mount-run_ramdisk | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-run_ramdisk | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-run_ramdisk | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-run_ramdisk | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-run_ramdisk | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-run_ramdisk |  Network intruder and presence detector. netalertx-test-mount-run_ramdisk | https://netalertx.com netalertx-test-mount-run_ramdisk | netalertx-test-mount-run_ramdisk | netalertx-test-mount-run_ramdisk | Startup pre-checks netalertx-test-mount-run_ramdisk | --> storage permission.sh netalertx-test-mount-run_ramdisk | --> data migration.sh netalertx-test-mount-run_ramdisk | --> mounts.py netalertx-test-mount-run_ramdisk | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-run_ramdisk | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-run_ramdisk | /data | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-run_ramdisk | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-run_ramdisk | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-run_ramdisk | /tmp/run/tmp | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_ramdisk | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_ramdisk | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_ramdisk | /tmp/run | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_ramdisk | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_ramdisk | --> first run config.sh netalertx-test-mount-run_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_ramdisk | 🆕 First run detected. Default configuration written to /data/config/app.conf. netalertx-test-mount-run_ramdisk | netalertx-test-mount-run_ramdisk | Review your settings in the UI or edit the file directly before trusting netalertx-test-mount-run_ramdisk | this instance in production. netalertx-test-mount-run_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_ramdisk | --> first run db.sh netalertx-test-mount-run_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_ramdisk | 🆕 First run detected — building initial database at: /data/db/app.db netalertx-test-mount-run_ramdisk | netalertx-test-mount-run_ramdisk | Do not interrupt this step. When complete, consider backing up the fresh netalertx-test-mount-run_ramdisk | DB before onboarding sensitive or critical networks. netalertx-test-mount-run_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_ramdisk | --> mandatory folders.sh netalertx-test-mount-run_ramdisk | * Creating NetAlertX log directory. netalertx-test-mount-run_ramdisk | * Creating NetAlertX API cache. netalertx-test-mount-run_ramdisk | * Creating System services runtime directory. netalertx-test-mount-run_ramdisk | * Creating nginx active configuration directory. netalertx-test-mount-run_ramdisk | * Creating Plugins log. netalertx-test-mount-run_ramdisk | * Creating System services run log. netalertx-test-mount-run_ramdisk | * Creating System services run tmp. netalertx-test-mount-run_ramdisk | * Creating DB locked log. netalertx-test-mount-run_ramdisk | * Creating Execution queue log. netalertx-test-mount-run_ramdisk | --> apply conf override.sh netalertx-test-mount-run_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_ramdisk | 📝 APP_CONF_OVERRIDE detected. Configuration written to /data/config/app_conf_override.json. netalertx-test-mount-run_ramdisk | netalertx-test-mount-run_ramdisk | Make sure the JSON content is correct before starting the application. netalertx-test-mount-run_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_ramdisk | --> writable config.sh netalertx-test-mount-run_ramdisk | --> nginx config.sh netalertx-test-mount-run_ramdisk | --> user netalertx.sh netalertx-test-mount-run_ramdisk | --> host mode network.sh netalertx-test-mount-run_ramdisk | --> layer 2 capabilities.sh netalertx-test-mount-run_ramdisk | --> excessive capabilities.sh netalertx-test-mount-run_ramdisk | --> appliance integrity.sh netalertx-test-mount-run_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_ramdisk | ⚠️ Warning: Container is running as read-write, not in read-only mode. netalertx-test-mount-run_ramdisk | netalertx-test-mount-run_ramdisk | Please mount the root filesystem as --read-only or use read_only: true netalertx-test-mount-run_ramdisk | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md netalertx-test-mount-run_ramdisk | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_ramdisk | --> ports available.sh netalertx-test-mount-run_ramdisk | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-mount-run_ramdisk | Starting /usr/sbin/php-fpm83 -y "/services/config/php/php-fpm.conf" -F >>"/tmp/log/app.php_errors.log" 2>/dev/stderr & netalertx-test-mount-run_ramdisk | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) netalertx-test-mount-run_ramdisk | 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;" & netalertx-test-mount-run_ramdisk | Traceback (most recent call last): netalertx-test-mount-run_ramdisk | File "", line 198, in _run_module_as_main netalertx-test-mount-run_ramdisk | File "", line 88, in _run_code netalertx-test-mount-run_ramdisk | File "/app/server/__main__.py", line 260, in netalertx-test-mount-run_ramdisk | sys.exit(main()) netalertx-test-mount-run_ramdisk | ^^^^^^ netalertx-test-mount-run_ramdisk | File "/app/server/__main__.py", line 104, in main netalertx-test-mount-run_ramdisk | pm, all_plugins, imported = importConfigs(pm, db, all_plugins) netalertx-test-mount-run_ramdisk | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-run_ramdisk | File "/app/server/initialise.py", line 586, in importConfigs netalertx-test-mount-run_ramdisk | for setting_name, value in settings_override.items(): netalertx-test-mount-run_ramdisk | ^^^^^^^^^^^^^^^^^^^^^^^ netalertx-test-mount-run_ramdisk | AttributeError: 'int' object has no attribute 'items' netalertx-test-mount-run_ramdisk | Successfully updated IEEE OUI database (112333 entries) Gracefully stopping... (press Ctrl+C again to force) Container netalertx-test-mount-run_ramdisk Stopping Container netalertx-test-mount-run_ramdisk Stopped File: docker-compose.mount-test.run_unwritable.yml ---------------------------------------- Expected outcome: Container fails to start due to unwritable run partition - NETALERTX_RUN shows as mounted but unwritable (❌ in Writeable column) - 25-mandatory-folders.sh cannot create required runtime files and fails - Container startup fails because runtime infrastructure cannot be initialized Testing: docker-compose.mount-test.run_unwritable.yml Directory: /workspaces/NetAlertX/test/docker_tests/configurations/mount-tests Running docker-compose up... Volume "mount-tests_test_system_services_run" Creating Volume "mount-tests_test_system_services_run" Created Volume "mount-tests_netalertx_db" Creating Volume "mount-tests_netalertx_db" Created Volume "mount-tests_netalertx_config" Creating Volume "mount-tests_netalertx_config" Created Container netalertx-test-mount-run_unwritable Creating Container netalertx-test-mount-run_unwritable Created Attaching to netalertx-test-mount-run_unwritable netalertx-test-mount-run_unwritable |  netalertx-test-mount-run_unwritable | _ _ _ ___ _ _ __ __ netalertx-test-mount-run_unwritable | | \ | | | | / _ \| | | | \ \ / / netalertx-test-mount-run_unwritable | | \| | ___| |_/ /_\ \ | ___ _ __| |_ \ V / netalertx-test-mount-run_unwritable | | . |/ _ \ __| _ | |/ _ \ __| __|/ \ netalertx-test-mount-run_unwritable | | |\ | __/ |_| | | | | __/ | | |_/ /^\ \ netalertx-test-mount-run_unwritable | \_| \_/\___|\__\_| |_/_|\___|_| \__\/ \/ netalertx-test-mount-run_unwritable |  Network intruder and presence detector. netalertx-test-mount-run_unwritable | https://netalertx.com netalertx-test-mount-run_unwritable | netalertx-test-mount-run_unwritable | netalertx-test-mount-run_unwritable | Startup pre-checks netalertx-test-mount-run_unwritable | --> storage permission.sh netalertx-test-mount-run_unwritable | --> data migration.sh netalertx-test-mount-run_unwritable | --> mounts.py netalertx-test-mount-run_unwritable | Path | R | W | Mount | RAMDisk | Performance | DataLoss netalertx-test-mount-run_unwritable | --------------------------+---+---+-------+---------+-------------+---------- netalertx-test-mount-run_unwritable | /data/db | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-run_unwritable | /data/config | ✅| ✅| ✅ | ➖ | ➖ | ✅ netalertx-test-mount-run_unwritable | /tmp/run/tmp | ✅| ❌| ✅ | ❌ | ❌ | ✅ netalertx-test-mount-run_unwritable | /tmp/api | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_unwritable | /tmp/log | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_unwritable | /tmp/run | ✅| ❌| ✅ | ❌ | ❌ | ✅ netalertx-test-mount-run_unwritable | /tmp/nginx/active-config | ✅| ✅| ✅ | ✅ | ✅ | ✅ netalertx-test-mount-run_unwritable | netalertx-test-mount-run_unwritable | netalertx-test-mount-run_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_unwritable | ⚠️ ATTENTION: Configuration issues detected (marked with ❌). netalertx-test-mount-run_unwritable | netalertx-test-mount-run_unwritable | * /tmp/run/tmp error writing, performance issue netalertx-test-mount-run_unwritable | * /tmp/run error writing, performance issue netalertx-test-mount-run_unwritable | netalertx-test-mount-run_unwritable | We recommend starting with the default docker-compose.yml as the netalertx-test-mount-run_unwritable | configuration can be quite complex. netalertx-test-mount-run_unwritable | netalertx-test-mount-run_unwritable | Review the documentation for a correct setup: netalertx-test-mount-run_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/DOCKER_COMPOSE.md netalertx-test-mount-run_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/mount-configuration-issues.md netalertx-test-mount-run_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_unwritable |  netalertx-test-mount-run_unwritable | \033[1;31m══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_unwritable | ❌ NetAlertX startup aborted: critical failure in mounts.py. netalertx-test-mount-run_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/troubleshooting.md netalertx-test-mount-run_unwritable | ══════════════════════════════════════════════════════════════════════════════ netalertx-test-mount-run_unwritable | \033[0m netalertx-test-mount-run_unwritable exited with code 1 All tests completed - Sun Dec 21 23:41:22 UTC 2025