From 274fd50a92591c2dabaa1200ec8e96ef66d3ac5b Mon Sep 17 00:00:00 2001 From: Adam Outler Date: Sun, 23 Nov 2025 15:23:25 +0000 Subject: [PATCH] Adjust healthchecks and fix docker test scripts --- .github/copilot-instructions.md | 6 + .../services/healthcheck.sh | 8 +- .../configurations/test_results.log | 1557 +++++++++++------ .../test_mount_diagnostics_pytest.py | 2 +- 4 files changed, 1033 insertions(+), 540 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 8093b225..d5472c6d 100755 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -83,3 +83,9 @@ Backend loop phases (see `server/__main__.py` and `server/plugin.py`): `once`, ` - Be sure to offer choices when appropriate. - Always understand the intent of the user's request and undo/redo as needed. - Above all, use the simplest possible code that meets the need so it can be easily audited and maintained. +- Always leave logging enabled. If there is a possiblity it will be difficult to debug with current logging, add more logging. +- Always run the testFailure tool before executing any tests to gather current failure information and avoid redundant runs. +- Always prioritize using the appropriate tools in the environment first. As an example if a test is failing use `testFailure` then `runTests`. Never `runTests` first. +- Docker tests take an extremely long time to run. Avoid changes to docker or tests tests until you've examined the exisiting testFailures and runTests results. +- Environment tools are designed specifically for your use in this project and running them in this order will give you the best results. + diff --git a/install/production-filesystem/services/healthcheck.sh b/install/production-filesystem/services/healthcheck.sh index bfe1930f..dce3183f 100755 --- a/install/production-filesystem/services/healthcheck.sh +++ b/install/production-filesystem/services/healthcheck.sh @@ -21,12 +21,12 @@ log_success() { } # 1. Check if crond is running -if pgrep -f "crond" > /dev/null; then - log_success "crond is running" +if pgrep -f "supercronic" > /dev/null; then + log_success "supercronic is running" else - log_error "crond is not running" + log_error "supercronic is not running" fi - +docker inspect --format='{{json .State.Health}}' # 2. Check if php-fpm is running if pgrep -f "php-fpm" > /dev/null; then log_success "php-fpm is running" diff --git a/test/docker_tests/configurations/test_results.log b/test/docker_tests/configurations/test_results.log index f51c0eca..4769624d 100644 --- a/test/docker_tests/configurations/test_results.log +++ b/test/docker_tests/configurations/test_results.log @@ -1,4 +1,4 @@ -Starting Docker Compose Tests - Fri Oct 31 22:34:52 UTC 2025 +Starting Docker Compose Tests - Sun Nov 23 15:52:32 UTC 2025 ========================================== File: docker-compose.missing-caps.yml ---------------------------------------- @@ -8,11 +8,7 @@ Directory: /workspaces/NetAlertX/test/docker_tests/configurations Running docker-compose up... Attaching to netalertx-test-missing-caps - -netalertx-test-missing-caps exited with code 255 - -========================================== - + netalertx-test-missing-caps exited with code 1 File: docker-compose.readonly.yml ---------------------------------------- @@ -34,122 +30,26 @@ netalertx-test-readonly | https://netalertx.com netalertx-test-readonly | netalertx-test-readonly | netalertx-test-readonly | Startup pre-checks -netalertx-test-readonly | --> storage permission -netalertx-test-readonly | --> mounts.py -netalertx-test-readonly | --> first run config -netalertx-test-readonly | --> first run db -netalertx-test-readonly | --> mandatory folders -netalertx-test-readonly | --> writable config -netalertx-test-readonly | --> nginx config -netalertx-test-readonly | nginx config: FAILED with 1 -netalertx-test-readonly | Failure detected in: /entrypoint.d/35-nginx-config.sh -netalertx-test-readonly | --> user netalertx -netalertx-test-readonly | --> host mode network -netalertx-test-readonly | --> layer 2 capabilities -netalertx-test-readonly | --> excessive capabilities -netalertx-test-readonly | --> appliance integrity -netalertx-test-readonly | --> ports available -netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-readonly | ⚠️ Port Warning: Application port 20211 is already in use. -netalertx-test-readonly | -netalertx-test-readonly | The main application (defined by $PORT) may fail to start. -netalertx-test-readonly | -netalertx-test-readonly | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-readonly | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-readonly | -netalertx-test-readonly | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-readonly | may fail to start. -netalertx-test-readonly | -netalertx-test-readonly | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-readonly | Container startup checks failed with exit code 1. +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 | --> first run db.sh +netalertx-test-readonly | --> mandatory folders.sh +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 | NETALERTX_DEBUG is set to 1, will not shut down other services if one fails. 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 /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.log" 2>&1 & +netalertx-test-readonly | Starting supercronic --debug "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & netalertx-test-readonly | php-fpm stopped! (exit 1) -netalertx-test-readonly | Crond stopped! (exit 1) +netalertx-test-readonly | Supercronic stopped! (exit 1) netalertx-test-readonly | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) - -netalertx-test-readonly exited with code 0 -netalertx-test-readonly | --> first run config -netalertx-test-readonly | --> first run db -netalertx-test-readonly | --> mandatory folders -netalertx-test-readonly | --> writable config -netalertx-test-readonly | --> nginx config -netalertx-test-readonly | nginx config: FAILED with 1 -netalertx-test-readonly | Failure detected in: /entrypoint.d/35-nginx-config.sh -netalertx-test-readonly | --> user netalertx -netalertx-test-readonly | --> host mode network -netalertx-test-readonly | --> layer 2 capabilities -netalertx-test-readonly | --> excessive capabilities -netalertx-test-readonly | --> appliance integrity -netalertx-test-readonly | --> ports available -netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-readonly | ⚠️ Port Warning: Application port 20211 is already in use. -netalertx-test-readonly | -netalertx-test-readonly | The main application (defined by $PORT) may fail to start. -netalertx-test-readonly | -netalertx-test-readonly | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-readonly | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-readonly | -netalertx-test-readonly | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-readonly | may fail to start. -netalertx-test-readonly | -netalertx-test-readonly | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-readonly | Container startup checks failed with exit code 1. -netalertx-test-readonly | NETALERTX_DEBUG is set to 1, will not shut down other services if one fails. -netalertx-test-readonly | Starting /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.log" 2>&1 & -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 | Crond stopped! (exit 1) -netalertx-test-readonly | php-fpm stopped! (exit 1) -netalertx-test-readonly | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) - -netalertx-test-readonly exited with code 0 -netalertx-test-readonly | --> first run config -netalertx-test-readonly | --> first run db -netalertx-test-readonly | --> mandatory folders -netalertx-test-readonly | --> writable config -netalertx-test-readonly | --> nginx config -netalertx-test-readonly | nginx config: FAILED with 1 -netalertx-test-readonly | Failure detected in: /entrypoint.d/35-nginx-config.sh -netalertx-test-readonly | --> user netalertx -netalertx-test-readonly | --> host mode network -netalertx-test-readonly | --> layer 2 capabilities -netalertx-test-readonly | --> excessive capabilities -netalertx-test-readonly | --> appliance integrity -netalertx-test-readonly | --> ports available -netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-readonly | ⚠️ Port Warning: Application port 20211 is already in use. -netalertx-test-readonly | -netalertx-test-readonly | The main application (defined by $PORT) may fail to start. -netalertx-test-readonly | -netalertx-test-readonly | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-readonly | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-readonly | -netalertx-test-readonly | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-readonly | may fail to start. -netalertx-test-readonly | -netalertx-test-readonly | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-readonly | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-readonly | Container startup checks failed with exit code 1. -netalertx-test-readonly | NETALERTX_DEBUG is set to 1, will not shut down other services if one fails. -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 /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.log" 2>&1 & -netalertx-test-readonly | Crond stopped! (exit 1) -netalertx-test-readonly | php-fpm stopped! (exit 1) -netalertx-test-readonly | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) - -netalertx-test-readonly exited with code 0 - -========================================== - File: docker-compose.writable.yml ---------------------------------------- @@ -171,55 +71,34 @@ netalertx-test-writable | https://netalertx.com netalertx-test-writable | netalertx-test-writable | netalertx-test-writable | Startup pre-checks -netalertx-test-writable | --> storage permission -netalertx-test-writable | --> mounts.py -netalertx-test-writable | --> first run config -netalertx-test-writable | --> first run db -netalertx-test-writable | --> mandatory folders +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 | --> first run db.sh +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 | --> writable config -netalertx-test-writable | --> nginx config -netalertx-test-writable | --> user netalertx -netalertx-test-writable | --> host mode network -netalertx-test-writable | --> layer 2 capabilities -netalertx-test-writable | --> excessive capabilities -netalertx-test-writable | --> appliance integrity -netalertx-test-writable | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-writable | ⚠️ Warning: Container is running as read-write, not in read-only mode. -netalertx-test-writable | -netalertx-test-writable | Please mount the root filesystem as --read-only or use read-only: true -netalertx-test-writable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md -netalertx-test-writable | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-writable | --> ports available -netalertx-test-writable | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-writable | ⚠️ Port Warning: Application port 20211 is already in use. -netalertx-test-writable | -netalertx-test-writable | The main application (defined by $PORT) may fail to start. -netalertx-test-writable | -netalertx-test-writable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-writable | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-writable | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-writable | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-writable | -netalertx-test-writable | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-writable | may fail to start. -netalertx-test-writable | -netalertx-test-writable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -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 | NETALERTX_DEBUG is set to 1, will not shut down other services if one fails. -netalertx-test-writable | Starting /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.log" 2>&1 & 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/netalertx.conf" -g "error_log /dev/stderr; error_log /tmp/log/nginx-error.log; pid /tmp/run/nginx.pid; daemon off;" & -netalertx-test-writable | nginx stopped! (exit 1) -netalertx-test-writable | Successfully updated IEEE OUI database (111620 entries) - -========================================== - +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;" & File: docker-compose.mount-test.active_config_mounted.yml ---------------------------------------- Expected outcome: Container starts successfully with proper nginx config mount @@ -245,54 +124,58 @@ 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 -netalertx-test-mount-active_config_mounted | --> mounts.py -netalertx-test-mount-active_config_mounted | --> first run config -netalertx-test-mount-active_config_mounted | --> first run db -netalertx-test-mount-active_config_mounted | --> mandatory folders +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 | Writeable | 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 | --> first run config.sh +netalertx-test-mount-active_config_mounted | --> first run db.sh +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 | --> writable config -netalertx-test-mount-active_config_mounted | --> nginx config -netalertx-test-mount-active_config_mounted | nginx config: FAILED with 1 -netalertx-test-mount-active_config_mounted | Failure detected in: /entrypoint.d/35-nginx-config.sh -netalertx-test-mount-active_config_mounted | --> user netalertx -netalertx-test-mount-active_config_mounted | --> host mode network -netalertx-test-mount-active_config_mounted | --> layer 2 capabilities -netalertx-test-mount-active_config_mounted | --> excessive capabilities -netalertx-test-mount-active_config_mounted | --> appliance integrity +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 -netalertx-test-mount-active_config_mounted | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-active_config_mounted | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-mount-active_config_mounted | -netalertx-test-mount-active_config_mounted | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-mount-active_config_mounted | may fail to start. -netalertx-test-mount-active_config_mounted | -netalertx-test-mount-active_config_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-mount-active_config_mounted | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-active_config_mounted | Container startup checks failed with exit code 1. +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 /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.log" 2>&1 & +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 | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) -netalertx-test-mount-active_config_mounted | Successfully updated IEEE OUI database (111620 entries) - -========================================== - +netalertx-test-mount-active_config_mounted | Service nginx exited with status 1. +netalertx-test-mount-active_config_mounted | Supercronic stopped! (exit 143) +netalertx-test-mount-active_config_mounted | php-fpm stopped! (exit 143) +netalertx-test-mount-active_config_mounted | All services stopped. + netalertx-test-mount-active_config_mounted exited with code 1 File: docker-compose.mount-test.active_config_no-mount.yml ---------------------------------------- -Expected outcome: Container shows mount error for nginx config directory +Expected outcome: Container shows warning about missing nginx config mount - SYSTEM_SERVICES_ACTIVE_CONFIG shows as not mounted -- Mount error since nginx config directory should be mounted for custom config -- Container may show warnings about nginx config but should continue +- 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 @@ -312,48 +195,49 @@ 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 -netalertx-test-mount-active_config_no-mount | --> mounts.py -netalertx-test-mount-active_config_no-mount | --> first run config -netalertx-test-mount-active_config_no-mount | --> first run db -netalertx-test-mount-active_config_no-mount | --> mandatory folders +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 | Writeable | 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 | --> first run db.sh +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 | --> writable config -netalertx-test-mount-active_config_no-mount | --> nginx config -netalertx-test-mount-active_config_no-mount | nginx config: FAILED with 1 -netalertx-test-mount-active_config_no-mount | Failure detected in: /entrypoint.d/35-nginx-config.sh -netalertx-test-mount-active_config_no-mount | --> user netalertx -netalertx-test-mount-active_config_no-mount | --> host mode network -netalertx-test-mount-active_config_no-mount | --> layer 2 capabilities -netalertx-test-mount-active_config_no-mount | --> excessive capabilities -netalertx-test-mount-active_config_no-mount | --> appliance integrity +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 -netalertx-test-mount-active_config_no-mount | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-active_config_no-mount | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-mount-active_config_no-mount | -netalertx-test-mount-active_config_no-mount | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-mount-active_config_no-mount | may fail to start. -netalertx-test-mount-active_config_no-mount | -netalertx-test-mount-active_config_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-mount-active_config_no-mount | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-active_config_no-mount | Container startup checks failed with exit code 1. -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 /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.log" 2>&1 & +netalertx-test-mount-active_config_no-mount | --> ports available.sh +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 | Successfully updated IEEE OUI database (111620 entries) - -========================================== - +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 /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;" & File: docker-compose.mount-test.active_config_ramdisk.yml ---------------------------------------- Expected outcome: Container shows performance warning for nginx config on RAM disk @@ -379,46 +263,49 @@ 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 -netalertx-test-mount-active_config_ramdisk | --> mounts.py -netalertx-test-mount-active_config_ramdisk | --> first run config -netalertx-test-mount-active_config_ramdisk | --> first run db -netalertx-test-mount-active_config_ramdisk | --> mandatory folders +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 | Writeable | 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 | --> first run db.sh +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 | --> writable config -netalertx-test-mount-active_config_ramdisk | --> nginx config -netalertx-test-mount-active_config_ramdisk | --> user netalertx -netalertx-test-mount-active_config_ramdisk | --> host mode network -netalertx-test-mount-active_config_ramdisk | --> layer 2 capabilities -netalertx-test-mount-active_config_ramdisk | --> excessive capabilities -netalertx-test-mount-active_config_ramdisk | --> appliance integrity +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 -netalertx-test-mount-active_config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-active_config_ramdisk | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-mount-active_config_ramdisk | -netalertx-test-mount-active_config_ramdisk | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-mount-active_config_ramdisk | may fail to start. -netalertx-test-mount-active_config_ramdisk | -netalertx-test-mount-active_config_ramdisk | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-mount-active_config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-active_config_ramdisk | Starting /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.log" 2>&1 & +netalertx-test-mount-active_config_ramdisk | --> ports available.sh 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 supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & 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/netalertx.conf" -g "error_log /dev/stderr; error_log /tmp/log/nginx-error.log; pid /tmp/run/nginx.pid; daemon off;" & -netalertx-test-mount-active_config_ramdisk | Successfully updated IEEE OUI database (111620 entries) - -========================================== - +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;" & File: docker-compose.mount-test.active_config_unwritable.yml ---------------------------------------- Expected outcome: Container fails to start due to unwritable nginx config partition @@ -444,48 +331,33 @@ 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 -netalertx-test-mount-active_config_unwritable | --> mounts.py -netalertx-test-mount-active_config_unwritable | --> first run config -netalertx-test-mount-active_config_unwritable | --> first run db -netalertx-test-mount-active_config_unwritable | --> mandatory folders +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 | Writeable | 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 | --> first run config.sh +netalertx-test-mount-active_config_unwritable | --> first run db.sh +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 | --> writable config -netalertx-test-mount-active_config_unwritable | --> nginx config -netalertx-test-mount-active_config_unwritable | nginx config: FAILED with 1 -netalertx-test-mount-active_config_unwritable | Failure detected in: /entrypoint.d/35-nginx-config.sh -netalertx-test-mount-active_config_unwritable | --> user netalertx -netalertx-test-mount-active_config_unwritable | --> host mode network -netalertx-test-mount-active_config_unwritable | --> layer 2 capabilities -netalertx-test-mount-active_config_unwritable | --> excessive capabilities -netalertx-test-mount-active_config_unwritable | --> appliance integrity -netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-active_config_unwritable | ⚠️ Warning: Container is running as read-write, not in read-only mode. -netalertx-test-mount-active_config_unwritable | -netalertx-test-mount-active_config_unwritable | Please mount the root filesystem as --read-only or use read-only: true -netalertx-test-mount-active_config_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md -netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-active_config_unwritable | --> ports available -netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-active_config_unwritable | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-mount-active_config_unwritable | -netalertx-test-mount-active_config_unwritable | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-mount-active_config_unwritable | may fail to start. -netalertx-test-mount-active_config_unwritable | -netalertx-test-mount-active_config_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-mount-active_config_unwritable | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-active_config_unwritable | Container startup checks failed with exit code 1. -netalertx-test-mount-active_config_unwritable | 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_unwritable | Starting /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.log" 2>&1 & -netalertx-test-mount-active_config_unwritable | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) -netalertx-test-mount-active_config_unwritable | Successfully updated IEEE OUI database (111620 entries) - -========================================== - +netalertx-test-mount-active_config_unwritable | --> writable config.sh +netalertx-test-mount-active_config_unwritable | --> nginx config.sh + 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 @@ -511,46 +383,44 @@ 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 -netalertx-test-mount-api_mounted | --> mounts.py -netalertx-test-mount-api_mounted | --> first run config -netalertx-test-mount-api_mounted | --> first run db -netalertx-test-mount-api_mounted | --> mandatory folders +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 | Writeable | 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 | --> first run config.sh +netalertx-test-mount-api_mounted | --> first run db.sh +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 | --> writable config -netalertx-test-mount-api_mounted | --> nginx config -netalertx-test-mount-api_mounted | --> user netalertx -netalertx-test-mount-api_mounted | --> host mode network -netalertx-test-mount-api_mounted | --> layer 2 capabilities -netalertx-test-mount-api_mounted | --> excessive capabilities -netalertx-test-mount-api_mounted | --> appliance integrity +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 -netalertx-test-mount-api_mounted | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-api_mounted | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-mount-api_mounted | -netalertx-test-mount-api_mounted | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-mount-api_mounted | may fail to start. -netalertx-test-mount-api_mounted | -netalertx-test-mount-api_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-mount-api_mounted | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-api_mounted | Starting /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.log" 2>&1 & +netalertx-test-mount-api_mounted | --> ports available.sh 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 supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & 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/netalertx.conf" -g "error_log /dev/stderr; error_log /tmp/log/nginx-error.log; pid /tmp/run/nginx.pid; daemon off;" & -netalertx-test-mount-api_mounted | Successfully updated IEEE OUI database (111620 entries) - -========================================== - +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;" & File: docker-compose.mount-test.api_no-mount.yml ---------------------------------------- Expected outcome: Container shows mount error for API directory @@ -576,46 +446,44 @@ 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 -netalertx-test-mount-api_no-mount | --> mounts.py -netalertx-test-mount-api_no-mount | --> first run config -netalertx-test-mount-api_no-mount | --> first run db -netalertx-test-mount-api_no-mount | --> mandatory folders +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 | Writeable | 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 | --> first run config.sh +netalertx-test-mount-api_no-mount | --> first run db.sh +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 | --> writable config -netalertx-test-mount-api_no-mount | --> nginx config -netalertx-test-mount-api_no-mount | --> user netalertx -netalertx-test-mount-api_no-mount | --> host mode network -netalertx-test-mount-api_no-mount | --> layer 2 capabilities -netalertx-test-mount-api_no-mount | --> excessive capabilities -netalertx-test-mount-api_no-mount | --> appliance integrity +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 -netalertx-test-mount-api_no-mount | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-api_no-mount | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-mount-api_no-mount | -netalertx-test-mount-api_no-mount | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-mount-api_no-mount | may fail to start. -netalertx-test-mount-api_no-mount | -netalertx-test-mount-api_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-mount-api_no-mount | ══════════════════════════════════════════════════════════════════════════════ +netalertx-test-mount-api_no-mount | --> ports available.sh +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 /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 /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.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/netalertx.conf" -g "error_log /dev/stderr; error_log /tmp/log/nginx-error.log; pid /tmp/run/nginx.pid; daemon off;" & -netalertx-test-mount-api_no-mount | Successfully updated IEEE OUI database (111620 entries) - -========================================== - +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;" & File: docker-compose.mount-test.api_ramdisk.yml ---------------------------------------- Expected outcome: Container shows performance warning for API on RAM disk @@ -641,46 +509,49 @@ 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 -netalertx-test-mount-api_ramdisk | --> mounts.py -netalertx-test-mount-api_ramdisk | --> first run config -netalertx-test-mount-api_ramdisk | --> first run db -netalertx-test-mount-api_ramdisk | --> mandatory folders +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 | Writeable | 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 | --> first run db.sh +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 | --> writable config -netalertx-test-mount-api_ramdisk | --> nginx config -netalertx-test-mount-api_ramdisk | --> user netalertx -netalertx-test-mount-api_ramdisk | --> host mode network -netalertx-test-mount-api_ramdisk | --> layer 2 capabilities -netalertx-test-mount-api_ramdisk | --> excessive capabilities -netalertx-test-mount-api_ramdisk | --> appliance integrity +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 -netalertx-test-mount-api_ramdisk | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-api_ramdisk | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-mount-api_ramdisk | -netalertx-test-mount-api_ramdisk | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-mount-api_ramdisk | may fail to start. -netalertx-test-mount-api_ramdisk | -netalertx-test-mount-api_ramdisk | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-mount-api_ramdisk | ══════════════════════════════════════════════════════════════════════════════ +netalertx-test-mount-api_ramdisk | --> ports available.sh +netalertx-test-mount-api_ramdisk | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & 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 /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.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/netalertx.conf" -g "error_log /dev/stderr; error_log /tmp/log/nginx-error.log; pid /tmp/run/nginx.pid; daemon off;" & -netalertx-test-mount-api_ramdisk | Successfully updated IEEE OUI database (111620 entries) - -========================================== - +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;" & File: docker-compose.mount-test.api_unwritable.yml ---------------------------------------- Expected outcome: Container fails to start due to unwritable API partition @@ -706,54 +577,19 @@ 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 -netalertx-test-mount-api_unwritable | --> mounts.py -netalertx-test-mount-api_unwritable | Path | Writeable | 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/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 | --> first run config -netalertx-test-mount-api_unwritable | --> first run db -netalertx-test-mount-api_unwritable | --> mandatory folders -netalertx-test-mount-api_unwritable | * Creating Plugins log. -netalertx-test-mount-api_unwritable | * Creating System services run log. -netalertx-test-mount-api_unwritable | * Creating System services run tmp. -netalertx-test-mount-api_unwritable | * Creating DB locked log. -netalertx-test-mount-api_unwritable | * Creating Execution queue log. -netalertx-test-mount-api_unwritable | --> writable config -netalertx-test-mount-api_unwritable | --> nginx config -netalertx-test-mount-api_unwritable | --> user netalertx -netalertx-test-mount-api_unwritable | --> host mode network -netalertx-test-mount-api_unwritable | --> layer 2 capabilities -netalertx-test-mount-api_unwritable | --> excessive capabilities -netalertx-test-mount-api_unwritable | --> appliance integrity -netalertx-test-mount-api_unwritable | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-api_unwritable | ⚠️ Warning: Container is running as read-write, not in read-only mode. -netalertx-test-mount-api_unwritable | -netalertx-test-mount-api_unwritable | Please mount the root filesystem as --read-only or use read-only: true -netalertx-test-mount-api_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/read-only-filesystem.md -netalertx-test-mount-api_unwritable | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-api_unwritable | --> ports available -netalertx-test-mount-api_unwritable | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-api_unwritable | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-mount-api_unwritable | -netalertx-test-mount-api_unwritable | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-mount-api_unwritable | may fail to start. -netalertx-test-mount-api_unwritable | -netalertx-test-mount-api_unwritable | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-mount-api_unwritable | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-api_unwritable | Starting /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.log" 2>&1 & -netalertx-test-mount-api_unwritable | 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_unwritable | Starting python3 -m server > /tmp/log/stdout.log 2> >(tee /tmp/log/stderr.log >&2) -netalertx-test-mount-api_unwritable | Starting /usr/sbin/nginx -p "/tmp/run/" -c "/tmp/nginx-active-config/netalertx.conf" -g "error_log /dev/stderr; error_log /tmp/log/nginx-error.log; pid /tmp/run/nginx.pid; daemon off;" & -netalertx-test-mount-api_unwritable | Successfully updated IEEE OUI database (111620 entries) - -========================================== - +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 | Writeable | 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 exited with code 1 File: docker-compose.mount-test.config_mounted.yml ---------------------------------------- Expected outcome: Container starts successfully with proper config mount @@ -779,46 +615,49 @@ 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 -netalertx-test-mount-config_mounted | --> mounts.py -netalertx-test-mount-config_mounted | --> first run config -netalertx-test-mount-config_mounted | --> first run db -netalertx-test-mount-config_mounted | --> mandatory folders +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 | Writeable | 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 | --> first run db.sh +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 | --> writable config -netalertx-test-mount-config_mounted | --> nginx config -netalertx-test-mount-config_mounted | --> user netalertx -netalertx-test-mount-config_mounted | --> host mode network -netalertx-test-mount-config_mounted | --> layer 2 capabilities -netalertx-test-mount-config_mounted | --> excessive capabilities -netalertx-test-mount-config_mounted | --> appliance integrity +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 -netalertx-test-mount-config_mounted | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-config_mounted | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-mount-config_mounted | -netalertx-test-mount-config_mounted | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-mount-config_mounted | may fail to start. -netalertx-test-mount-config_mounted | -netalertx-test-mount-config_mounted | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-mount-config_mounted | ══════════════════════════════════════════════════════════════════════════════ +netalertx-test-mount-config_mounted | --> ports available.sh +netalertx-test-mount-config_mounted | Starting supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & 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 /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.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/netalertx.conf" -g "error_log /dev/stderr; error_log /tmp/log/nginx-error.log; pid /tmp/run/nginx.pid; daemon off;" & -netalertx-test-mount-config_mounted | Successfully updated IEEE OUI database (111620 entries) - -========================================== - +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;" & File: docker-compose.mount-test.config_no-mount.yml ---------------------------------------- Expected outcome: Container shows mount error for config directory @@ -844,54 +683,44 @@ 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 -netalertx-test-mount-config_no-mount | --> mounts.py -netalertx-test-mount-config_no-mount | Path | Writeable | Mount | RAMDisk | Performance | DataLoss -netalertx-test-mount-config_no-mount | ------------------------------------+-----------+-------+---------+-------------+---------- -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 | --> first run config -netalertx-test-mount-config_no-mount | --> first run db -netalertx-test-mount-config_no-mount | --> mandatory folders +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 | Writeable | 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 | --> first run config.sh +netalertx-test-mount-config_no-mount | --> first run db.sh +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 | --> writable config -netalertx-test-mount-config_no-mount | --> nginx config -netalertx-test-mount-config_no-mount | --> user netalertx -netalertx-test-mount-config_no-mount | --> host mode network -netalertx-test-mount-config_no-mount | --> layer 2 capabilities -netalertx-test-mount-config_no-mount | --> excessive capabilities -netalertx-test-mount-config_no-mount | --> appliance integrity +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 -netalertx-test-mount-config_no-mount | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-config_no-mount | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-mount-config_no-mount | -netalertx-test-mount-config_no-mount | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-mount-config_no-mount | may fail to start. -netalertx-test-mount-config_no-mount | -netalertx-test-mount-config_no-mount | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-mount-config_no-mount | ══════════════════════════════════════════════════════════════════════════════ +netalertx-test-mount-config_no-mount | --> ports available.sh +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 /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 /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.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/netalertx.conf" -g "error_log /dev/stderr; error_log /tmp/log/nginx-error.log; pid /tmp/run/nginx.pid; daemon off;" & -netalertx-test-mount-config_no-mount | Successfully updated IEEE OUI database (111620 entries) - -========================================== - +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;" & File: docker-compose.mount-test.config_ramdisk.yml ---------------------------------------- Expected outcome: Container shows dataloss risk warning for config on RAM disk @@ -917,57 +746,28 @@ 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 -netalertx-test-mount-config_ramdisk | --> mounts.py -netalertx-test-mount-config_ramdisk | Path | Writeable | Mount | RAMDisk | Performance | DataLoss -netalertx-test-mount-config_ramdisk | ------------------------------------+-----------+-------+---------+-------------+---------- -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 | --> first run config -netalertx-test-mount-config_ramdisk | --> first run db -netalertx-test-mount-config_ramdisk | --> mandatory folders +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 | Writeable | 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 | --> first run config.sh +netalertx-test-mount-config_ramdisk | --> first run db.sh +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 | --> writable config -netalertx-test-mount-config_ramdisk | writable config: FAILED with 1 -netalertx-test-mount-config_ramdisk | Failure detected in: /entrypoint.d/30-writable-config.sh -netalertx-test-mount-config_ramdisk | --> nginx config -netalertx-test-mount-config_ramdisk | --> user netalertx -netalertx-test-mount-config_ramdisk | --> host mode network -netalertx-test-mount-config_ramdisk | --> layer 2 capabilities -netalertx-test-mount-config_ramdisk | --> excessive capabilities -netalertx-test-mount-config_ramdisk | --> appliance integrity -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 -netalertx-test-mount-config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-config_ramdisk | ⚠️ Port Warning: GraphQL API port 20212 is already in use. -netalertx-test-mount-config_ramdisk | -netalertx-test-mount-config_ramdisk | The GraphQL API (defined by $APP_CONF_OVERRIDE or $GRAPHQL_PORT) -netalertx-test-mount-config_ramdisk | may fail to start. -netalertx-test-mount-config_ramdisk | -netalertx-test-mount-config_ramdisk | https://github.com/jokob-sk/NetAlertX/blob/main/docs/docker-troubleshooting/port-conflicts.md -netalertx-test-mount-config_ramdisk | ══════════════════════════════════════════════════════════════════════════════ -netalertx-test-mount-config_ramdisk | Container startup checks failed with exit code 1. -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 /usr/sbin/crond -c "/services/config/crond" -f -L "/tmp/log/crond.log" >>"/tmp/log/crond.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/netalertx.conf" -g "error_log /dev/stderr; error_log /tmp/log/nginx-error.log; pid /tmp/run/nginx.pid; daemon off;" & -netalertx-test-mount-config_ramdisk | Successfully updated IEEE OUI database (111620 entries) - -========================================== - +netalertx-test-mount-config_ramdisk | --> writable config.sh + netalertx-test-mount-config_ramdisk exited with code 1 File: docker-compose.mount-test.config_unwritable.yml ---------------------------------------- Expected outcome: Container fails to start due to unwritable config partition @@ -993,16 +793,703 @@ 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 -netalertx-test-mount-config_unwritable | --> mounts.py -netalertx-test-mount-config_unwritable | Path | Writeable | Mount | RAMDisk | Performance | DataLoss -netalertx-test-mount-config_unwritable | ------------------------------------+-----------+-------+---------+-------------+---------- -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 | --> first run config -netalertx-test-mount-config_unwritable | --> first run db - \ No newline at end of file +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 | Writeable | 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 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... +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 | +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 | Writeable | 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 | --> first run db.sh +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 | --> 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;" & +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... +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 | +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 | Writeable | 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 | --> first run config.sh +netalertx-test-mount-db_no-mount | --> first run db.sh +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 | --> 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 /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 supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & +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;" & +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... +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 | +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 | Writeable | 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 | --> first run config.sh +netalertx-test-mount-db_ramdisk | --> first run db.sh +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 | --> 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 supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & +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 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;" & +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... +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 | +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 | Writeable | 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 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... +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 | +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 | Writeable | 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 | --> first run config.sh +netalertx-test-mount-log_mounted | --> first run db.sh +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 | --> 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 supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & +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 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;" & +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... +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 | +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 | Writeable | 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 | --> first run config.sh +netalertx-test-mount-log_no-mount | --> first run db.sh +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 | --> 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 supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & +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 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;" & +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... +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 | +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 | Writeable | 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 | --> first run db.sh +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 | --> 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 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/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 /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;" & +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... +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 | +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 | Writeable | 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 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... +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 | +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 | Writeable | 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 | --> first run config.sh +netalertx-test-mount-run_mounted | --> first run db.sh +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 | --> 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 /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 supercronic --quiet "/services/config/cron/crontab" >>"/tmp/log/cron.log" 2>&1 & +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;" & +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... +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 | +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 | Writeable | 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 | --> first run config.sh +netalertx-test-mount-run_no-mount | --> first run db.sh +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 | --> 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;" & +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... +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 | +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 | Writeable | 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 | --> first run db.sh +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 | --> 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;" & +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... +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 | +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 | Writeable | 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 exited with code 1 +All tests completed - Sun Nov 23 15:55:50 UTC 2025 diff --git a/test/docker_tests/test_mount_diagnostics_pytest.py b/test/docker_tests/test_mount_diagnostics_pytest.py index c186d1a3..ad688798 100644 --- a/test/docker_tests/test_mount_diagnostics_pytest.py +++ b/test/docker_tests/test_mount_diagnostics_pytest.py @@ -271,7 +271,7 @@ def create_test_scenarios() -> List[TestScenario]: compose_file = f"docker-compose.mount-test.{path_name}_{scenario_name}.yml" # Determine expected exit code - expected_exit_code = 1 if scenario_name == "unwritable" else 0 + expected_exit_code = 1 if expected_issues and not (path_name == "active_config" and scenario_name == "unwritable") else 0 scenarios.append( TestScenario(