From e3458630bac3306aabc51c0b2794bc2ee3442415 Mon Sep 17 00:00:00 2001 From: Adam Outler Date: Sat, 22 Nov 2025 01:29:50 +0000 Subject: [PATCH 1/6] Convert from crond to supercronic --- .devcontainer/Dockerfile | 9 +++++---- .devcontainer/scripts/setup.sh | 2 +- Dockerfile | 9 +++++---- Dockerfile.debian | 2 +- back/cron_script.sh | 17 +++++++++++------ front/php/components/logs_defaults.json | 6 +++--- front/php/server/util.php | 2 +- .../production-filesystem/build/init-cron.sh | 5 +++++ .../production-filesystem/build/init-crond.sh | 4 ---- install/production-filesystem/entrypoint.sh | 2 +- .../config/{crond/netalertx => cron/crontab} | 2 +- .../services/scripts/cron_script.sh | 6 +++--- .../services/{start-crond.sh => start-cron.sh} | 13 +++++++++---- 13 files changed, 46 insertions(+), 33 deletions(-) create mode 100644 install/production-filesystem/build/init-cron.sh delete mode 100755 install/production-filesystem/build/init-crond.sh rename install/production-filesystem/services/config/{crond/netalertx => cron/crontab} (67%) mode change 100755 => 100644 rename install/production-filesystem/services/{start-crond.sh => start-cron.sh} (53%) diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile index 137e8c8a..aedd4f6b 100755 --- a/.devcontainer/Dockerfile +++ b/.devcontainer/Dockerfile @@ -64,6 +64,7 @@ ENV LOG_IP_CHANGES=${NETALERTX_LOG}/IP_changes.log ENV LOG_APP=${NETALERTX_LOG}/app.log ENV LOG_APP_FRONT=${NETALERTX_LOG}/app_front.log ENV LOG_REPORT_OUTPUT_TXT=${NETALERTX_LOG}/report_output.txt +ENV LOG_CRON=${NETALERTX_LOG}/supercronic ENV LOG_DB_IS_LOCKED=${NETALERTX_LOG}/db_is_locked.log ENV LOG_REPORT_OUTPUT_HTML=${NETALERTX_LOG}/report_output.html ENV LOG_STDERR=${NETALERTX_LOG}/stderr.log @@ -71,7 +72,7 @@ ENV LOG_APP_PHP_ERRORS=${NETALERTX_LOG}/app.php_errors.log ENV LOG_EXECUTION_QUEUE=${NETALERTX_LOG}/execution_queue.log ENV LOG_REPORT_OUTPUT_JSON=${NETALERTX_LOG}/report_output.json ENV LOG_STDOUT=${NETALERTX_LOG}/stdout.log -ENV LOG_CROND=${NETALERTX_LOG}/crond.log +ENV LOG_CRON=${NETALERTX_LOG}/cron.log ENV LOG_NGINX_ERROR=${NETALERTX_LOG}/nginx-error.log # System Services configuration files @@ -81,11 +82,11 @@ ENV SYSTEM_SERVICES_SCRIPTS=${SYSTEM_SERVICES}/scripts ENV SYSTEM_SERVICES_CONFIG=${SYSTEM_SERVICES}/config ENV SYSTEM_NGINX_CONFIG=${SYSTEM_SERVICES_CONFIG}/nginx ENV SYSTEM_NGINX_CONFIG_TEMPLATE=${SYSTEM_NGINX_CONFIG}/netalertx.conf.template +ENV SYSTEM_SERVICES_CONFIG_CRON=${SYSTEM_SERVICES_CONFIG}/cron ENV SYSTEM_SERVICES_ACTIVE_CONFIG=/tmp/nginx/active-config ENV SYSTEM_SERVICES_ACTIVE_CONFIG_FILE=${SYSTEM_SERVICES_ACTIVE_CONFIG}/nginx.conf ENV SYSTEM_SERVICES_PHP_FOLDER=${SYSTEM_SERVICES_CONFIG}/php ENV SYSTEM_SERVICES_PHP_FPM_D=${SYSTEM_SERVICES_PHP_FOLDER}/php-fpm.d -ENV SYSTEM_SERVICES_CROND=${SYSTEM_SERVICES_CONFIG}/crond ENV SYSTEM_SERVICES_RUN=/tmp/run ENV SYSTEM_SERVICES_RUN_TMP=${SYSTEM_SERVICES_RUN}/tmp ENV SYSTEM_SERVICES_RUN_LOG=${SYSTEM_SERVICES_RUN}/logs @@ -119,7 +120,7 @@ ENV LANG=C.UTF-8 RUN apk add --no-cache bash mtr libbsd zip lsblk tzdata curl arp-scan iproute2 iproute2-ss nmap \ nmap-scripts traceroute nbtscan net-tools net-snmp-tools bind-tools awake ca-certificates \ sqlite php83 php83-fpm php83-cgi php83-curl php83-sqlite3 php83-session python3 envsubst \ - nginx shadow && \ + nginx supercronic shadow && \ rm -Rf /var/cache/apk/* && \ rm -Rf /etc/nginx && \ addgroup -g 20211 ${NETALERTX_GROUP} && \ @@ -165,7 +166,7 @@ RUN if [ -f .VERSION ]; then \ setcap cap_net_raw,cap_net_admin+eip $(readlink -f ${VIRTUAL_ENV_BIN}/python) && \ /bin/sh /build/init-nginx.sh && \ /bin/sh /build/init-php-fpm.sh && \ - /bin/sh /build/init-crond.sh && \ + /bin/sh /build/init-cron.sh && \ /bin/sh /build/init-backend.sh && \ rm -rf /build && \ apk del libcap && \ diff --git a/.devcontainer/scripts/setup.sh b/.devcontainer/scripts/setup.sh index a4190606..2116b0cb 100755 --- a/.devcontainer/scripts/setup.sh +++ b/.devcontainer/scripts/setup.sh @@ -26,7 +26,7 @@ LOG_FILES=( LOG_EXECUTION_QUEUE LOG_APP_PHP_ERRORS LOG_IP_CHANGES - LOG_CROND + LOG_CRON LOG_REPORT_OUTPUT_TXT LOG_REPORT_OUTPUT_HTML LOG_REPORT_OUTPUT_JSON diff --git a/Dockerfile b/Dockerfile index ca08b4c2..9093cdc1 100755 --- a/Dockerfile +++ b/Dockerfile @@ -61,6 +61,7 @@ ENV LOG_IP_CHANGES=${NETALERTX_LOG}/IP_changes.log ENV LOG_APP=${NETALERTX_LOG}/app.log ENV LOG_APP_FRONT=${NETALERTX_LOG}/app_front.log ENV LOG_REPORT_OUTPUT_TXT=${NETALERTX_LOG}/report_output.txt +ENV LOG_CRON=${NETALERTX_LOG}/supercronic ENV LOG_DB_IS_LOCKED=${NETALERTX_LOG}/db_is_locked.log ENV LOG_REPORT_OUTPUT_HTML=${NETALERTX_LOG}/report_output.html ENV LOG_STDERR=${NETALERTX_LOG}/stderr.log @@ -68,7 +69,7 @@ ENV LOG_APP_PHP_ERRORS=${NETALERTX_LOG}/app.php_errors.log ENV LOG_EXECUTION_QUEUE=${NETALERTX_LOG}/execution_queue.log ENV LOG_REPORT_OUTPUT_JSON=${NETALERTX_LOG}/report_output.json ENV LOG_STDOUT=${NETALERTX_LOG}/stdout.log -ENV LOG_CROND=${NETALERTX_LOG}/crond.log +ENV LOG_CRON=${NETALERTX_LOG}/cron.log ENV LOG_NGINX_ERROR=${NETALERTX_LOG}/nginx-error.log # System Services configuration files @@ -78,11 +79,11 @@ ENV SYSTEM_SERVICES_SCRIPTS=${SYSTEM_SERVICES}/scripts ENV SYSTEM_SERVICES_CONFIG=${SYSTEM_SERVICES}/config ENV SYSTEM_NGINX_CONFIG=${SYSTEM_SERVICES_CONFIG}/nginx ENV SYSTEM_NGINX_CONFIG_TEMPLATE=${SYSTEM_NGINX_CONFIG}/netalertx.conf.template +ENV SYSTEM_SERVICES_CONFIG_CRON=${SYSTEM_SERVICES_CONFIG}/cron ENV SYSTEM_SERVICES_ACTIVE_CONFIG=/tmp/nginx/active-config ENV SYSTEM_SERVICES_ACTIVE_CONFIG_FILE=${SYSTEM_SERVICES_ACTIVE_CONFIG}/nginx.conf ENV SYSTEM_SERVICES_PHP_FOLDER=${SYSTEM_SERVICES_CONFIG}/php ENV SYSTEM_SERVICES_PHP_FPM_D=${SYSTEM_SERVICES_PHP_FOLDER}/php-fpm.d -ENV SYSTEM_SERVICES_CROND=${SYSTEM_SERVICES_CONFIG}/crond ENV SYSTEM_SERVICES_RUN=/tmp/run ENV SYSTEM_SERVICES_RUN_TMP=${SYSTEM_SERVICES_RUN}/tmp ENV SYSTEM_SERVICES_RUN_LOG=${SYSTEM_SERVICES_RUN}/logs @@ -116,7 +117,7 @@ ENV LANG=C.UTF-8 RUN apk add --no-cache bash mtr libbsd zip lsblk tzdata curl arp-scan iproute2 iproute2-ss nmap \ nmap-scripts traceroute nbtscan net-tools net-snmp-tools bind-tools awake ca-certificates \ sqlite php83 php83-fpm php83-cgi php83-curl php83-sqlite3 php83-session python3 envsubst \ - nginx shadow && \ + nginx supercronic shadow && \ rm -Rf /var/cache/apk/* && \ rm -Rf /etc/nginx && \ addgroup -g 20211 ${NETALERTX_GROUP} && \ @@ -162,7 +163,7 @@ RUN if [ -f .VERSION ]; then \ setcap cap_net_raw,cap_net_admin+eip $(readlink -f ${VIRTUAL_ENV_BIN}/python) && \ /bin/sh /build/init-nginx.sh && \ /bin/sh /build/init-php-fpm.sh && \ - /bin/sh /build/init-crond.sh && \ + /bin/sh /build/init-cron.sh && \ /bin/sh /build/init-backend.sh && \ rm -rf /build && \ apk del libcap && \ diff --git a/Dockerfile.debian b/Dockerfile.debian index f67f0e02..316eafe7 100755 --- a/Dockerfile.debian +++ b/Dockerfile.debian @@ -72,7 +72,7 @@ ENV LOG_APP_PHP_ERRORS=${NETALERTX_LOG}/app.php_errors.log ENV LOG_EXECUTION_QUEUE=${NETALERTX_LOG}/execution_queue.log ENV LOG_REPORT_OUTPUT_JSON=${NETALERTX_LOG}/report_output.json ENV LOG_STDOUT=${NETALERTX_LOG}/stdout.log -ENV LOG_CROND=${NETALERTX_LOG}/crond.log +ENV LOG_CRON=${NETALERTX_LOG}/cron.log ENV LOG_NGINX_ERROR=${NETALERTX_LOG}/nginx-error.log # System Services configuration files diff --git a/back/cron_script.sh b/back/cron_script.sh index 5c86d909..a3d65e2a 100755 --- a/back/cron_script.sh +++ b/back/cron_script.sh @@ -3,12 +3,17 @@ export INSTALL_DIR=/app LOG_FILE="${INSTALL_DIR}/log/execution_queue.log" -# Check if there are any entries with cron_restart_backend -if grep -q "cron_restart_backend" "$LOG_FILE"; then - # Restart python application using s6 - s6-svc -r /var/run/s6-rc/servicedirs/netalertx - echo 'done' +if [ -f "${LOG_EXECUTION_QUEUE}" ] && grep -q "cron_restart_backend" "${LOG_EXECUTION_QUEUE}"; then + echo "$(date): Restarting backend triggered by cron_restart_backend" + killall python3 || echo "killall python3 failed or no process found" + sleep 2 + /services/start-backend.sh & # Remove all lines containing cron_restart_backend from the log file - sed -i '/cron_restart_backend/d' "$LOG_FILE" + # Atomic replacement with temp file. grep returns 1 if no lines selected (file becomes empty), which is valid here. + grep -v "cron_restart_backend" "${LOG_EXECUTION_QUEUE}" > "${LOG_EXECUTION_QUEUE}.tmp" + RC=$? + if [ $RC -eq 0 ] || [ $RC -eq 1 ]; then + mv "${LOG_EXECUTION_QUEUE}.tmp" "${LOG_EXECUTION_QUEUE}" + fi fi diff --git a/front/php/components/logs_defaults.json b/front/php/components/logs_defaults.json index 491d3708..b40f2bb2 100755 --- a/front/php/components/logs_defaults.json +++ b/front/php/components/logs_defaults.json @@ -107,11 +107,11 @@ "buttons": [ { "labelStringCode": "Maint_PurgeLog", - "event": "logManage('crond.log', 'cleanLog')" + "event": "logManage('cron.log', 'cleanLog')" } ], - "fileName": "crond.log", - "filePath": "__NETALERTX_LOG__/crond.log", + "fileName": "cron.log", + "filePath": "__NETALERTX_LOG__/cron.log", "textAreaCssClass": "logs logs-small" } ] \ No newline at end of file diff --git a/front/php/server/util.php b/front/php/server/util.php index 3a1adb88..e00c7086 100755 --- a/front/php/server/util.php +++ b/front/php/server/util.php @@ -274,7 +274,7 @@ function cleanLog($logFile) $path = ""; - $allowedFiles = ['app.log', 'app_front.log', 'IP_changes.log', 'stdout.log', 'stderr.log', 'app.php_errors.log', 'execution_queue.log', 'db_is_locked.log', 'nginx-error.log', 'crond.log']; + $allowedFiles = ['app.log', 'app_front.log', 'IP_changes.log', 'stdout.log', 'stderr.log', 'app.php_errors.log', 'execution_queue.log', 'db_is_locked.log', 'nginx-error.log', 'cron.log']; if(in_array($logFile, $allowedFiles)) { diff --git a/install/production-filesystem/build/init-cron.sh b/install/production-filesystem/build/init-cron.sh new file mode 100644 index 00000000..dc2770c1 --- /dev/null +++ b/install/production-filesystem/build/init-cron.sh @@ -0,0 +1,5 @@ + +#!/bin/bash +echo "Initializing cron..." + # Placeholder for cron initialization commands +echo "cron initialized." diff --git a/install/production-filesystem/build/init-crond.sh b/install/production-filesystem/build/init-crond.sh deleted file mode 100755 index af464d3e..00000000 --- a/install/production-filesystem/build/init-crond.sh +++ /dev/null @@ -1,4 +0,0 @@ -#!/bin/bash -echo "Initializing crond..." -#Future crond initializations can go here. -echo "crond initialized." diff --git a/install/production-filesystem/entrypoint.sh b/install/production-filesystem/entrypoint.sh index 0faa5999..87af9dc7 100755 --- a/install/production-filesystem/entrypoint.sh +++ b/install/production-filesystem/entrypoint.sh @@ -274,7 +274,7 @@ trap on_signal INT TERM # Only start crond scheduler on Alpine (non-Debian) environments # Debian typically uses systemd or other schedulers if [ "${ENVIRONMENT:-}" ] && [ "${ENVIRONMENT:-}" != "debian" ]; then - add_service "/services/start-crond.sh" "crond" + add_service "/services/start-cron.sh" "supercronic" fi # Start core frontend and backend services diff --git a/install/production-filesystem/services/config/crond/netalertx b/install/production-filesystem/services/config/cron/crontab old mode 100755 new mode 100644 similarity index 67% rename from install/production-filesystem/services/config/crond/netalertx rename to install/production-filesystem/services/config/cron/crontab index d532bac0..9bf3c9bf --- a/install/production-filesystem/services/config/crond/netalertx +++ b/install/production-filesystem/services/config/cron/crontab @@ -1,4 +1,4 @@ # Every minute check for cron jobs * * * * * /services/scripts/cron_script.sh # Update vendors 4x/d -0 */6 * * * /services/scripts/update_vendors.sh +0 */6 * * * /services/scripts/update_vendors.sh \ No newline at end of file diff --git a/install/production-filesystem/services/scripts/cron_script.sh b/install/production-filesystem/services/scripts/cron_script.sh index 347f1a20..2d91f4b9 100755 --- a/install/production-filesystem/services/scripts/cron_script.sh +++ b/install/production-filesystem/services/scripts/cron_script.sh @@ -7,10 +7,10 @@ export INSTALL_DIR=/app if grep -q "cron_restart_backend" "${LOG_EXECUTION_QUEUE}"; then killall python3 sleep 2 - /services/start-backend.sh & + /services/start-backend.sh >/dev/null 2>&1 & # Remove all lines containing cron_restart_backend from the log file # Atomic replacement with temp file - grep -v "cron_restart_backend" "${LOG_EXECUTION_QUEUE}" > "${LOG_EXECUTION_QUEUE}.tmp" && \ - mv "${LOG_EXECUTION_QUEUE}.tmp" "${LOG_EXECUTION_QUEUE}" + grep -v "cron_restart_backend" "${LOG_EXECUTION_QUEUE}" > "${LOG_EXECUTION_QUEUE}.tmp" + mv "${LOG_EXECUTION_QUEUE}.tmp" "${LOG_EXECUTION_QUEUE}" fi diff --git a/install/production-filesystem/services/start-crond.sh b/install/production-filesystem/services/start-cron.sh similarity index 53% rename from install/production-filesystem/services/start-crond.sh rename to install/production-filesystem/services/start-cron.sh index c6e9ea70..199a0ca1 100755 --- a/install/production-filesystem/services/start-crond.sh +++ b/install/production-filesystem/services/start-cron.sh @@ -6,7 +6,7 @@ crond_pid="" cleanup() { status=$? - echo "Crond stopped! (exit ${status})" + echo "Supercronic stopped! (exit ${status})" } forward_signal() { @@ -23,11 +23,16 @@ done trap cleanup EXIT trap forward_signal INT TERM -echo "Starting /usr/sbin/crond -c \"${SYSTEM_SERVICES_CROND}\" -f -L \"${LOG_CROND}\" >>\"${LOG_CROND}\" 2>&1 &" +CRON_OPTS="--quiet" +if [ "${NETALERTX_DEBUG:-0}" -eq 1 ]; then + CRON_OPTS="--debug" +fi -/usr/sbin/crond -c "${SYSTEM_SERVICES_CROND}" -f -L "${LOG_CROND}" >>"${LOG_CROND}" 2>&1 & +echo "Starting supercronic ${CRON_OPTS} \"${SYSTEM_SERVICES_CONFIG_CRON}/crontab\" >>\"${LOG_CRON}\" 2>&1 &" + +supercronic ${CRON_OPTS} "${SYSTEM_SERVICES_CONFIG_CRON}/crontab" >>"${LOG_CRON}" 2>&1 & crond_pid=$! wait "${crond_pid}"; status=$? echo -ne " done" -exit ${status} +exit ${status} \ No newline at end of file From bbf49c3686ec696041293df4f872f9a98e2a7a3f Mon Sep 17 00:00:00 2001 From: Adam Outler Date: Sun, 23 Nov 2025 01:27:51 +0000 Subject: [PATCH 2/6] Don't kill container on backend restart commanded --- install/production-filesystem/entrypoint.sh | 19 ++++++++++++++++--- .../services/scripts/cron_script.sh | 9 ++++++--- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/install/production-filesystem/entrypoint.sh b/install/production-filesystem/entrypoint.sh index 87af9dc7..db83b750 100755 --- a/install/production-filesystem/entrypoint.sh +++ b/install/production-filesystem/entrypoint.sh @@ -290,8 +290,6 @@ add_service "${SYSTEM_SERVICES}/start-backend.sh" "python3" # Useful for devcontainer debugging where individual services need to be debugged if [ "${NETALERTX_DEBUG:-0}" -eq 1 ]; then echo "NETALERTX_DEBUG is set to 1, will not shut down other services if one fails." - wait - exit $? fi ################################################################################ @@ -316,10 +314,25 @@ while [ -n "${SERVICES}" ]; do if ! is_pid_active "${pid}"; then wait "${pid}" 2>/dev/null status=$? + + # Handle intentional backend restart + if [ "${name}" = "python3" ] && [ -f "/tmp/backend_restart_pending" ]; then + echo "🔄 Backend restart requested via marker file." + rm -f "/tmp/backend_restart_pending" + remove_service "${pid}" + add_service "${SYSTEM_SERVICES}/start-backend.sh" "python3" + continue + fi + FAILED_STATUS=$status FAILED_NAME="${name}" remove_service "${pid}" - handle_exit + + if [ "${NETALERTX_DEBUG:-0}" -eq 1 ]; then + echo "⚠️ Service ${name} exited with status ${status}. Debug mode active - continuing." + else + handle_exit + fi fi done diff --git a/install/production-filesystem/services/scripts/cron_script.sh b/install/production-filesystem/services/scripts/cron_script.sh index 2d91f4b9..12402de2 100755 --- a/install/production-filesystem/services/scripts/cron_script.sh +++ b/install/production-filesystem/services/scripts/cron_script.sh @@ -5,9 +5,12 @@ export INSTALL_DIR=/app # Check if there are any entries with cron_restart_backend if grep -q "cron_restart_backend" "${LOG_EXECUTION_QUEUE}"; then - killall python3 - sleep 2 - /services/start-backend.sh >/dev/null 2>&1 & + echo "$(date): Restarting backend triggered by cron_restart_backend" + + # Create marker for entrypoint.sh to restart the service instead of killing the container + touch /tmp/backend_restart_pending + + killall python3 || echo "killall python3 failed or no process found" # Remove all lines containing cron_restart_backend from the log file # Atomic replacement with temp file From 274fd50a92591c2dabaa1200ec8e96ef66d3ac5b Mon Sep 17 00:00:00 2001 From: Adam Outler Date: Sun, 23 Nov 2025 15:23:25 +0000 Subject: [PATCH 3/6] 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( From 240d86bf1e8a3cb104d2c1c37c6358edc2f986e8 Mon Sep 17 00:00:00 2001 From: Adam Outler Date: Sun, 23 Nov 2025 16:31:04 +0000 Subject: [PATCH 4/6] docker tests --- .github/workflows/code_checks.yml | 4 ++-- install/production-filesystem/services/healthcheck.sh | 2 +- run_docker_tests.sh => test/docker_tests/run_docker_tests.sh | 0 3 files changed, 3 insertions(+), 3 deletions(-) rename run_docker_tests.sh => test/docker_tests/run_docker_tests.sh (100%) diff --git a/.github/workflows/code_checks.yml b/.github/workflows/code_checks.yml index c5c1b3f4..3bc3d84b 100755 --- a/.github/workflows/code_checks.yml +++ b/.github/workflows/code_checks.yml @@ -95,5 +95,5 @@ jobs: - name: Run Docker-based tests run: | echo "🐳 Running Docker-based tests..." - chmod +x ./run_docker_tests.sh - ./run_docker_tests.sh + chmod +x ./test/docker_tests/run_docker_tests.sh + ./test/docker_tests/run_docker_tests.sh diff --git a/install/production-filesystem/services/healthcheck.sh b/install/production-filesystem/services/healthcheck.sh index dce3183f..166cbe4f 100755 --- a/install/production-filesystem/services/healthcheck.sh +++ b/install/production-filesystem/services/healthcheck.sh @@ -26,7 +26,7 @@ if pgrep -f "supercronic" > /dev/null; then else 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/run_docker_tests.sh b/test/docker_tests/run_docker_tests.sh similarity index 100% rename from run_docker_tests.sh rename to test/docker_tests/run_docker_tests.sh From 07eeac0a0b45c0475d67832e278790b1690ad771 Mon Sep 17 00:00:00 2001 From: Adam Outler Date: Sun, 23 Nov 2025 16:38:03 +0000 Subject: [PATCH 5/6] remove redefined variable --- Dockerfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 9093cdc1..95dd5b57 100755 --- a/Dockerfile +++ b/Dockerfile @@ -61,7 +61,6 @@ ENV LOG_IP_CHANGES=${NETALERTX_LOG}/IP_changes.log ENV LOG_APP=${NETALERTX_LOG}/app.log ENV LOG_APP_FRONT=${NETALERTX_LOG}/app_front.log ENV LOG_REPORT_OUTPUT_TXT=${NETALERTX_LOG}/report_output.txt -ENV LOG_CRON=${NETALERTX_LOG}/supercronic ENV LOG_DB_IS_LOCKED=${NETALERTX_LOG}/db_is_locked.log ENV LOG_REPORT_OUTPUT_HTML=${NETALERTX_LOG}/report_output.html ENV LOG_STDERR=${NETALERTX_LOG}/stderr.log From 35b7e80be49d889d1554d7245781203051622ed8 Mon Sep 17 00:00:00 2001 From: Adam Outler Date: Sun, 23 Nov 2025 16:42:39 +0000 Subject: [PATCH 6/6] Remove additional "tests" from instructions. --- .github/copilot-instructions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index d5472c6d..522eed73 100755 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -86,6 +86,6 @@ Backend loop phases (see `server/__main__.py` and `server/plugin.py`): `once`, ` - 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. +- Docker tests take an extremely long time to run. Avoid changes to docker or 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.