From 5cb7553ed510381615bea35d859f2b95973cb051 Mon Sep 17 00:00:00 2001 From: jokob-sk Date: Fri, 12 Apr 2024 19:44:29 +1000 Subject: [PATCH] =?UTF-8?q?Rename=20work=20=F0=9F=8F=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 3 +- .github/ISSUE_TEMPLATE/i-have-an-issue.yml | 8 +- .github/workflows/docker_cache-cleaner.yml | 4 +- .gitignore | 2 + Dockerfile | 13 +- Dockerfile.debian | 7 +- README.md | 4 +- back/{pialert.conf => app.conf} | 0 back/{pialert.db => app.db} | Bin back/pialert-cli | 2 +- back/report_sample.html | 2 +- back/report_template.html | 4 +- back/report_template_new_version.html | 4 +- docker-compose.yml | 75 +- dockerfiles/README.md | 46 +- dockerfiles/pre-setup.sh | 17 +- dockerfiles/setup.sh | 70 +- docs/API.md | 2 +- docs/BACKUPS.md | 18 +- docs/DATABASE.md | 4 +- docs/DEBUG_PLUGINS.md | 2 +- docs/DEBUG_TIPS.md | 10 +- docs/HOME_ASSISTANT.md | 10 +- docs/HW_INSTALL.md | 12 +- docs/ICONS.md | 2 +- docs/MIGRATION.md | 119 ++ docs/README.md | 4 +- docs/REVERSE_DNS.md | 6 +- docs/REVERSE_PROXY.md | 6 +- docs/SETTINGS_SYSTEM.md | 16 +- docs/SUBNETS.md | 2 +- docs/VERSIONS.md | 2 +- ...on.png => HomeAssistant-Configuration.png} | Bin ...HomeAssistant-Device-Presence-History.png} | Bin ...ng => HomeAssistant-Device-as-Sensors.png} | Bin ...ist.png => HomeAssistant-Devices-List.png} | Bin ...rd.png => HomeAssistant-Overview-Card.png} | Bin front/css/{pialert.css => app.css} | 85 +- front/devices.php | 4 +- front/img/NetAlertX_black.png | Bin 0 -> 20279 bytes front/img/NetAlertX_white.png | Bin 0 -> 18314 bytes front/img/NetAlertX_white_1.png | Bin 0 -> 17955 bytes front/img/NetAlertX_white_2.png | Bin 0 -> 21224 bytes front/img/manifest.json | 4 +- front/img/pialertLogoBlack.png | Bin 47481 -> 0 bytes front/img/pialertLogoGray50.png | Bin 81550 -> 0 bytes front/img/pialertLogoGray80.png | Bin 80059 -> 0 bytes front/img/pialertLogoOrange.png | Bin 95627 -> 0 bytes front/img/pialertLogoWhite.png | Bin 42102 -> 0 bytes front/index.php | 5 +- front/js/common.js | 26 +- front/maintenance.php | 38 +- front/php/server/db.php | 2 +- front/php/server/devices.php | 6 +- front/php/server/util.php | 4 +- front/php/templates/build.php | 2 +- front/php/templates/footer.php | 4 + front/php/templates/header.php | 56 +- front/php/templates/language/de_de.json | 409 +++--- front/php/templates/language/en_us.json | 17 +- front/php/templates/language/es_es.json | 591 ++++---- front/php/templates/language/fr_fr.json | 357 ++--- front/php/templates/language/it_it.json | 3 +- front/php/templates/language/nb_no.json | 15 +- front/php/templates/language/ru_ru.json | 1237 +++++++++-------- front/php/templates/migrationCheck.php | 30 + front/php/templates/notification.php | 6 + front/php/templates/security.php | 2 +- front/php/templates/skinUI.php | 2 +- front/php/templates/timezone.php | 4 +- front/php/templates/version.php | 2 +- front/plugins/README.md | 28 +- front/plugins/_publisher_apprise/apprise.py | 3 +- front/plugins/_publisher_apprise/config.json | 2 +- front/plugins/_publisher_email/config.json | 2 +- front/plugins/_publisher_email/email_smtp.py | 6 +- front/plugins/_publisher_mqtt/config.json | 2 +- front/plugins/_publisher_mqtt/mqtt.py | 11 +- front/plugins/_publisher_ntfy/config.json | 2 +- front/plugins/_publisher_ntfy/ntfy.py | 3 +- front/plugins/_publisher_pushover/config.json | 2 +- front/plugins/_publisher_pushover/pushover.py | 3 +- .../plugins/_publisher_pushsafer/config.json | 2 +- .../plugins/_publisher_pushsafer/pushsafer.py | 3 +- front/plugins/_publisher_webhook/config.json | 2 +- front/plugins/_publisher_webhook/webhook.py | 3 +- front/plugins/arp_scan/config.json | 2 +- front/plugins/arp_scan/script.py | 6 +- front/plugins/csv_backup/config.json | 10 +- front/plugins/csv_backup/script.py | 5 +- front/plugins/db_cleanup/config.json | 2 +- front/plugins/db_cleanup/script.py | 5 +- front/plugins/ddns_update/config.json | 2 +- front/plugins/ddns_update/script.py | 5 +- front/plugins/dhcp_leases/config.json | 2 +- front/plugins/dhcp_leases/script.py | 5 +- front/plugins/dhcp_servers/config.json | 2 +- front/plugins/dhcp_servers/script.py | 5 +- front/plugins/internet_ip/config.json | 2 +- front/plugins/internet_ip/script.py | 5 +- front/plugins/internet_speedtest/config.json | 2 +- front/plugins/internet_speedtest/script.py | 3 +- front/plugins/maintenance/README.md | 2 +- front/plugins/maintenance/config.json | 4 +- front/plugins/maintenance/maintenance.py | 7 +- front/plugins/nmap_scan/config.json | 2 +- front/plugins/nmap_scan/script.py | 7 +- front/plugins/nslookup_scan/config.json | 2 +- front/plugins/nslookup_scan/nslookup.py | 5 +- front/plugins/pholus_scan/config.json | 4 +- front/plugins/pholus_scan/pholus/pholus3.py | 10 +- front/plugins/pholus_scan/script.py | 9 +- front/plugins/plugin_helper.py | 12 +- front/plugins/set_password/README.md | 6 +- front/plugins/set_password/config.json | 6 +- front/plugins/snmp_discovery/config.json | 2 +- front/plugins/snmp_discovery/script.py | 8 +- front/plugins/undiscoverables/config.json | 2 +- front/plugins/undiscoverables/script.py | 5 +- front/plugins/unifi_import/config.json | 2 +- front/plugins/unifi_import/script.py | 10 +- front/plugins/vendor_update/config.json | 2 +- front/plugins/vendor_update/script.py | 5 +- front/plugins/website_monitor/config.json | 2 +- front/plugins/website_monitor/script.py | 6 +- front/settings.php | 4 +- install/index.html | 2 +- install/install.debian.sh | 12 +- install/netalertx.debian.conf | 8 +- install/netalertx.template.conf | 6 +- install/start.debian.sh | 82 +- {netalertx => server}/README.md | 0 {netalertx => server}/__init__.py | 0 {netalertx => server}/__main__.py | 2 +- {netalertx => server}/api.py | 2 +- {netalertx => server}/appevent.py | 2 +- {netalertx => server}/conf.py | 0 {netalertx => server}/const.py | 6 +- {netalertx => server}/database.py | 2 +- {netalertx => server}/device.py | 0 {netalertx => server}/flows.py | 0 {netalertx => server}/helper.py | 7 +- {netalertx => server}/initialise.py | 3 +- {netalertx => server}/logger.py | 2 +- {netalertx => server}/networkscan.py | 0 {netalertx => server}/notification.py | 10 +- {netalertx => server}/plugin.py | 8 +- {netalertx => server}/plugin_utils.py | 0 {netalertx => server}/reporting.py | 1 - {netalertx => server}/scheduler.py | 0 test/test_helper.py | 2 +- 151 files changed, 2070 insertions(+), 1735 deletions(-) rename back/{pialert.conf => app.conf} (100%) rename back/{pialert.db => app.db} (100%) create mode 100755 docs/MIGRATION.md rename docs/img/HOME_ASISSTANT/{PiAlert-HomeAssistant-Configuration.png => HomeAssistant-Configuration.png} (100%) rename docs/img/HOME_ASISSTANT/{PiAlert-HomeAssistant-Device-Presence-History.png => HomeAssistant-Device-Presence-History.png} (100%) rename docs/img/HOME_ASISSTANT/{PiAlert-HomeAssistant-Device-as-Sensors.png => HomeAssistant-Device-as-Sensors.png} (100%) rename docs/img/HOME_ASISSTANT/{PiAlert-HomeAssistant-Devices-List.png => HomeAssistant-Devices-List.png} (100%) rename docs/img/HOME_ASISSTANT/{PiAlert-HomeAssistant-Overview-Card.png => HomeAssistant-Overview-Card.png} (100%) rename front/css/{pialert.css => app.css} (93%) create mode 100755 front/img/NetAlertX_black.png create mode 100755 front/img/NetAlertX_white.png create mode 100755 front/img/NetAlertX_white_1.png create mode 100755 front/img/NetAlertX_white_2.png delete mode 100755 front/img/pialertLogoBlack.png delete mode 100755 front/img/pialertLogoGray50.png delete mode 100755 front/img/pialertLogoGray80.png delete mode 100755 front/img/pialertLogoOrange.png delete mode 100755 front/img/pialertLogoWhite.png mode change 100644 => 100755 front/php/templates/language/de_de.json mode change 100644 => 100755 front/php/templates/language/es_es.json mode change 100644 => 100755 front/php/templates/language/ru_ru.json create mode 100755 front/php/templates/migrationCheck.php rename {netalertx => server}/README.md (100%) rename {netalertx => server}/__init__.py (100%) rename {netalertx => server}/__main__.py (99%) rename {netalertx => server}/api.py (98%) rename {netalertx => server}/appevent.py (99%) rename {netalertx => server}/conf.py (100%) rename {netalertx => server}/const.py (95%) rename {netalertx => server}/database.py (99%) rename {netalertx => server}/device.py (100%) rename {netalertx => server}/flows.py (100%) rename {netalertx => server}/helper.py (99%) rename {netalertx => server}/initialise.py (99%) rename {netalertx => server}/logger.py (98%) rename {netalertx => server}/networkscan.py (100%) rename {netalertx => server}/notification.py (97%) rename {netalertx => server}/plugin.py (99%) rename {netalertx => server}/plugin_utils.py (100%) rename {netalertx => server}/reporting.py (99%) rename {netalertx => server}/scheduler.py (100%) diff --git a/.dockerignore b/.dockerignore index b9ddb743..1d55a42b 100755 --- a/.dockerignore +++ b/.dockerignore @@ -16,5 +16,4 @@ CONTRIBUTING FUNDING.yml config/.gitignore db/.gitignore -pialert/README.md -pialert/README_ES.md + diff --git a/.github/ISSUE_TEMPLATE/i-have-an-issue.yml b/.github/ISSUE_TEMPLATE/i-have-an-issue.yml index f5aedbf0..b50ae9b3 100755 --- a/.github/ISSUE_TEMPLATE/i-have-an-issue.yml +++ b/.github/ISSUE_TEMPLATE/i-have-an-issue.yml @@ -34,9 +34,9 @@ body: required: false - type: textarea attributes: - label: pialert.conf + label: app.conf description: | - Paste your `pialert.conf` (remove personal info) + Paste your `app.conf` (remove personal info) render: python validations: required: false @@ -58,13 +58,13 @@ body: required: true - type: textarea attributes: - label: pialert.log + label: app.log description: | Logs with debug enabled (https://github.com/jokob-sk/NetAlertX/blob/main/docs/DEBUG_TIPS.md) ⚠ ***Generally speaking, all bug reports should have logs provided.*** Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in. Additionally, any additional info? Screenshots? References? Anything that will give us more context about the issue you are encountering! - You can use `tail -100 /home/pi/pialert/front/log/pialert.log` in teh container if you have troubles getting to the log files. + You can use `tail -100 /app/front/log/app.log` in the container if you have troubles getting to the log files. validations: required: false - type: checkboxes diff --git a/.github/workflows/docker_cache-cleaner.yml b/.github/workflows/docker_cache-cleaner.yml index 8d7f61e7..43573815 100755 --- a/.github/workflows/docker_cache-cleaner.yml +++ b/.github/workflows/docker_cache-cleaner.yml @@ -4,8 +4,8 @@ on: workflow_dispatch: # manual option - schedule: - - cron: '15 22 * * 1' # every Monday 10.15pm UTC (~11.15am Tuesday NZT) + # schedule: + # - cron: '15 22 * * 1' # every Monday 10.15pm UTC (~11.15am Tuesday NZT) jobs: diff --git a/.gitignore b/.gitignore index 4fe462ba..ff1ef480 100755 --- a/.gitignore +++ b/.gitignore @@ -2,8 +2,10 @@ .DS_Store config/* config/pialert.conf +config/app.conf db/* db/pialert.db +db/app.db front/log/* front/api/* **/plugins/**/*.log diff --git a/Dockerfile b/Dockerfile index 765c52f2..ab09a935 100755 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,7 @@ FROM alpine:3.19 as builder -ARG INSTALL_DIR=/home/pi +ARG INSTALL_DIR=/app + ENV PYTHONUNBUFFERED 1 RUN apk add --no-cache bash python3 \ @@ -9,7 +10,7 @@ RUN apk add --no-cache bash python3 \ # Enable venv ENV PATH="/opt/venv/bin:$PATH" -COPY . ${INSTALL_DIR}/pialert/ +COPY . ${INSTALL_DIR}/ RUN pip install requests paho-mqtt scapy cron-converter pytz json2table dhcp-leases pyunifi speedtest-cli chardet \ && bash -c "find ${INSTALL_DIR} -type d -exec chmod 750 {} \;" \ @@ -19,7 +20,7 @@ RUN pip install requests paho-mqtt scapy cron-converter pytz json2table dhcp-lea # second stage FROM alpine:3.19 as runner -ARG INSTALL_DIR=/home/pi +ARG INSTALL_DIR=/app COPY --from=builder /opt/venv /opt/venv @@ -40,12 +41,12 @@ RUN apk update --no-cache \ && apk add --no-cache sqlite php82 php82-fpm php82-cgi php82-curl php82-sqlite3 php82-session \ && apk add --no-cache python3 nginx \ && ln -s /usr/bin/awake /usr/bin/wakeonlan \ - && bash -c "install -d -m 750 -o nginx -g www-data ${INSTALL_DIR} ${INSTALL_DIR}/pialert" \ + && bash -c "install -d -m 750 -o nginx -g www-data ${INSTALL_DIR} ${INSTALL_DIR}" \ && rm -f /etc/nginx/http.d/default.conf -COPY --from=builder --chown=nginx:www-data ${INSTALL_DIR}/pialert/ ${INSTALL_DIR}/pialert/ +COPY --from=builder --chown=nginx:www-data ${INSTALL_DIR}/ ${INSTALL_DIR}/ -RUN ${INSTALL_DIR}/pialert/dockerfiles/pre-setup.sh +RUN ${INSTALL_DIR}/dockerfiles/pre-setup.sh HEALTHCHECK --interval=30s --timeout=5s --start-period=15s --retries=2 \ CMD curl -sf -o /dev/null ${LISTEN_ADDR}:${PORT}/api/app_state.json diff --git a/Dockerfile.debian b/Dockerfile.debian index 6b55d6fd..c2301beb 100755 --- a/Dockerfile.debian +++ b/Dockerfile.debian @@ -10,6 +10,7 @@ ENV USER=pi USER_ID=1000 USER_GID=1000 PORT=20211 RUN apt-get update RUN apt-get install sudo -y +ARG INSTALL_DIR=/app # create pi user and group # add root and www-data to pi group so they can r/w files and db @@ -23,7 +24,7 @@ RUN groupadd --gid "${USER_GID}" "${USER}" && \ usermod -a -G ${USER_GID} root && \ usermod -a -G ${USER_GID} www-data -COPY --chmod=775 --chown=${USER_ID}:${USER_GID} . /home/pi/pialert/ +COPY --chmod=775 --chown=${USER_ID}:${USER_GID} . ${INSTALL_DIR}/ # ❗ IMPORTANT - if you modify this file modify the /install/install_dependecies.debian.sh file as well ❗ @@ -43,8 +44,8 @@ RUN python3 -m venv myenv RUN /bin/bash -c "source myenv/bin/activate && update-alternatives --install /usr/bin/python python /usr/bin/python3 10 && pip3 install requests paho-mqtt scapy cron-converter pytz json2table dhcp-leases pyunifi speedtest-cli chardet" # Create a buildtimestamp.txt to later check if a new version was released -RUN date +%s > /home/pi/pialert/front/buildtimestamp.txt +RUN date +%s > ${INSTALL_DIR}/front/buildtimestamp.txt -CMD ["/home/pi/pialert/install/start.debian.sh"] +CMD ["${INSTALL_DIR}/install/start.debian.sh"] diff --git a/README.md b/README.md index 20b8ec83..ae3fca74 100755 --- a/README.md +++ b/README.md @@ -74,7 +74,9 @@ Get visibility of what's going on on your WIFI/LAN network. Schedule scans for d [![GitHub Sponsors](https://img.shields.io/github/sponsors/jokob-sk?style=social)](https://github.com/sponsors/jokob-sk) -Thank you to all the wonderful people who are sponsoring this project (=preventing my burnout🔥🤯): +Thank you to all the wonderful people who are sponsoring this project. + +> preventing my burnout😅 are: | All Sponsors | diff --git a/back/pialert.conf b/back/app.conf similarity index 100% rename from back/pialert.conf rename to back/app.conf diff --git a/back/pialert.db b/back/app.db similarity index 100% rename from back/pialert.db rename to back/app.db diff --git a/back/pialert-cli b/back/pialert-cli index d7d2b720..8a800688 100755 --- a/back/pialert-cli +++ b/back/pialert-cli @@ -1,7 +1,7 @@ #!/bin/bash SCRIPT=$(readlink -f $0) SCRIPTPATH=`dirname $SCRIPT` -CONFFILENAME="pialert.conf" +CONFFILENAME="app.conf" PIA_CONF_FILE=${SCRIPTPATH}'/../config/${CONFFILENAME}' case $1 in diff --git a/back/report_sample.html b/back/report_sample.html index a00981a8..44d8c159 100755 --- a/back/report_sample.html +++ b/back/report_sample.html @@ -13,7 +13,7 @@ diff --git a/back/report_template.html b/back/report_template.html index 8a78b5f9..0b29cdd6 100755 --- a/back/report_template.html +++ b/back/report_template.html @@ -22,7 +22,7 @@
- NetAlertX Report + Net Alertx
@@ -55,7 +55,7 @@ NetAlertX ()
©2020 Puche (2022+ - jokob-sk) | Built on: | Version: | + jokob-sk) | Built on: | Version: | Docs diff --git a/back/report_template_new_version.html b/back/report_template_new_version.html index 8576c3b9..40a4d3ab 100755 --- a/back/report_template_new_version.html +++ b/back/report_template_new_version.html @@ -22,7 +22,7 @@
- NetAlertX Report + Net Alertx
@@ -59,7 +59,7 @@ NetAlertX ()
©2020 Puche (2022+ - jokob-sk) | Built on: | Version: | + jokob-sk) | Built on: | Version: | Docs diff --git a/docker-compose.yml b/docker-compose.yml index 243c219c..9bbfde2c 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -11,12 +11,14 @@ services: network_mode: host # restart: unless-stopped volumes: - # - ${APP_DATA_LOCATION}/netalertx_dev/config:/home/pi/pialert/config + # - ${APP_DATA_LOCATION}/netalertx_dev/config:/app/config + # - ${APP_DATA_LOCATION}/netalertx/config:/app/config - ${APP_DATA_LOCATION}/netalertx/config:/home/pi/pialert/config - # - ${APP_DATA_LOCATION}/netalertx_dev/db:/home/pi/pialert/db - - ${APP_DATA_LOCATION}/netalertx/db:/home/pi/pialert/db + # - ${APP_DATA_LOCATION}/netalertx_dev/db:/app/db + # - ${APP_DATA_LOCATION}/netalertx/db:/app/db + - ${APP_DATA_LOCATION}/netalertx/db:/home/pi/pialert/db # (optional) useful for debugging if you have issues setting up the container - # - ${LOGS_LOCATION}:/home/pi/pialert/front/log + # - ${LOGS_LOCATION}:/app/front/log # --------------------------------------------------------------------------- # DELETE START anyone trying to use this file: comment out / delete BELOW lines, they are only for development purposes - ${APP_DATA_LOCATION}/netalertx/dhcp_samples/dhcp1.leases:/mnt/dhcp1.leases @@ -24,39 +26,40 @@ services: - ${APP_DATA_LOCATION}/netalertx/dhcp_samples/pihole_dhcp_full.leases:/etc/pihole/dhcp.leases - ${APP_DATA_LOCATION}/netalertx/dhcp_samples/pihole_dhcp_2.leases:/etc/pihole/dhcp2.leases - ${APP_DATA_LOCATION}/pihole/etc-pihole/pihole-FTL.db:/etc/pihole/pihole-FTL.db - - ${DEV_LOCATION}/netalertx:/home/pi/pialert/netalertx - - ${DEV_LOCATION}/dockerfiles:/home/pi/pialert/dockerfiles + - ${DEV_LOCATION}/server:/app/server + - ${DEV_LOCATION}/dockerfiles:/app/dockerfiles - ${APP_DATA_LOCATION}/netalertx/php.ini:/etc/php/8.2/fpm/php.ini - - ${DEV_LOCATION}/install:/home/pi/pialert/install - - ${DEV_LOCATION}/front/css:/home/pi/pialert/front/css - - ${DEV_LOCATION}/back/update_vendors.sh:/home/pi/pialert/back/update_vendors.sh - - ${DEV_LOCATION}/front/lib/AdminLTE:/home/pi/pialert/front/lib/AdminLTE - - ${DEV_LOCATION}/front/js:/home/pi/pialert/front/js - - ${DEV_LOCATION}/install/start.debian.sh:/home/pi/pialert/install/start.debian.sh - - ${DEV_LOCATION}/install/user-mapping.debian.sh:/home/pi/pialert/install/user-mapping.debian.sh - - ${DEV_LOCATION}/install/install.debian.sh:/home/pi/pialert/install/install.debian.sh - - ${DEV_LOCATION}/install/install_dependencies.debian.sh:/home/pi/pialert/install/install_dependencies.debian.sh - - ${DEV_LOCATION}/front/api:/home/pi/pialert/front/api - - ${DEV_LOCATION}/front/php:/home/pi/pialert/front/php - - ${DEV_LOCATION}/front/deviceDetails.php:/home/pi/pialert/front/deviceDetails.php - - ${DEV_LOCATION}/front/deviceDetailsTools.php:/home/pi/pialert/front/deviceDetailsTools.php - - ${DEV_LOCATION}/front/devices.php:/home/pi/pialert/front/devices.php - - ${DEV_LOCATION}/front/events.php:/home/pi/pialert/front/events.php - - ${DEV_LOCATION}/front/plugins.php:/home/pi/pialert/front/plugins.php - - ${DEV_LOCATION}/front/pluginsCore.php:/home/pi/pialert/front/pluginsCore.php - - ${DEV_LOCATION}/front/help_faq.php:/home/pi/pialert/front/help_faq.php - - ${DEV_LOCATION}/front/index.php:/home/pi/pialert/front/index.php - - ${DEV_LOCATION}/front/maintenance.php:/home/pi/pialert/front/maintenance.php - - ${DEV_LOCATION}/front/network.php:/home/pi/pialert/front/network.php - - ${DEV_LOCATION}/front/presence.php:/home/pi/pialert/front/presence.php - - ${DEV_LOCATION}/front/settings.php:/home/pi/pialert/front/settings.php - - ${DEV_LOCATION}/front/systeminfo.php:/home/pi/pialert/front/systeminfo.php - - ${DEV_LOCATION}/front/report.php:/home/pi/pialert/front/report.php - - ${DEV_LOCATION}/front/workflows.php:/home/pi/pialert/front/workflows.php - - ${DEV_LOCATION}/front/appEventsCore.php:/home/pi/pialert/front/appEventsCore.php - - ${DEV_LOCATION}/front/multiEditCore.php:/home/pi/pialert/front/multiEditCore.php - - ${DEV_LOCATION}/front/donations.php:/home/pi/pialert/front/donations.php - - ${DEV_LOCATION}/front/plugins:/home/pi/pialert/front/plugins + - ${DEV_LOCATION}/install:/app/install + - ${DEV_LOCATION}/front/css:/app/front/css + - ${DEV_LOCATION}/front/img:/app/front/img + - ${DEV_LOCATION}/back/update_vendors.sh:/app/back/update_vendors.sh + - ${DEV_LOCATION}/front/lib/AdminLTE:/app/front/lib/AdminLTE + - ${DEV_LOCATION}/front/js:/app/front/js + - ${DEV_LOCATION}/install/start.debian.sh:/app/install/start.debian.sh + - ${DEV_LOCATION}/install/user-mapping.debian.sh:/app/install/user-mapping.debian.sh + - ${DEV_LOCATION}/install/install.debian.sh:/app/install/install.debian.sh + - ${DEV_LOCATION}/install/install_dependencies.debian.sh:/app/install/install_dependencies.debian.sh + - ${DEV_LOCATION}/front/api:/app/front/api + - ${DEV_LOCATION}/front/php:/app/front/php + - ${DEV_LOCATION}/front/deviceDetails.php:/app/front/deviceDetails.php + - ${DEV_LOCATION}/front/deviceDetailsTools.php:/app/front/deviceDetailsTools.php + - ${DEV_LOCATION}/front/devices.php:/app/front/devices.php + - ${DEV_LOCATION}/front/events.php:/app/front/events.php + - ${DEV_LOCATION}/front/plugins.php:/app/front/plugins.php + - ${DEV_LOCATION}/front/pluginsCore.php:/app/front/pluginsCore.php + - ${DEV_LOCATION}/front/help_faq.php:/app/front/help_faq.php + - ${DEV_LOCATION}/front/index.php:/app/front/index.php + - ${DEV_LOCATION}/front/maintenance.php:/app/front/maintenance.php + - ${DEV_LOCATION}/front/network.php:/app/front/network.php + - ${DEV_LOCATION}/front/presence.php:/app/front/presence.php + - ${DEV_LOCATION}/front/settings.php:/app/front/settings.php + - ${DEV_LOCATION}/front/systeminfo.php:/app/front/systeminfo.php + - ${DEV_LOCATION}/front/report.php:/app/front/report.php + - ${DEV_LOCATION}/front/workflows.php:/app/front/workflows.php + - ${DEV_LOCATION}/front/appEventsCore.php:/app/front/appEventsCore.php + - ${DEV_LOCATION}/front/multiEditCore.php:/app/front/multiEditCore.php + - ${DEV_LOCATION}/front/donations.php:/app/front/donations.php + - ${DEV_LOCATION}/front/plugins:/app/front/plugins # DELETE END anyone trying to use this file: comment out / delete ABOVE lines, they are only for development purposes # --------------------------------------------------------------------------- environment: diff --git a/dockerfiles/README.md b/dockerfiles/README.md index aa2b5a95..7dc080b9 100755 --- a/dockerfiles/README.md +++ b/dockerfiles/README.md @@ -25,8 +25,8 @@ ```yaml docker run -d --rm --network=host \ - -v local/path/pialert/config:/home/pi/pialert/config \ - -v local/path/pialert/db:/home/pi/pialert/db \ + -v local/path/config:/app/config \ + -v local/path/db:/app/db \ -e TZ=Europe/Berlin \ -e PORT=20211 \ jokobsk/netalertx:latest @@ -49,22 +49,22 @@ docker run -d --rm --network=host \ | Required | Path | Description | | :------------- | :------------- | :-------------| -| ✅ | `:/home/pi/pialert/config` | Folder which will contain the `pialert.conf` & `devices.csv` ([read about devices.csv](https://github.com/jokob-sk/NetAlertX/blob/main/docs/DEVICES_BULK_EDITING.md)) files (see below for details). | -| ✅ | `:/home/pi/pialert/db` | Folder which will contain the `pialert.db` file | -| | `:/home/pi/pialert/front/log` | Logs folder useful for debugging if you have issues setting up the container | +| ✅ | `:/app/config` | Folder which will contain the `app.conf` & `devices.csv` ([read about devices.csv](https://github.com/jokob-sk/NetAlertX/blob/main/docs/DEVICES_BULK_EDITING.md)) files (see below for details). | +| ✅ | `:/app/db` | Folder which will contain the `app.db` file | +| | `:/app/front/log` | Logs folder useful for debugging if you have issues setting up the container | | | `:/etc/pihole/pihole-FTL.db` | PiHole's `pihole-FTL.db` database file. Required if you want to use PiHole DB mapping. | | | `:/etc/pihole/dhcp.leases` | PiHole's `dhcp.leases` file. Required if you want to use PiHole `dhcp.leases` file. This has to be matched with a corresponding `DHCPLSS_paths_to_check` setting entry (the path in the container must contain `pihole`)| -| | `:/home/pi/pialert/front/api` | A simple [API endpoint](https://github.com/jokob-sk/NetAlertX/blob/main/docs/API.md) containing static (but regularly updated) json and other files. | -| | `:/home/pi/pialert/front/plugins//ignore_plugin` | Map a file `ignore_plugin` to ignore a plugin. Plugins can be soft-disabled via settings. More in the [Plugin docs](https://github.com/jokob-sk/NetAlertX/blob/main/front/plugins/README.md). | +| | `:/app/front/api` | A simple [API endpoint](https://github.com/jokob-sk/NetAlertX/blob/main/docs/API.md) containing static (but regularly updated) json and other files. | +| | `:/app/front/plugins//ignore_plugin` | Map a file `ignore_plugin` to ignore a plugin. Plugins can be soft-disabled via settings. More in the [Plugin docs](https://github.com/jokob-sk/NetAlertX/blob/main/front/plugins/README.md). | | | `:/etc/resolv.conf` | Use a custom `resolv.conf` file for [better name resolution](https://github.com/jokob-sk/NetAlertX/blob/main/docs/REVERSE_DNS.md). | > Use separate `db` and `config` directories, don't nest them. -### (If UI is not available) Modify the config (`pialert.conf`) +### (If UI is not available) Modify the config (`app.conf`) - The preferred way is to manage the configuration via the Settings section in the UI. -- You can modify [pialert.conf](https://github.com/jokob-sk/NetAlertX/tree/main/config) directly, if needed. -- If unavailable, the app generates a default `pialert.conf` and `pialert.db` file on the first run. +- You can modify [app.conf](https://github.com/jokob-sk/NetAlertX/tree/main/config) directly, if needed. +- If unavailable, the app generates a default `app.conf` and `app.db` file on the first run. #### Important settings @@ -130,10 +130,10 @@ services: network_mode: "host" restart: unless-stopped volumes: - - local/path/pialert/config:/home/pi/pialert/config - - local/path/pialert/db:/home/pi/pialert/db + - local/path/config:/app/config + - local/path/db:/app/db # (optional) useful for debugging if you have issues setting up the container - - local/path/logs:/home/pi/pialert/front/log + - local/path/logs:/app/front/log environment: - TZ=Europe/Berlin - PORT=20211 @@ -157,8 +157,8 @@ Example by [SeimuS](https://github.com/SeimusS). - TZ=Europe/Bratislava restart: always volumes: - - ./pialert/pialert_db:/home/pi/pialert/db - - ./pialert/pialert_config:/home/pi/pialert/config + - ./netalertx/db:/app/db + - ./netalertx/config:/app/config network_mode: host ``` @@ -179,10 +179,10 @@ services: network_mode: "host" restart: unless-stopped volumes: - - ${APP_DATA_LOCATION}/netalertx/config:/home/pi/pialert/config - - ${APP_DATA_LOCATION}/netalertx/db/pialert.db:/home/pi/pialert/db/pialert.db + - ${APP_DATA_LOCATION}/netalertx/config:/app/config + - ${APP_DATA_LOCATION}/netalertx/db/:/app/db/ # (optional) useful for debugging if you have issues setting up the container - - ${LOGS_LOCATION}:/home/pi/pialert/front/log + - ${LOGS_LOCATION}:/app/front/log environment: - TZ=${TZ} - PORT=${PORT} @@ -211,7 +211,7 @@ To run the container execute: `sudo docker-compose --env-file /path/to/.env up` ### Example 4 -Courtesy of [pbek](https://github.com/pbek). The volume `pialert_db` is used by the db directory. The two config files are mounted directly from a local folder to their places in the config folder. You can backup the `docker-compose.yaml` folder and the docker volumes folder. +Courtesy of [pbek](https://github.com/pbek). The volume `netalertx_db` is used by the db directory. The two config files are mounted directly from a local folder to their places in the config folder. You can backup the `docker-compose.yaml` folder and the docker volumes folder. ```yaml netalertx: @@ -227,15 +227,15 @@ Courtesy of [pbek](https://github.com/pbek). The volume `pialert_db` is used by ipv4_address: 192.168.1.2 restart: unless-stopped volumes: - - pialert_db:/home/pi/pialert/db - - ./pialert/pialert.conf:/home/pi/pialert/config/pialert.conf + - netalertx_db:/app/db + - ./netalertx/:/app/config/ ``` ## 🏅 Recognitions -Big thanks to @Macleykun & for help and tips&tricks for Dockerfile(s) and @vladaurosh for Alpine re-base help. +Big thanks to @Macleykun & for help and tips & tricks for Dockerfile(s) and @vladaurosh for Alpine re-base help. -## ❤ Support me to prevent my burnout 🔥🤯 +## ❤ Support me | [![GitHub](https://i.imgur.com/emsRCPh.png)](https://github.com/sponsors/jokob-sk) | [![Buy Me A Coffee](https://i.imgur.com/pIM6YXL.png)](https://www.buymeacoffee.com/jokobsk) | [![Patreon](https://i.imgur.com/MuYsrq1.png)](https://www.patreon.com/user?u=84385063) | | --- | --- | --- | diff --git a/dockerfiles/pre-setup.sh b/dockerfiles/pre-setup.sh index 0f815dd8..1ab830c0 100755 --- a/dockerfiles/pre-setup.sh +++ b/dockerfiles/pre-setup.sh @@ -1,6 +1,7 @@ #!/bin/bash -export INSTALL_DIR=/home/pi +export INSTALL_DIR=/app +export APP_NAME=netalertx # php-fpm setup install -d -o nginx -g www-data /run/php/ @@ -13,12 +14,12 @@ sed -i "/^group/c\group = www-data" /etc/php82/php-fpm.d/www.conf # s6 overlay setup mkdir -p /etc/s6-overlay/s6-rc.d/{SetupOneshot,php-fpm/dependencies.d,nginx/dependencies.d} -mkdir -p /etc/s6-overlay/s6-rc.d/{SetupOneshot,php-fpm/dependencies.d,nginx/dependencies.d,pialert/dependencies.d} +mkdir -p /etc/s6-overlay/s6-rc.d/{SetupOneshot,php-fpm/dependencies.d,nginx/dependencies.d,$APP_NAME/dependencies.d} echo "oneshot" > /etc/s6-overlay/s6-rc.d/SetupOneshot/type echo "longrun" > /etc/s6-overlay/s6-rc.d/php-fpm/type echo "longrun" > /etc/s6-overlay/s6-rc.d/nginx/type -echo "longrun" > /etc/s6-overlay/s6-rc.d/pialert/type -echo -e "${INSTALL_DIR}/pialert/dockerfiles/setup.sh" > /etc/s6-overlay/s6-rc.d/SetupOneshot/up +echo "longrun" > /etc/s6-overlay/s6-rc.d/$APP_NAME/type +echo -e "${INSTALL_DIR}/dockerfiles/setup.sh" > /etc/s6-overlay/s6-rc.d/SetupOneshot/up echo -e "#!/bin/execlineb -P\n/usr/sbin/php-fpm82 -F" > /etc/s6-overlay/s6-rc.d/php-fpm/run echo -e '#!/bin/execlineb -P\nnginx -g "daemon off;"' > /etc/s6-overlay/s6-rc.d/nginx/run echo -e '#!/bin/execlineb -P @@ -30,11 +31,11 @@ echo -e '#!/bin/execlineb -P " [INSTALL] 🚀 Starting app (:${PORT}) - " }' > /etc/s6-overlay/s6-rc.d/pialert/run -echo -e "python ${INSTALL_DIR}/pialert/netalertx" >> /etc/s6-overlay/s6-rc.d/pialert/run + " }' > /etc/s6-overlay/s6-rc.d/$APP_NAME/run +echo -e "python ${INSTALL_DIR}/server" >> /etc/s6-overlay/s6-rc.d/server/run touch /etc/s6-overlay/s6-rc.d/user/contents.d/{SetupOneshot,php-fpm,nginx} /etc/s6-overlay/s6-rc.d/{php-fpm,nginx}/dependencies.d/SetupOneshot -touch /etc/s6-overlay/s6-rc.d/user/contents.d/{SetupOneshot,php-fpm,nginx,pialert} /etc/s6-overlay/s6-rc.d/{php-fpm,nginx,pialert}/dependencies.d/SetupOneshot +touch /etc/s6-overlay/s6-rc.d/user/contents.d/{SetupOneshot,php-fpm,nginx,$APP_NAME} /etc/s6-overlay/s6-rc.d/{php-fpm,nginx,$APP_NAME}/dependencies.d/SetupOneshot touch /etc/s6-overlay/s6-rc.d/nginx/dependencies.d/php-fpm -touch /etc/s6-overlay/s6-rc.d/pialert/dependencies.d/nginx +touch /etc/s6-overlay/s6-rc.d/$APP_NAME/dependencies.d/nginx rm -f $0 diff --git a/dockerfiles/setup.sh b/dockerfiles/setup.sh index c92ed48d..5e142ce8 100755 --- a/dockerfiles/setup.sh +++ b/dockerfiles/setup.sh @@ -4,14 +4,20 @@ echo "---------------------------------------------------------" echo "[INSTALL] Run setup.sh" echo "---------------------------------------------------------" -export INSTALL_DIR=/home/pi # Specify the installation directory here +export INSTALL_DIR=/app # Specify the installation directory here # DO NOT CHANGE ANYTHING BELOW THIS LINE! -CONFFILENAME="pialert.conf" -NGINX_CONFIG_FILE="/etc/nginx/http.d/${CONFFILENAME}" -DBFILENAME="pialert.db" + +CONF_FILE="app.conf" +NGINX_CONF_FILE=netalertx.conf +DB_FILE="app.db" + +NGINX_CONFIG_FILE="/etc/nginx/http.d/${NGINX_CONF_FILE}" + OUI_FILE="/usr/share/arp-scan/ieee-oui.txt" # Define the path to ieee-oui.txt and ieee-iab.txt -FILEDB="${INSTALL_DIR}/pialert/db/${DBFILENAME}" + + +FULL_FILEDB_PATH="${INSTALL_DIR}/db/${DB_FILE}" # DO NOT CHANGE ANYTHING ABOVE THIS LINE! @@ -21,25 +27,41 @@ if [[ $EUID -ne 0 ]]; then exit 1 fi -echo "[INSTALL] Copy starter ${DBFILENAME} and ${CONFFILENAME} if they don't exist" +echo "[INSTALL] Copy starter ${DB_FILE} and ${CONF_FILE} if they don't exist" # DANGER ZONE: ALWAYS_FRESH_INSTALL if [ "$ALWAYS_FRESH_INSTALL" = true ]; then echo "[INSTALL] ❗ ALERT /db and /config folders are cleared because the ALWAYS_FRESH_INSTALL is set to: $ALWAYS_FRESH_INSTALL❗" - # Delete content of "$INSTALL_DIR/pialert/config/" - rm -rf "$INSTALL_DIR/pialert/config/"* + # Delete content of "$INSTALL_DIR/config/" + rm -rf "$INSTALL_DIR/config/"* - # Delete content of "$INSTALL_DIR/pialert/db/" - rm -rf "$INSTALL_DIR/pialert/db/"* + # Delete content of "$INSTALL_DIR/db/" + rm -rf "$INSTALL_DIR/db/"* fi +# 🔻 FOR BACKWARD COMPATIBILITY - REMOVE AFTER 12/12/2024 +# Check if pialert.db exists, then copy to app.db +INSTALL_DIR_OLD=/home/pi/pialert +OLD_APP_NAME=pialert + +# Check if pialert.db exists, then create a symbolic link to app.db +if [ -f "${INSTALL_DIR_OLD}/db/${OLD_APP_NAME}.db" ]; then + ln -s "${INSTALL_DIR_OLD}/db/${OLD_APP_NAME}.db" "${FULL_FILEDB_PATH}" +fi + +# Check if ${OLD_APP_NAME}.conf exists, then create a symbolic link to app.conf +if [ -f "${INSTALL_DIR_OLD}/config/${OLD_APP_NAME}.conf" ]; then + ln -s "${INSTALL_DIR_OLD}/config/${OLD_APP_NAME}.conf" "${INSTALL_DIR}/config/${CONF_FILE}" +fi +# 🔺 FOR BACKWARD COMPATIBILITY - REMOVE AFTER 12/12/2024 + # Copy starter .db and .conf if they don't exist -cp -na "${INSTALL_DIR}/pialert/back/${CONFFILENAME}" "${INSTALL_DIR}/pialert/config/${CONFFILENAME}" -cp -na "${INSTALL_DIR}/pialert/back/${DBFILENAME}" "${FILEDB}" +cp -na "${INSTALL_DIR}/back/${CONF_FILE}" "${INSTALL_DIR}/config/${CONF_FILE}" +cp -na "${INSTALL_DIR}/back/${DB_FILE}" "${FULL_FILEDB_PATH}" # if custom variables not set we do not need to do anything if [ -n "${TZ}" ]; then - FILECONF="${INSTALL_DIR}/pialert/config/${CONFFILENAME}" + FILECONF="${INSTALL_DIR}/config/${CONF_FILE}" echo "[INSTALL] Setup timezone" sed -i "\#^TIMEZONE=#c\TIMEZONE='${TZ}'" "${FILECONF}" @@ -50,7 +72,7 @@ fi echo "[INSTALL] Setup NGINX" echo "Setting webserver to address ($LISTEN_ADDR) and port ($PORT)" -envsubst '$INSTALL_DIR $LISTEN_ADDR $PORT' < "${INSTALL_DIR}/pialert/install/netalertx.template.conf" > "${NGINX_CONFIG_FILE}" +envsubst '$INSTALL_DIR $LISTEN_ADDR $PORT' < "${INSTALL_DIR}/install/netalertx.template.conf" > "${NGINX_CONFIG_FILE}" # Run the hardware vendors update at least once echo "[INSTALL] Run the hardware vendors update" @@ -62,27 +84,27 @@ else echo "The file ieee-oui.txt does not exist. Running update_vendors..." # Run the update_vendors.sh script - if [ -f "${INSTALL_DIR}/pialert/back/update_vendors.sh" ]; then - "${INSTALL_DIR}/pialert/back/update_vendors.sh" + if [ -f "${INSTALL_DIR}/back/update_vendors.sh" ]; then + "${INSTALL_DIR}/back/update_vendors.sh" else echo "update_vendors.sh script not found in ${INSTALL_DIR}." fi fi # Create an empty log files -# Create the execution_queue.log and pialert_front.log files if they don't exist -touch "${INSTALL_DIR}"/pialert/front/log/{execution_queue.log,pialert_front.log,pialert.php_errors.log,stderr.log,stdout.log} +# Create the execution_queue.log and app_front.log files if they don't exist +touch "${INSTALL_DIR}"/front/log/{execution_queue.log,app_front.log,app.php_errors.log,stderr.log,stdout.log} echo "[INSTALL] Fixing permissions after copied starter config & DB" -chown -R nginx:www-data "${INSTALL_DIR}"/pialert/{config,front/log,db} -chmod 750 "${INSTALL_DIR}"/pialert/{config,front/log,db} -find "${INSTALL_DIR}"/pialert/{config,front/log,db} -type f -exec chmod 640 {} \; +chown -R nginx:www-data "${INSTALL_DIR}"/{config,front/log,db} +chmod 750 "${INSTALL_DIR}"/{config,front/log,db} +find "${INSTALL_DIR}"/{config,front/log,db} -type f -exec chmod 640 {} \; # Check if buildtimestamp.txt doesn't exist -if [ ! -f "${INSTALL_DIR}/pialert/front/buildtimestamp.txt" ]; then +if [ ! -f "${INSTALL_DIR}/front/buildtimestamp.txt" ]; then # Create buildtimestamp.txt - date +%s > "${INSTALL_DIR}/pialert/front/buildtimestamp.txt" - chown nginx:www-data "${INSTALL_DIR}/pialert/front/buildtimestamp.txt" + date +%s > "${INSTALL_DIR}/front/buildtimestamp.txt" + chown nginx:www-data "${INSTALL_DIR}/front/buildtimestamp.txt" fi echo -e " diff --git a/docs/API.md b/docs/API.md index 7a3718b9..8f734d5f 100755 --- a/docs/API.md +++ b/docs/API.md @@ -9,7 +9,7 @@ The endpoints are updated when objects in the API endpoints are changed. ### Location of the endpoints -In the container, these files are located under the `/home/pi/pialert/front/api/` folder and thus on the `/api/` url. +In the container, these files are located under the `/app/front/api/` folder and thus on the `/api/` url. ### Available endpoints diff --git a/docs/BACKUPS.md b/docs/BACKUPS.md index 4dc8a163..45301117 100755 --- a/docs/BACKUPS.md +++ b/docs/BACKUPS.md @@ -7,8 +7,8 @@ There are 3 artifacts that can be used to backup the application: | File | Description | Limitations | |-----------------------|-------------------------------|-------------------------------| -| `/db/pialert.db` | Database file(s) | The database file might be in an uncommitted state or corrupted | -| `/config/pialert.conf` | Configuration file | Doesn't contain settings from the Maintenance section | +| `/db/app.db` | Database file(s) | The database file might be in an uncommitted state or corrupted | +| `/config/app.conf` | Configuration file | Doesn't contain settings from the Maintenance section | | `/config/devices.csv` | CSV file containing device information | Doesn't contain historical data | ## Data and cackup storage @@ -17,7 +17,7 @@ To decide on a backup strategy, check where the data is stored: ### Core Configuration -The core application configuration is in the `pialert.conf` file (See [Settings System](https://github.com/jokob-sk/NetAlertX/blob/main/docs/SETTINGS_SYSTEM.md) for details), such as: +The core application configuration is in the `app.conf` file (See [Settings System](https://github.com/jokob-sk/NetAlertX/blob/main/docs/SETTINGS_SYSTEM.md) for details), such as: - Notification settings - Scanner settings @@ -35,7 +35,7 @@ The core device data is backed up to the `devices_.csv` file via the ### Historical data -Historical data is stored in the `pialert.db` database (See [Database overview](https://github.com/jokob-sk/NetAlertX/blob/main/docs/DATABASE.md) for details). This data includes: +Historical data is stored in the `app.db` database (See [Database overview](https://github.com/jokob-sk/NetAlertX/blob/main/docs/DATABASE.md) for details). This data includes: - Plugin objects - Plugin historical entries @@ -46,7 +46,7 @@ Historical data is stored in the `pialert.db` database (See [Database overview]( The safest approach to backups is to backup all of the above, by taking regular file system backups (I use [Kopia](https://github.com/kopia/kopia)). -Arguably, the most time is spent setting up the device list, so if only one file is kept I'd recommend to have a latest backup of the `devices_.csv` file, followed by the `pialert.conf` file. +Arguably, the most time is spent setting up the device list, so if only one file is kept I'd recommend to have a latest backup of the `devices_.csv` file, followed by the `app.conf` file. ### Scenario 1: Full backup @@ -54,8 +54,8 @@ End-result: Full restore #### Source artifacts: -- `/db/pialert.db` (uncorrupted) -- `/config/pialert.conf` +- `/db/app.db` (uncorrupted) +- `/config/app.conf` #### Recovery: @@ -68,14 +68,14 @@ End-result: Partial restore (historical data & configurations from the Maintenan #### Source artifacts: -- `/config/pialert.conf` +- `/config/app.conf` - `/config/devices_.csv` or `/config/devices.csv` #### Recovery: Even with a corrupted database you can recover what I would argue is 99% of the configuration (except of a couple of settings under Maintenance). -- map the `/config/pialert.conf` file as described in the [Setup documentation](https://github.com/jokob-sk/NetAlertX/blob/main/dockerfiles/README.md#docker-paths). +- map the `/config/app.conf` file as described in the [Setup documentation](https://github.com/jokob-sk/NetAlertX/blob/main/dockerfiles/README.md#docker-paths). - rename the `devices_.csv` to `devices.csv` and place it in the `/config` folder - Restore the `devices.csv` backup via the [Maintenance section](https://github.com/jokob-sk/NetAlertX/blob/main/docs/DEVICES_BULK_EDITING.md) diff --git a/docs/DATABASE.md b/docs/DATABASE.md index bb2ae1d9..fedef963 100755 --- a/docs/DATABASE.md +++ b/docs/DATABASE.md @@ -1,5 +1,5 @@ - # A high-level description of the datbase structure + # A high-level description of the database structure ⚠ Disclaimer: As I'm not the original author, some of the information might be inaccurate. Feel free to submit a PR to correct anything within this page or documentation in general. @@ -20,7 +20,7 @@ | Plugins_Language_Strings | Language strings colelcted from the plugin `config.json` files used for string resolution in the frontend. | ![Screen12][screen12] | | Plugins_Objects | Unique objects detected by individual plugins. | ![Screen13][screen13] | | Sessions | Used to display sessions in the charts | ![Screen15][screen15] | - | Settings | Database representation of the sum of all settings from `pialert.conf` and plugins coming from `config.json` files. | ![Screen16][screen16] | + | Settings | Database representation of the sum of all settings from `app.conf` and plugins coming from `config.json` files. | ![Screen16][screen16] | diff --git a/docs/DEBUG_PLUGINS.md b/docs/DEBUG_PLUGINS.md index 512a10f9..27ca3865 100755 --- a/docs/DEBUG_PLUGINS.md +++ b/docs/DEBUG_PLUGINS.md @@ -19,7 +19,7 @@ For a more in-depth overview on how plugins work check the [Plugins development #### Incorrect input data -Input data from the plugin might cause mapping issues in specific edge cases. Look for a corresponding section in the `pialert.log` file, for example notice the first line of the execution run of the `PIHOLE` plugin below: +Input data from the plugin might cause mapping issues in specific edge cases. Look for a corresponding section in the `app.log` file, for example notice the first line of the execution run of the `PIHOLE` plugin below: ``` 17:31:05 [Scheduler] - Scheduler run for PIHOLE: YES diff --git a/docs/DEBUG_TIPS.md b/docs/DEBUG_TIPS.md index f2712862..7c180037 100755 --- a/docs/DEBUG_TIPS.md +++ b/docs/DEBUG_TIPS.md @@ -15,8 +15,8 @@ Start the container via the **terminal** with a command similar to this one: ```bash docker run --rm --network=host \ - -v local/path/pialert/config:/home/pi/pialert/config \ - -v local/path/pialert/db:/home/pi/pialert/db \ + -v local/path/netalertx/config:/app/config \ + -v local/path/netalertx/db:/app/db \ -e TZ=Europe/Berlin \ -e PORT=20211 \ jokobsk/netalertx:latest @@ -53,9 +53,9 @@ services: ### Permissions -* If facing issues (AJAX errors, can't write to DB, empty screen, etc,) make sure permissions are set correctly, and check the logs under `/home/pi/pialert/front/log`. -* To solve permission issues you can try setting the owner and group of the `pialert.db` by executing the following on the host system: `docker exec netalertx chown -R www-data:www-data /home/pi/pialert/db/pialert.db`. -* If still facing issues, try to map the pialert.db file (⚠ not folder) to `:/home/pi/pialert/db/pialert.db` (see [docker-compose Examples](https://github.com/jokob-sk/NetAlertX/blob/main/dockerfiles/README.md#-docker-composeyml-examples) for details) +* If facing issues (AJAX errors, can't write to DB, empty screen, etc,) make sure permissions are set correctly, and check the logs under `/app/front/log`. +* To solve permission issues you can try setting the owner and group of the `app.db` by executing the following on the host system: `docker exec netalertx chown -R www-data:www-data /app/db/app.db`. +* If still facing issues, try to map the app.db file (⚠ not folder) to `:/app/db/app.db` (see [docker-compose Examples](https://github.com/jokob-sk/NetAlertX/blob/main/dockerfiles/README.md#-docker-composeyml-examples) for details) ### Container restarts / crashes diff --git a/docs/HOME_ASSISTANT.md b/docs/HOME_ASSISTANT.md index 44c83182..8321a0f9 100755 --- a/docs/HOME_ASSISTANT.md +++ b/docs/HOME_ASSISTANT.md @@ -36,9 +36,9 @@ NetAlertX comes with MQTT support, allowing you to show all detected devices as | ![Screen 3][list] | ![Screen 4][overview] | - [configuration]: /docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Configuration.png "configuration" - [sensors]: /docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Device-as-Sensors.png "sensors" - [history]: /docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Device-Presence-History.png "history" - [list]: /docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Devices-List.png "list" - [overview]: /docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Overview-Card.png "overview" + [configuration]: /docs/img/HOME_ASISSTANT/HomeAssistant-Configuration.png "configuration" + [sensors]: /docs/img/HOME_ASISSTANT/HomeAssistant-Device-as-Sensors.png "sensors" + [history]: /docs/img/HOME_ASISSTANT/HomeAssistant-Device-Presence-History.png "history" + [list]: /docs/img/HOME_ASISSTANT/HomeAssistant-Devices-List.png "list" + [overview]: /docs/img/HOME_ASISSTANT/HomeAssistant-Overview-Card.png "overview" diff --git a/docs/HW_INSTALL.md b/docs/HW_INSTALL.md index b973981c..94e37368 100755 --- a/docs/HW_INSTALL.md +++ b/docs/HW_INSTALL.md @@ -14,20 +14,20 @@ be dangerous, as you cannot see the code that's about to be executed on your sys Alternatively you can download the installation script `install/install.debian.sh` from the repository and check the code yourself (beware other scripts are downloaded too - only from this repo). -NetAlertX will be installed in `home/pi/pialert/` and run on port number `20211`. +NetAlertX will be installed in `/app` and run on port number `20211`. Some facts about what and where something will be changed/installed by the HW install setup (may not contain everything!): -- `/home/pi/pialert` directory will be deleted and newly created -- `/home/pi/pialert` will contain the whole repository (downloaded by `install/install.debian.sh`) +- `/app` directory will be deleted and newly created +- `/app` will contain the whole repository (downloaded by `install/install.debian.sh`) - The default NGINX site `/etc/nginx/sites-enabled/default` will be disabled (sym-link deleted or backed up to `sites-available`) -- `/var/www/html/pialert` directory will be deleted and newly created -- `/etc/nginx/conf.d/pialert.conf` will be sym-linked to `/home/pi/pialert/install/netalertx.debian.conf` +- `/var/www/html/netalertx` directory will be deleted and newly created +- `/etc/nginx/conf.d/netalertx.conf` will be sym-linked to `/app/install/netalertx.debian.conf` - Some files (IEEE device vendors info, ...) will be created in the directory where the installation script is executed ## Limitations -- No system service is provided. NetAlertX must be started using `/home/pi/pialert/install/start.debian.sh`. +- No system service is provided. NetAlertX must be started using `/app/install/start.debian.sh`. - No checks for other running software is done. - Only tested to work on Debian Bookworm (Debian 12). - **EXPERIMENTAL** and not recommended way to install NetAlertX. diff --git a/docs/ICONS.md b/docs/ICONS.md index d0546ab4..989ecd2d 100755 --- a/docs/ICONS.md +++ b/docs/ICONS.md @@ -45,7 +45,7 @@ Copying the HTML code from [Font Awesome](https://fontawesome.com/search?o=r&m=f If you own the premium package of Font Awesome icons you can mount it in your Docker container the following way: ```yaml -/font-awesome:/home/pi/pialert/front/lib/AdminLTE/bower_components/font-awesome:ro +/font-awesome:/app/front/lib/AdminLTE/bower_components/font-awesome:ro ``` You can use the full range of Font Awesome icons afterwards. diff --git a/docs/MIGRATION.md b/docs/MIGRATION.md new file mode 100755 index 00000000..08ebcdc2 --- /dev/null +++ b/docs/MIGRATION.md @@ -0,0 +1,119 @@ +# Migration form PiAlert to NetAlertX + +The migration should be pretty straightforward. The application installation folder in the docker container has changed from `/home/pi/pialert` to `/app`. That means the new mount points are: + + | Old mount point | New mount point | + |----------------------|---------------| + | `/home/pi/pialert/config` | `/app/config` | + | `/home/pi/pialert/db` | `/app/db` | + + + If you were mounting files directly, please note the file names have changed: + + | Old file name | New file name | + |----------------------|---------------| + | `pialert.conf` | `app.conf` | + | `pialert.db` | `app.db` | + + +> [!NOTE] +> The application uses symlinks linking the old locations to the new ones, so data loss should not occur. [Backup strategies](https://github.com/jokob-sk/NetAlertX/blob/main/docs/BACKUPS.md) are still recommended to backup your setup. + +In summary, docker file mount locations in your `docker-compose.yml` or docker run command have changed. Examples follow. + + +## Example 1: Mapping folders + +### Old docker-compose.yml + +```yaml +version: "3" +services: + pialert: + container_name: pialert + # use the below line if you want to test the latest dev image + # image: "jokobsk/netalertx-dev:latest" + image: "jokobsk/pialert:latest" + network_mode: "host" + restart: unless-stopped + volumes: + - local/path/config:/home/pi/pialert/config + - local/path/db:/home/pi/pialert/db + # (optional) useful for debugging if you have issues setting up the container + - local/path/logs:/home/pi/pialert/front/log + environment: + - TZ=Europe/Berlin + - PORT=20211 +``` + +### New docker-compose.yml + +```yaml +version: "3" +services: + netalertx: # ⚠🟡 This has changed (optional) 🟡⚠ + container_name: netalertx # ⚠🟡 This has changed (optional) 🟡⚠ + # use the below line if you want to test the latest dev image + # image: "jokobsk/netalertx-dev:latest" + image: "jokobsk/netalertx:latest" # ⚠🔺🟡 This has changed (optional/required in future) 🟡🔺⚠ + network_mode: "host" + restart: unless-stopped + volumes: + - local/path/config:/app/config # ⚠🔺 This has changed (required) 🔺⚠ + - local/path/db:/app/db # ⚠🔺 This has changed (required) 🔺⚠ + # (optional) useful for debugging if you have issues setting up the container + - local/path/logs:/app/front/log # ⚠🟡 This has changed (optional) 🟡⚠ + environment: + - TZ=Europe/Berlin + - PORT=20211 +``` + + +## Example 2: Mapping files + +> [!NOTE] +> The recommendation is to map folders as in Example 1, map files directly only when needed. + +### Old docker-compose.yml + +```yaml +version: "3" +services: + pialert: + container_name: pialert + # use the below line if you want to test the latest dev image + # image: "jokobsk/netalertx-dev:latest" + image: "jokobsk/pialert:latest" + network_mode: "host" + restart: unless-stopped + volumes: + - local/path/config/pialert.conf:/home/pi/pialert/config/pialert.conf + - local/path/db/pialert.db:/home/pi/pialert/db/pialert.db + # (optional) useful for debugging if you have issues setting up the container + - local/path/logs:/home/pi/pialert/front/log + environment: + - TZ=Europe/Berlin + - PORT=20211 +``` + +### New docker-compose.yml + +```yaml +version: "3" +services: + netalertx: # ⚠🟡 This has changed (optional) 🟡⚠ + container_name: netalertx # ⚠🟡 This has changed (optional) 🟡⚠ + # use the below line if you want to test the latest dev image + # image: "jokobsk/netalertx-dev:latest" + image: "jokobsk/netalertx:latest" # ⚠🔺🟡 This has changed (optional/required in future) 🟡🔺⚠ + network_mode: "host" + restart: unless-stopped + volumes: + - local/path/config/app.conf:/app/config/app.conf # ⚠🔺 This has changed (required) 🔺⚠ + - local/path/db/app.db:/app/db/app.db # ⚠🔺 This has changed (required) 🔺⚠ + # (optional) useful for debugging if you have issues setting up the container + - local/path/logs:/app/front/log # ⚠🟡 This has changed (optional) 🟡⚠ + environment: + - TZ=Europe/Berlin + - PORT=20211 +``` diff --git a/docs/README.md b/docs/README.md index 2e7b058f..a909a2ed 100755 --- a/docs/README.md +++ b/docs/README.md @@ -63,7 +63,7 @@ There is also an in-app Help / FAQ section that should be answering frequently a #### 👩‍💻For Developers👨‍💻 -- [APP code structure](/netalertx/README.md) +- [Server APP code structure](/server/README.md) - [Database structure](/docs/DATABASE.md) - [API endpoints details](/docs/API.md) - [Plugin system details and how to develop your own](/front/plugins/README.md) @@ -122,7 +122,7 @@ Suggested test cases: Some additional context: -* Permanent settings/config is stored in the `pialert.conf` file +* Permanent settings/config is stored in the `app.conf` file * Currently temporary (session?) settings are stored in the `Parameters` DB table as key-value pairs. This table is wiped during a container rebuild/restart and its values are re-initialized from cookies/session data from the browser. ## 🐛 Submitting an issue or bug diff --git a/docs/REVERSE_DNS.md b/docs/REVERSE_DNS.md index d7bc1aad..07bab836 100755 --- a/docs/REVERSE_DNS.md +++ b/docs/REVERSE_DNS.md @@ -41,9 +41,9 @@ services: image: "jokobsk/netalertx:latest" restart: unless-stopped volumes: - - ./config/pialert.conf:/home/pi/pialert/config/pialert.conf - - ./pialert_db:/home/pi/pialert/db - - ./log:/home/pi/pialert/front/log + - ./config/app.conf:/app/config/app.conf + - ./db:/app/db + - ./log:/app/front/log - ./config/resolv.conf:/etc/resolv.conf # Mapping the /resolv.conf file for better name resolution environment: - TZ=Europe/Berlin diff --git a/docs/REVERSE_PROXY.md b/docs/REVERSE_PROXY.md index 1233cbe6..1e218703 100755 --- a/docs/REVERSE_PROXY.md +++ b/docs/REVERSE_PROXY.md @@ -472,9 +472,9 @@ Mapping the updated file (on the local filesystem at `/appl/docker/netalertx/def ```bash docker run -d --rm --network=host \ --name=netalertx \ - -v /appl/docker/pialert/config:/home/pi/pialert/config \ - -v /appl/docker/pialert/db:/home/pi/pialert/db \ - -v /appl/docker/pialert/default:/etc/nginx/sites-available/default \ + -v /appl/docker/netalertx/config:/app/config \ + -v /appl/docker/netalertx/db:/app/db \ + -v /appl/docker/netalertx/default:/etc/nginx/sites-available/default \ -e TZ=Europe/Amsterdam \ -e PORT=20211 \ jokobsk/netalertx:latest diff --git a/docs/SETTINGS_SYSTEM.md b/docs/SETTINGS_SYSTEM.md index 1207a6c1..128642b8 100755 --- a/docs/SETTINGS_SYSTEM.md +++ b/docs/SETTINGS_SYSTEM.md @@ -6,11 +6,11 @@ If you are a user of the app, settings have a detailed description in the _Setti ### 🛢 Data storage -The source of truth for user-defined values is the `pialert.conf` file. Editing the file makes the App overwrite values in the `Settings` database table and in the `table_settings.json` file. +The source of truth for user-defined values is the `app.conf` file. Editing the file makes the App overwrite values in the `Settings` database table and in the `table_settings.json` file. #### Settings database table -The `Settings` database table contains settings for App run purposes. The table is recreated every time the App restarts. The settings are loaded from the source-of-truth, that is the `pialert.conf` file. A high-level overview on the database structure can be found in the [database documentation](/docs/DATABASE.md). +The `Settings` database table contains settings for App run purposes. The table is recreated every time the App restarts. The settings are loaded from the source-of-truth, that is the `app.conf` file. A high-level overview on the database structure can be found in the [database documentation](/docs/DATABASE.md). #### table_settings.json @@ -20,27 +20,27 @@ This is the [API endpoint](/docs/API.md) that reflects the state of the `Setting The json file is also cached on the client-side local storage of the browser. -#### pialert.conf +#### app.conf > [!NOTE] > This is the source of truth for settings. User-defined values in this files always override default values specified in the Plugin definition. -The App generates two `pialert.conf` entries for every setting (Since version 23.8+). One entry is the setting value, the second is the `__metadata` associated with the setting. This `__metadata` entry contains the full setting definition in JSON format. Currently unused, but intended to be used in future to extend the Settings system. +The App generates two `app.conf` entries for every setting (Since version 23.8+). One entry is the setting value, the second is the `__metadata` associated with the setting. This `__metadata` entry contains the full setting definition in JSON format. Currently unused, but intended to be used in future to extend the Settings system. #### Plugin settings > [!NOTE] > This is the preferred way adding settings going forward. I'll be likely migrating all app settings into plugin-based settings. -Plugin settings are loaded dynamically from the `config.json` of individual plugins. If a setting isn't defined in the `pialert.conf` file, it is initialized via the `default_value` property of a setting from the `config.json` file. Check the [Plugins documentation](https://github.com/jokob-sk/NetAlertX/blob/main/front/plugins/README.md#-setting-object-structure), section `⚙ Setting object structure` for details on the structure of the setting. +Plugin settings are loaded dynamically from the `config.json` of individual plugins. If a setting isn't defined in the `app.conf` file, it is initialized via the `default_value` property of a setting from the `config.json` file. Check the [Plugins documentation](https://github.com/jokob-sk/NetAlertX/blob/main/front/plugins/README.md#-setting-object-structure), section `⚙ Setting object structure` for details on the structure of the setting. ![Screen 1][screen1] ### Settings Process flow -The process flow is mostly managed by the [initialise.py](/pialert/initialise.py) file. +The process flow is mostly managed by the [initialise.py](/server/initialise.py) file. -The script is responsible for reading user-defined values from a configuration file (`pialert.conf`), initializing settings, and importing them into a database. It also handles plugins and their configurations. +The script is responsible for reading user-defined values from a configuration file (`app.conf`), initializing settings, and importing them into a database. It also handles plugins and their configurations. Here's a high-level description of the code: @@ -49,7 +49,7 @@ Here's a high-level description of the code: - `importConfigs`: This function is the main entry point of the script. It imports user settings from a configuration file, processes them, and saves them to the database. - - `read_config_file`: This function reads the configuration file (`pialert.conf`) and returns a dictionary containing the key-value pairs from the file. + - `read_config_file`: This function reads the configuration file (`app.conf`) and returns a dictionary containing the key-value pairs from the file. 2. Importing Configuration and Initializing Settings: - The `importConfigs` function starts by checking the modification time of the configuration file to determine if it needs to be re-imported. If the file has not been modified since the last import, the function skips the import process. diff --git a/docs/SUBNETS.md b/docs/SUBNETS.md index ae2fb63a..24c7db0d 100755 --- a/docs/SUBNETS.md +++ b/docs/SUBNETS.md @@ -8,7 +8,7 @@ You need to specify the network interface and the network mask. You can also con ## Examples > [!NOTE] -> Please use the UI to configure settings as that ensures that the config file is in the correct format. Edit `pialert.conf` directly only when really necessary. +> Please use the UI to configure settings as that ensures that the config file is in the correct format. Edit `app.conf` directly only when really necessary. > ![settings](/front/plugins/arp_scan/arp-scan-settings.png) * Examples for one and two subnets (❗ Note the `['...', '...']` format): diff --git a/docs/VERSIONS.md b/docs/VERSIONS.md index 40614a01..12185523 100755 --- a/docs/VERSIONS.md +++ b/docs/VERSIONS.md @@ -22,4 +22,4 @@ For a comparison, this is how the UI looks like if you are on the latest stable ## Implementation details -During build a [/home/pi/pialert/front/buildtimestamp.txt](https://github.com/jokob-sk/NetAlertX/blob/092797e75ccfa8359444ad149e727358ac4da05f/Dockerfile#L44) file is created. The app then periodically checks if a new release is available with a newer timestamp in GitHub's rest-based JSON endpoint (check the `def isNewVersion():` method in `pialert.py` for details). \ No newline at end of file +During build a [/app/front/buildtimestamp.txt](https://github.com/jokob-sk/NetAlertX/blob/092797e75ccfa8359444ad149e727358ac4da05f/Dockerfile#L44) file is created. The app then periodically checks if a new release is available with a newer timestamp in GitHub's rest-based JSON endpoint (check the `def isNewVersion():` method for details). \ No newline at end of file diff --git a/docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Configuration.png b/docs/img/HOME_ASISSTANT/HomeAssistant-Configuration.png similarity index 100% rename from docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Configuration.png rename to docs/img/HOME_ASISSTANT/HomeAssistant-Configuration.png diff --git a/docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Device-Presence-History.png b/docs/img/HOME_ASISSTANT/HomeAssistant-Device-Presence-History.png similarity index 100% rename from docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Device-Presence-History.png rename to docs/img/HOME_ASISSTANT/HomeAssistant-Device-Presence-History.png diff --git a/docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Device-as-Sensors.png b/docs/img/HOME_ASISSTANT/HomeAssistant-Device-as-Sensors.png similarity index 100% rename from docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Device-as-Sensors.png rename to docs/img/HOME_ASISSTANT/HomeAssistant-Device-as-Sensors.png diff --git a/docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Devices-List.png b/docs/img/HOME_ASISSTANT/HomeAssistant-Devices-List.png similarity index 100% rename from docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Devices-List.png rename to docs/img/HOME_ASISSTANT/HomeAssistant-Devices-List.png diff --git a/docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Overview-Card.png b/docs/img/HOME_ASISSTANT/HomeAssistant-Overview-Card.png similarity index 100% rename from docs/img/HOME_ASISSTANT/PiAlert-HomeAssistant-Overview-Card.png rename to docs/img/HOME_ASISSTANT/HomeAssistant-Overview-Card.png diff --git a/front/css/pialert.css b/front/css/app.css similarity index 93% rename from front/css/pialert.css rename to front/css/app.css index d31ebe29..0669546f 100755 --- a/front/css/pialert.css +++ b/front/css/app.css @@ -2,7 +2,7 @@ # NetAlertX # Open Source Network Guard / WIFI & LAN intrusion detector # -# pialert.css - Front module. CSS styles +# app.css - Front module. CSS styles #------------------------------------------------------------------------------- # Puche 2021 / 2022+ jokob jokob@duck.com GNU GPLv3 ----------------------------------------------------------------------------- */ @@ -151,10 +151,26 @@ /* ----------------------------------------------------------------------------- Customized Main Menu ----------------------------------------------------------------------------- */ + +.NetAlertX-logo +{ + border-color:transparent !important; + height: 50px !important; + width: 50px !important; + margin-top:15px !important; + border-radius: 1px !important; +} + .main-header .logo { width: 150px; } + +.navbar-nav > .user-menu .user-image +{ + margin-top: 3px; +} + .main-header>.navbar { margin-left: 150px; } @@ -487,6 +503,73 @@ display: none; } +/* ticker setup */ +.ticker-li +{ + width: 40%; +} + +#ticker_announcement_plc +{ + + /* height: 50px; */ + overflow: hidden; + width: 65%; + position: absolute; + left: 40px; + top: 15px; +} + +@media (max-width: 1500px) and (min-width: 1101px) { + #ticker_announcement_plc { + width: 45%; /* Width for screen sizes between 1100px and 730px */ + } +} + +@media (max-width: 1100px) and (min-width: 801px) { + #ticker_announcement_plc { + width: 30%; /* Width for screen sizes between 1100px and 730px */ + } +} + +@media (max-width: 800px) { + #ticker_announcement_plc { + width: 25%; /* Width for screen sizes less than 730px */ + } +} + +#ticker-message a +{ + color:#3200bb; + text-decoration: underline; +} + +#ticker-message +{ + color:#FFFFFF; +} + +#ticker_announcement_plc:hover .ticker_announcement { + animation-play-state: paused; + } + +@keyframes marquee { + 0% { + transform: translateX(100%); + } + 100% { + transform: translateX(-150%); + } + } + +.ticker_announcement { + text-align: center; + white-space: nowrap; + animation: marquee 20s linear infinite; + cursor: default; +} + +/* maintenance buttons */ .dbtools-button { display: inline-block; diff --git a/front/devices.php b/front/devices.php index acacf7e5..7ef18f8b 100755 --- a/front/devices.php +++ b/front/devices.php @@ -19,8 +19,8 @@ // check permissions - $dbPath = "../db/pialert.db"; - $confPath = "../config/pialert.conf"; + $dbPath = "../db/app.db"; + $confPath = "../config/app.conf"; checkPermissions([$dbPath, $confPath]); ?> diff --git a/front/img/NetAlertX_black.png b/front/img/NetAlertX_black.png new file mode 100755 index 0000000000000000000000000000000000000000..8999fb373a7b0beaa6681fa10be9bca2be135a72 GIT binary patch literal 20279 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 literal 0 HcmV?d00001 diff --git a/front/img/NetAlertX_white.png b/front/img/NetAlertX_white.png new file mode 100755 index 0000000000000000000000000000000000000000..2d8c3133ea4079d91d840b90b59ead0329aae1a1 GIT binary patch literal 18314 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Ǹ*jBA*XiK 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

-


/home/pi/pialert/back/pialert-cli set_password

+


/app/back/pialert-cli set_password

diff --git a/front/js/common.js b/front/js/common.js index 3706d3ef..beb7d818 100755 --- a/front/js/common.js +++ b/front/js/common.js @@ -409,6 +409,26 @@ function showMessage (textMessage="") { } } +// ----------------------------------------------------------------------------- +function showTickerAnnouncement(textMessage = "") { + if (textMessage.toLowerCase().includes("error")) { + // show error + alert(textMessage); + } else { + // show permanent notification + $("#ticker-message").html(textMessage); + $("#tickerAnnouncement").removeClass("myhidden"); + // Move the tickerAnnouncement element to ticker_announcement_plc + $("#tickerAnnouncement").appendTo("#ticker_announcement_plc"); + + // var $ticker = $('#tickerAnnouncement'); + // var $tickerMessage = $('#ticker-message'); + + // Clone the ticker message to create continuous scrolling effect + // $tickerMessage.clone().appendTo($ticker); + } +} + // ----------------------------------------------------------------------------- // String utilities @@ -1154,7 +1174,7 @@ function arraysContainSameValues(arr1, arr2) { // ----------------------------------------------------------------------------- // Define a unique key for storing the flag in sessionStorage -var sessionStorageKey = "myScriptExecuted_pialert_common"; +var sessionStorageKey = "myScriptExecuted_common_js"; // ----------------------------------------------------------------------------- // Clearing all the caches @@ -1202,7 +1222,7 @@ $.get('api/app_state.json?nocache=' + Date.now(), function(appState) { // Display spinner and reload page if not yet initialized function handleFirstLoad(callback) { - if(!pialert_common_init) + if(!app_common_init) { setTimeout(function() { @@ -1214,7 +1234,7 @@ function handleFirstLoad(callback) // ----------------------------------------------------------------------------- // Check if the code has been executed before by checking sessionStorage -var pialert_common_init = sessionStorage.getItem(sessionStorageKey) === "true"; +var app_common_init = sessionStorage.getItem(sessionStorageKey) === "true"; var completedCalls = [] var completedCalls_final = ['cacheSettings', 'cacheStrings', 'cacheDevices']; diff --git a/front/maintenance.php b/front/maintenance.php index b72d65c3..a57eb46a 100755 --- a/front/maintenance.php +++ b/front/maintenance.php @@ -57,7 +57,7 @@ $pia_installed_skins = array('skin-black-light', // Size and last mod of DB ------------------------------------------------------ -$pia_db = str_replace('front', 'db', getcwd()).'/pialert.db'; +$pia_db = str_replace('front', 'db', getcwd()).'/app.db'; $pia_db_size = number_format((filesize($pia_db) / 1000000),2,",",".") . ' MB'; $pia_db_mod = date ("F d Y H:i:s", filemtime($pia_db)); @@ -67,7 +67,7 @@ $pia_db_mod = date ("F d Y H:i:s", filemtime($pia_db)); $Pia_Archive_Path = str_replace('front', 'db', getcwd()).'/'; $Pia_Archive_count = 0; $Pia_Archive_diskusage = 0; -$files = glob($Pia_Archive_Path."pialertdb_*.zip"); +$files = glob($Pia_Archive_Path."appdb_*.zip"); if ($files){ $Pia_Archive_count = count($files); } @@ -78,7 +78,7 @@ $Pia_Archive_diskusage = number_format(($Pia_Archive_diskusage / 1000000),2,",", // Find latest Backup for restore ----------------------------------------------- -$latestfiles = glob($Pia_Archive_Path."pialertdb_*.zip"); +$latestfiles = glob($Pia_Archive_Path."appdb_*.zip"); natsort($latestfiles); $latestfiles = array_reverse($latestfiles,False); @@ -403,14 +403,14 @@ $db->close();
-
-
pialert_front.log
- +
app_front.log
+
- +
-
-
pialert.php_errors.log
- +
app.php_errors.log
+
- +
@@ -792,7 +792,7 @@ function scrollDown() // Check if the parent
  • is active if (elementToCheck.parent().hasClass("active")) { { - var areaIDs = ['pialert_log', 'pialert_front_log', 'IP_changes_log', 'stdout_log', 'stderr_log', 'pialert_pholus_log', 'pialert_pholus_lastrun_log', 'pialert_php_log']; + var areaIDs = ['app_log', 'app_front_log', 'IP_changes_log', 'stdout_log', 'stderr_log', 'app_pholus_log', 'app_pholus_lastrun_log', 'app_php_log']; for (let i = 0; i < areaIDs.length; i++) { diff --git a/front/php/server/db.php b/front/php/server/db.php index 67d9f249..40e7b21f 100755 --- a/front/php/server/db.php +++ b/front/php/server/db.php @@ -10,7 +10,7 @@ //------------------------------------------------------------------------------ // DB File Path -$DBFILE = dirname(__FILE__).'/../../../db/pialert.db'; +$DBFILE = dirname(__FILE__).'/../../../db/app.db'; //------------------------------------------------------------------------------ // Connect DB diff --git a/front/php/server/devices.php b/front/php/server/devices.php index a0056f35..15439930 100755 --- a/front/php/server/devices.php +++ b/front/php/server/devices.php @@ -331,7 +331,7 @@ function deleteActHistory() { //------------------------------------------------------------------------------ function PiaBackupDBtoArchive() { // prepare fast Backup - $dbfilename = 'pialert.db'; + $dbfilename = 'app.db'; $file = '../../../db/'.$dbfilename; $newfile = '../../../db/'.$dbfilename.'.latestbackup'; @@ -340,7 +340,7 @@ function PiaBackupDBtoArchive() { echo lang('BackDevices_Backup_CopError'); } else { // Create archive with actual date - $Pia_Archive_Name = 'pialertdb_'.date("Ymd_His").'.zip'; + $Pia_Archive_Name = 'appdb_'.date("Ymd_His").'.zip'; $Pia_Archive_Path = '../../../db/'; exec('zip -j '.$Pia_Archive_Path.$Pia_Archive_Name.' ../../../db/'.$dbfilename, $output); // chheck if archive exists @@ -389,7 +389,7 @@ function PiaPurgeDBBackups() { $Pia_Archive_Path = '../../../db'; $Pia_Backupfiles = array(); - $files = array_diff(scandir($Pia_Archive_Path, SCANDIR_SORT_DESCENDING), array('.', '..', $dbfilename, 'pialertdb-reset.zip')); + $files = array_diff(scandir($Pia_Archive_Path, SCANDIR_SORT_DESCENDING), array('.', '..', $dbfilename, 'netalertxdb-reset.zip')); foreach ($files as &$item) { diff --git a/front/php/server/util.php b/front/php/server/util.php index 83af9b6a..656745f4 100755 --- a/front/php/server/util.php +++ b/front/php/server/util.php @@ -250,7 +250,7 @@ function cleanLog($logFile) $path = ""; - $allowedFiles = ['pialert.log', 'pialert_front.log', 'IP_changes.log', 'stdout.log', 'stderr.log', "pialert_pholus_lastrun.log", 'pialert.php_errors.log']; + $allowedFiles = ['app.log', 'app_front.log', 'IP_changes.log', 'stdout.log', 'stderr.log', "pholus_lastrun.log", 'app.php_errors.log']; if(in_array($logFile, $allowedFiles)) { @@ -387,7 +387,7 @@ function saveSettings() // Replace the original file with the temporary file rename($tempConfPath, $fullConfPath); - displayMessage("
    Settings saved to the pialert.conf file.

    A time-stamped backup of the previous file created.

    Reloading...
    ", + displayMessage("
    Settings saved to the app.conf file.

    A time-stamped backup of the previous file created.

    Reloading...
    ", FALSE, TRUE, TRUE, TRUE); } diff --git a/front/php/templates/build.php b/front/php/templates/build.php index 0ab9f1e2..ed352c38 100755 --- a/front/php/templates/build.php +++ b/front/php/templates/build.php @@ -11,7 +11,7 @@ # cvc90 2023 https://github.com/cvc90 GNU GPLv3 # #---------------------------------------------------------------------------------# - $file = "/home/pi/pialert/front/buildtimestamp.txt"; + $file = "/app/front/buildtimestamp.txt"; if (file_exists($file)) { echo date("Y-m-d", ((int)file_get_contents($file))); } diff --git a/front/php/templates/footer.php b/front/php/templates/footer.php index 16e663be..46a0e76c 100755 --- a/front/php/templates/footer.php +++ b/front/php/templates/footer.php @@ -58,5 +58,9 @@ + + diff --git a/front/php/templates/header.php b/front/php/templates/header.php index 10d6aa0b..b6249fce 100755 --- a/front/php/templates/header.php +++ b/front/php/templates/header.php @@ -54,7 +54,7 @@ require dirname(__FILE__).'/security.php'; - + @@ -66,7 +66,7 @@ require dirname(__FILE__).'/security.php'; - + @@ -111,19 +111,23 @@ if ($ENABLED_DARKMODE === True) { + onLoad="show_pia_servertime();" >
    +
    + + + + +
    + + +
    + +
    + + +
    +
    Announcement message
    +
    + diff --git a/front/php/templates/security.php b/front/php/templates/security.php index d0cb62eb..4a529178 100755 --- a/front/php/templates/security.php +++ b/front/php/templates/security.php @@ -24,7 +24,7 @@ if(array_search('action', $_REQUEST) != FALSE) // ################################################## // ## Login Processing start // ################################################## -$config_file = "../config/pialert.conf"; +$config_file = "../config/app.conf"; $config_file_lines = file($config_file); $CookieSaveLoginName = "NetAlertX_SaveLogin"; diff --git a/front/php/templates/skinUI.php b/front/php/templates/skinUI.php index d72ccc5a..291fe7a2 100755 --- a/front/php/templates/skinUI.php +++ b/front/php/templates/skinUI.php @@ -12,7 +12,7 @@ if( isset($_COOKIE['Front_Dark_Mode_Enabled'])) $ENABLED_DARKMODE = False; } -foreach (glob("/home/pi/pialert/db/setting_skin*") as $filename) { +foreach (glob("/app/db/setting_skin*") as $filename) { $pia_skin_selected = str_replace('setting_','',basename($filename)); } if (isset($pia_skin_selected) == FALSE or (strlen($pia_skin_selected) == 0)) {$pia_skin_selected = 'skin-blue';} diff --git a/front/php/templates/timezone.php b/front/php/templates/timezone.php index 5f754cd2..26416572 100755 --- a/front/php/templates/timezone.php +++ b/front/php/templates/timezone.php @@ -5,9 +5,9 @@ // ################################### $configFolderPath = dirname(__FILE__)."/../../../config/"; -$config_file = "pialert.conf"; +$config_file = "app.conf"; $logFolderPath = dirname(__FILE__)."/../../log/"; -$log_file = "pialert_front.log"; +$log_file = "app_front.log"; $fullConfPath = $configFolderPath.$config_file; diff --git a/front/php/templates/version.php b/front/php/templates/version.php index 5afe352f..f383264e 100755 --- a/front/php/templates/version.php +++ b/front/php/templates/version.php @@ -11,7 +11,7 @@ # cvc90 2023 https://github.com/cvc90 GNU GPLv3 # #---------------------------------------------------------------------------------# - $filename = "/home/pi/pialert/.VERSION"; + $filename = "/app/.VERSION"; if(file_exists($filename)) { echo file_get_contents($filename); } diff --git a/front/plugins/README.md b/front/plugins/README.md index b06f90d7..bfed8ea8 100755 --- a/front/plugins/README.md +++ b/front/plugins/README.md @@ -74,7 +74,7 @@ Example use cases for plugins could be: * Creating a script to create FAKE devices based on user input via custom settings * ...at this point the limitation is mostly the creativity rather than the capability (there might be edge cases and a need to support more form controls for user input off custom settings, but you probably get the idea) -If you wish to develop a plugin, please check the existing plugin structure. Once the settings are saved by the user they need to be removed from the `pialert.conf` file manually if you want to re-initialize them from the `config.json` of the plugin. +If you wish to develop a plugin, please check the existing plugin structure. Once the settings are saved by the user they need to be removed from the `app.conf` file manually if you want to re-initialize them from the `config.json` of the plugin. Again, please read the below carefully if you'd like to contribute with a plugin yourself. This documentation file might be outdated, so double-check the sample plugins as well. @@ -141,16 +141,16 @@ Currently, these data sources are supported (valid `data_source` value). | Name | `data_source` value | Needs to return a "table"* | Overview (more details on this page below) | |----------------------|----------------------|----------------------|----------------------| | Script | `script` | no | Executes any linux command in the `CMD` setting. | -| NetAlertX DB query | `pialert-db-query` | yes | Executes a SQL query on the NetAlertX database in the `CMD` setting. | +| NetAlertX DB query | `app-db-query` | yes | Executes a SQL query on the NetAlertX database in the `CMD` setting. | | Template | `template` | no | Used to generate internal settings, such as default values. | | External SQLite DB query | `sqlite-db-query` | yes | Executes a SQL query from the `CMD` setting on an external SQLite database mapped in the `DB_PATH` setting. | | Plugin type | `plugin_type` | no | Specifies the type of the plugin and in which section the Plugin settings are displayed ( one of `general/system/scanner/other/publisher` ). | -> * "Needs to return a "table" means that the application expects a `last_result.log` file with some results. It's not a blocker, however warnings in the `pialert.log` might be logged. +> * "Needs to return a "table" means that the application expects a `last_result.log` file with some results. It's not a blocker, however warnings in the `app.log` might be logged. > 🔎Example >```json ->"data_source": "pialert-db-query" +>"data_source": "app-db-query" >``` If you want to display plugin objects or import devices into the app, data sources have to return a "table" of the exact structure as outlined above. @@ -202,11 +202,11 @@ https://www.google.com|null|2023-01-02 15:56:30|200|0.7898| ``` -### "data_source": "pialert-db-query" +### "data_source": "app-db-query" -If the `data_source` is set to `pialert-db-query`, the `CMD` setting needs to contain a SQL query rendering the columns as defined in the "Column order and values" section above. The order of columns is important. +If the `data_source` is set to `app-db-query`, the `CMD` setting needs to contain a SQL query rendering the columns as defined in the "Column order and values" section above. The order of columns is important. -This SQL query is executed on the `pialert.db` SQLite database file. +This SQL query is executed on the `app.db` SQLite database file. > 🔎Example > @@ -281,7 +281,7 @@ For example for `PIHOLE` (`"unique_prefix": "PIHOLE"`) it is `EXTERNAL_PIHOLE.`. > ... >``` -The actual SQL query you want to execute is then stored as a `CMD` setting, similar to a Plugin of the `pialert-db-query` plugin type. The format has to adhere to the format outlined in the "Column order and values" section above. +The actual SQL query you want to execute is then stored as a `CMD` setting, similar to a Plugin of the `app-db-query` plugin type. The format has to adhere to the format outlined in the "Column order and values" section above. > 🔎Example > @@ -448,7 +448,7 @@ The `params` array in the `config.json` is used to enable the user to change the > Passing user-defined settings to a command. Let's say, you want to have a script, that is called with a user-defined parameter called `urls`: > > ```bash -> root@server# python3 /home/pi/pialert/front/plugins/website_monitor/script.py urls=https://google.com,https://duck.com +> root@server# python3 /app/front/plugins/website_monitor/script.py urls=https://google.com,https://duck.com > ``` * You can allow the user to add URLs to a setting with the `function` property set to a custom name, such as `urls_to_check` (this is not a reserved name from the section "Supported settings `function` values" below). @@ -469,7 +469,7 @@ The `params` array in the `config.json` is used to enable the user to change the { "function": "CMD", "type": "text", - "default_value":"python3 /home/pi/pialert/front/plugins/website_monitor/script.py urls={urls}", + "default_value":"python3 /app/front/plugins/website_monitor/script.py urls={urls}", "options": [], "localized": ["name", "description"], "name" : [{ @@ -483,7 +483,7 @@ The `params` array in the `config.json` is used to enable the user to change the } ``` -During script execution, the app will take the command `"python3 /home/pi/pialert/front/plugins/website_monitor/script.py urls={urls}"`, take the `{urls}` wildcard and replace it with the value from the `WEBMON_urls_to_check` setting. This is because: +During script execution, the app will take the command `"python3 /app/front/plugins/website_monitor/script.py urls={urls}"`, take the `{urls}` wildcard and replace it with the value from the `WEBMON_urls_to_check` setting. This is because: 1. The app checks the `params` entries 2. It finds `"name" : "urls"` @@ -495,9 +495,9 @@ During script execution, the app will take the command `"python3 /home/pi/pialer - let's say the setting with the code name `WEBMON_urls_to_check` contains 2 values entered by the user: - `WEBMON_urls_to_check=['https://google.com','https://duck.com']` 6. The app takes the value from `WEBMON_urls_to_check` and replaces the `{urls}` wildcard in the setting where `"function":"CMD"`, so you go from: - - `python3 /home/pi/pialert/front/plugins/website_monitor/script.py urls={urls}` + - `python3 /app/front/plugins/website_monitor/script.py urls={urls}` - to - - `python3 /home/pi/pialert/front/plugins/website_monitor/script.py urls=https://google.com,https://duck.com` + - `python3 /app/front/plugins/website_monitor/script.py urls=https://google.com,https://duck.com` Below are some general additional notes, when defining `params`: @@ -586,7 +586,7 @@ You can have any `"function": "my_custom_name"` custom name, however, the ones l | | - "always_after_scan" - run always after a scan is finished | | | - "before_name_updates" - run before device names are updated (for name discovery plugins) | | | - "on_new_device" - run when a new device is detected | -| | - "before_config_save" - run before the config is marked as saved. Useful if your plugin needs to modify the `pialert.conf` file. | +| | - "before_config_save" - run before the config is marked as saved. Useful if your plugin needs to modify the `app.conf` file. | | `RUN_SCHD` | (required if you include "schedule" in the above `RUN` function) Cron-like scheduling is used if the `RUN` setting is set to `schedule`. | | `CMD` | (required) Specifies the command that should be executed. | | `API_SQL` | (not implemented) Generates a `table_` + `code_name` + `.json` file as per [API docs](https://github.com/jokob-sk/NetAlertX/blob/main/docs/API.md). | diff --git a/front/plugins/_publisher_apprise/apprise.py b/front/plugins/_publisher_apprise/apprise.py index f8ff0842..8542c6df 100755 --- a/front/plugins/_publisher_apprise/apprise.py +++ b/front/plugins/_publisher_apprise/apprise.py @@ -9,7 +9,8 @@ import sys from datetime import datetime # Register NetAlertX directories -sys.path.extend(["/home/pi/pialert/front/plugins", "/home/pi/pialert/netalertx"]) +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) import conf from const import confFileName diff --git a/front/plugins/_publisher_apprise/config.json b/front/plugins/_publisher_apprise/config.json index cdfb39ea..95c336f7 100755 --- a/front/plugins/_publisher_apprise/config.json +++ b/front/plugins/_publisher_apprise/config.json @@ -287,7 +287,7 @@ { "function": "CMD", "type": "readonly", - "default_value":"python3 /home/pi/pialert/front/plugins/_publisher_apprise/apprise.py", + "default_value":"python3 /app/front/plugins/_publisher_apprise/apprise.py", "options": [], "localized": ["name", "description"], "name" : [{ diff --git a/front/plugins/_publisher_email/config.json b/front/plugins/_publisher_email/config.json index 5d1e66be..f37d193f 100755 --- a/front/plugins/_publisher_email/config.json +++ b/front/plugins/_publisher_email/config.json @@ -354,7 +354,7 @@ { "function": "CMD", "type": "readonly", - "default_value": "python3 /home/pi/pialert/front/plugins/_publisher_email/email_smtp.py", + "default_value": "python3 /app/front/plugins/_publisher_email/email_smtp.py", "options": [], "localized": [ "name", diff --git a/front/plugins/_publisher_email/email_smtp.py b/front/plugins/_publisher_email/email_smtp.py index cf7131a8..a098b59c 100755 --- a/front/plugins/_publisher_email/email_smtp.py +++ b/front/plugins/_publisher_email/email_smtp.py @@ -15,7 +15,9 @@ import smtplib import socket import ssl -sys.path.extend(["/home/pi/pialert/front/plugins", "/home/pi/pialert/netalertx"]) +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) # NetAlertX modules import conf @@ -93,7 +95,7 @@ def send(pHTML, pText): mylog('debug', [f'[{pluginName}] SMTP_REPORT_TO: {hide_email(str(get_setting_value("SMTP_REPORT_TO")))} SMTP_USER: {hide_email(str(get_setting_value("SMTP_USER")))}']) - subject, from_email, to_email, message_html, message_text = sanitize_email_content('NetAlertX Report', get_setting_value("SMTP_REPORT_FROM"), get_setting_value("SMTP_REPORT_TO"), pHTML, pText) + subject, from_email, to_email, message_html, message_text = sanitize_email_content('Net AlertX Report', get_setting_value("SMTP_REPORT_FROM"), get_setting_value("SMTP_REPORT_TO"), pHTML, pText) # Compose email msg = MIMEMultipart('alternative') diff --git a/front/plugins/_publisher_mqtt/config.json b/front/plugins/_publisher_mqtt/config.json index 3c216274..00f76a99 100755 --- a/front/plugins/_publisher_mqtt/config.json +++ b/front/plugins/_publisher_mqtt/config.json @@ -278,7 +278,7 @@ { "function": "CMD", "type": "readonly", - "default_value":"python3 /home/pi/pialert/front/plugins/_publisher_mqtt/mqtt.py devices={devices}", + "default_value":"python3 /app/front/plugins/_publisher_mqtt/mqtt.py devices={devices}", "options": [], "localized": ["name", "description"], "name" : [{ diff --git a/front/plugins/_publisher_mqtt/mqtt.py b/front/plugins/_publisher_mqtt/mqtt.py index fc205e83..ac69113f 100755 --- a/front/plugins/_publisher_mqtt/mqtt.py +++ b/front/plugins/_publisher_mqtt/mqtt.py @@ -16,7 +16,8 @@ import hashlib # Register NetAlertX directories -sys.path.extend(["/home/pi/pialert/front/plugins", "/home/pi/pialert/netalertx"]) +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) # NetAlertX modules import conf @@ -172,8 +173,8 @@ def publish_mqtt(mqtt_client, topic, message): #------------------------------------------------------------------------------- def create_generic_device(mqtt_client): - deviceName = 'PiAlert' - deviceId = 'pialert' + deviceName = 'NetAlertX' + deviceId = 'netalertx' create_sensor(mqtt_client, deviceId, deviceName, 'sensor', 'online', 'wifi-check') create_sensor(mqtt_client, deviceId, deviceName, 'sensor', 'down', 'wifi-cancel') @@ -214,7 +215,7 @@ def publish_sensor(mqtt_client, sensorConfig): "device": { "identifiers" : [sensorConfig.deviceId+"_sensor"], - "manufacturer" : "PiAlert", + "manufacturer" : "NetAlertX", "name" : sensorConfig.deviceName }, "icon": icon @@ -288,7 +289,7 @@ def mqtt_start(db): row = get_device_stats(db) # Publish (wrap into {} and remove last ',' from above) - publish_mqtt(mqtt_client, "system-sensors/sensor/pialert/state", + publish_mqtt(mqtt_client, "system-sensors/sensor/netalertx/state", { "online": row[0], "down": row[1], diff --git a/front/plugins/_publisher_ntfy/config.json b/front/plugins/_publisher_ntfy/config.json index acd8465f..78407535 100755 --- a/front/plugins/_publisher_ntfy/config.json +++ b/front/plugins/_publisher_ntfy/config.json @@ -247,7 +247,7 @@ { "function": "CMD", "type": "readonly", - "default_value":"python3 /home/pi/pialert/front/plugins/_publisher_ntfy/ntfy.py", + "default_value":"python3 /app/front/plugins/_publisher_ntfy/ntfy.py", "options": [], "localized": ["name", "description"], "name" : [{ diff --git a/front/plugins/_publisher_ntfy/ntfy.py b/front/plugins/_publisher_ntfy/ntfy.py index 74c2742d..263b4a0e 100755 --- a/front/plugins/_publisher_ntfy/ntfy.py +++ b/front/plugins/_publisher_ntfy/ntfy.py @@ -12,7 +12,8 @@ from datetime import datetime from base64 import b64encode # Register NetAlertX directories -sys.path.extend(["/home/pi/pialert/front/plugins", "/home/pi/pialert/netalertx"]) +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) import conf from const import confFileName diff --git a/front/plugins/_publisher_pushover/config.json b/front/plugins/_publisher_pushover/config.json index 090bfd09..eafa3b38 100755 --- a/front/plugins/_publisher_pushover/config.json +++ b/front/plugins/_publisher_pushover/config.json @@ -304,7 +304,7 @@ { "function": "CMD", "type": "readonly", - "default_value": "python3 /home/pi/pialert/front/plugins/_publisher_pushover/pushover.py", + "default_value": "python3 /app/front/plugins/_publisher_pushover/pushover.py", "options": [], "localized": [ "name", diff --git a/front/plugins/_publisher_pushover/pushover.py b/front/plugins/_publisher_pushover/pushover.py index a5482dc6..c03dd883 100755 --- a/front/plugins/_publisher_pushover/pushover.py +++ b/front/plugins/_publisher_pushover/pushover.py @@ -6,7 +6,8 @@ import json import requests # Register NetAlertX directories -sys.path.extend(["/home/pi/pialert/front/plugins", "/home/pi/pialert/netalertx"]) +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Objects, handleEmpty # noqa: E402 from logger import mylog # noqa: E402 diff --git a/front/plugins/_publisher_pushsafer/config.json b/front/plugins/_publisher_pushsafer/config.json index 030762d9..0beda2e9 100755 --- a/front/plugins/_publisher_pushsafer/config.json +++ b/front/plugins/_publisher_pushsafer/config.json @@ -247,7 +247,7 @@ { "function": "CMD", "type": "readonly", - "default_value":"python3 /home/pi/pialert/front/plugins/_publisher_pushsafer/pushsafer.py", + "default_value":"python3 /app/front/plugins/_publisher_pushsafer/pushsafer.py", "options": [], "localized": ["name", "description"], "name" : [{ diff --git a/front/plugins/_publisher_pushsafer/pushsafer.py b/front/plugins/_publisher_pushsafer/pushsafer.py index 177de6e6..f99312f6 100755 --- a/front/plugins/_publisher_pushsafer/pushsafer.py +++ b/front/plugins/_publisher_pushsafer/pushsafer.py @@ -12,7 +12,8 @@ from datetime import datetime from base64 import b64encode # Register NetAlertX directories -sys.path.extend(["/home/pi/pialert/front/plugins", "/home/pi/pialert/netalertx"]) +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) import conf from const import confFileName diff --git a/front/plugins/_publisher_webhook/config.json b/front/plugins/_publisher_webhook/config.json index 1f109d96..17a319fc 100755 --- a/front/plugins/_publisher_webhook/config.json +++ b/front/plugins/_publisher_webhook/config.json @@ -247,7 +247,7 @@ { "function": "CMD", "type": "readonly", - "default_value":"python3 /home/pi/pialert/front/plugins/_publisher_webhook/webhook.py", + "default_value":"python3 /app/front/plugins/_publisher_webhook/webhook.py", "options": [], "localized": ["name", "description"], "name" : [{ diff --git a/front/plugins/_publisher_webhook/webhook.py b/front/plugins/_publisher_webhook/webhook.py index 5ccf519b..8b995ae7 100755 --- a/front/plugins/_publisher_webhook/webhook.py +++ b/front/plugins/_publisher_webhook/webhook.py @@ -14,7 +14,8 @@ import hashlib import hmac # Register NetAlertX directories -sys.path.extend(["/home/pi/pialert/front/plugins", "/home/pi/pialert/netalertx"]) +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) import conf diff --git a/front/plugins/arp_scan/config.json b/front/plugins/arp_scan/config.json index 5829b9f0..8ec69c07 100755 --- a/front/plugins/arp_scan/config.json +++ b/front/plugins/arp_scan/config.json @@ -121,7 +121,7 @@ { "function": "CMD", "type": "readonly", - "default_value": "python3 /home/pi/pialert/front/plugins/arp_scan/script.py userSubnets={subnets}", + "default_value": "python3 /app/front/plugins/arp_scan/script.py userSubnets={subnets}", "options": [], "localized": [ "name", diff --git a/front/plugins/arp_scan/script.py b/front/plugins/arp_scan/script.py index 2562e0d2..139df1e8 100755 --- a/front/plugins/arp_scan/script.py +++ b/front/plugins/arp_scan/script.py @@ -9,10 +9,10 @@ import base64 import subprocess from time import strftime -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) -# Register NetAlertX modules NetAlertX directories from database import DB from plugin_helper import Plugin_Object, Plugin_Objects, handleEmpty from logger import mylog, append_line_to_file diff --git a/front/plugins/csv_backup/config.json b/front/plugins/csv_backup/config.json index 14aa391d..29af29da 100755 --- a/front/plugins/csv_backup/config.json +++ b/front/plugins/csv_backup/config.json @@ -89,7 +89,7 @@ { "function": "CMD", "type": "readonly", - "default_value": "python3 /home/pi/pialert/front/plugins/csv_backup/script.py overwrite={overwrite} location={location}", + "default_value": "python3 /app/front/plugins/csv_backup/script.py overwrite={overwrite} location={location}", "options": [], "localized": ["name", "description"], "name": [ @@ -221,7 +221,7 @@ { "function": "location", "type": "text", - "default_value":"/home/pi/pialert/config", + "default_value":"/app/config", "options": [], "localized": ["name", "description"], "name" : [{ @@ -238,15 +238,15 @@ }], "description": [{ "language_code":"en_us", - "string" : "Where the devices.csv file should be saved. For example /home/pi/pialert/config." + "string" : "Where the devices.csv file should be saved. For example /app/config." }, { "language_code":"es_es", - "string" : "Donde se debe guardar el archivo devices.csv. Por ejemplo /home/pi/pialert/config." + "string" : "Donde se debe guardar el archivo devices.csv. Por ejemplo /app/config." }, { "language_code":"de_de", - "string" : "Wo die Datei devices.csv gespeichert werden soll. Zum Beispiel /home/pi/pialert/config." + "string" : "Wo die Datei devices.csv gespeichert werden soll. Zum Beispiel /app/config." }] } ], diff --git a/front/plugins/csv_backup/script.py b/front/plugins/csv_backup/script.py index 30a05a55..a4b8be21 100755 --- a/front/plugins/csv_backup/script.py +++ b/front/plugins/csv_backup/script.py @@ -10,8 +10,9 @@ import sqlite3 from io import StringIO from datetime import datetime -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64 from logger import mylog, append_line_to_file diff --git a/front/plugins/db_cleanup/config.json b/front/plugins/db_cleanup/config.json index f022ac17..06848a57 100755 --- a/front/plugins/db_cleanup/config.json +++ b/front/plugins/db_cleanup/config.json @@ -75,7 +75,7 @@ { "function": "CMD", "type": "readonly", - "default_value": "python3 /home/pi/pialert/front/plugins/db_cleanup/script.py pluginskeephistory={pluginskeephistory} hourstokeepnewdevice={hourstokeepnewdevice} daystokeepevents={daystokeepevents} pholuskeepdays={pholuskeepdays}", + "default_value": "python3 /app/front/plugins/db_cleanup/script.py pluginskeephistory={pluginskeephistory} hourstokeepnewdevice={hourstokeepnewdevice} daystokeepevents={daystokeepevents} pholuskeepdays={pholuskeepdays}", "options": [], "localized": ["name", "description"], "name": [ diff --git a/front/plugins/db_cleanup/script.py b/front/plugins/db_cleanup/script.py index f1593491..2e32c630 100755 --- a/front/plugins/db_cleanup/script.py +++ b/front/plugins/db_cleanup/script.py @@ -10,8 +10,9 @@ import sqlite3 from io import StringIO from datetime import datetime -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64 from logger import mylog, append_line_to_file diff --git a/front/plugins/ddns_update/config.json b/front/plugins/ddns_update/config.json index 8c25ab63..1a25dbf5 100755 --- a/front/plugins/ddns_update/config.json +++ b/front/plugins/ddns_update/config.json @@ -122,7 +122,7 @@ { "function": "CMD", "type": "readonly", - "default_value": "python3 /home/pi/pialert/front/plugins/ddns_update/script.py prev_ip={prev_ip} DDNS_UPDATE_URL={DDNS_UPDATE_URL} DDNS_USER={DDNS_USER} DDNS_PASSWORD={DDNS_PASSWORD} DDNS_DOMAIN={DDNS_DOMAIN} ", + "default_value": "python3 /app/front/plugins/ddns_update/script.py prev_ip={prev_ip} DDNS_UPDATE_URL={DDNS_UPDATE_URL} DDNS_USER={DDNS_USER} DDNS_PASSWORD={DDNS_PASSWORD} DDNS_DOMAIN={DDNS_DOMAIN} ", "options": [], "localized": [ "name", diff --git a/front/plugins/ddns_update/script.py b/front/plugins/ddns_update/script.py index afb55ffa..f216a6bb 100755 --- a/front/plugins/ddns_update/script.py +++ b/front/plugins/ddns_update/script.py @@ -13,8 +13,9 @@ import sqlite3 from io import StringIO from datetime import datetime -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64 from logger import mylog, append_line_to_file diff --git a/front/plugins/dhcp_leases/config.json b/front/plugins/dhcp_leases/config.json index d67d451b..2efdb069 100755 --- a/front/plugins/dhcp_leases/config.json +++ b/front/plugins/dhcp_leases/config.json @@ -493,7 +493,7 @@ { "function": "CMD", "type": "text", - "default_value": "python3 /home/pi/pialert/front/plugins/dhcp_leases/script.py paths={paths}", + "default_value": "python3 /app/front/plugins/dhcp_leases/script.py paths={paths}", "options": [], "localized": [ "name", diff --git a/front/plugins/dhcp_leases/script.py b/front/plugins/dhcp_leases/script.py index 219de4af..26e6b1e5 100755 --- a/front/plugins/dhcp_leases/script.py +++ b/front/plugins/dhcp_leases/script.py @@ -8,8 +8,9 @@ import os import sys import chardet -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Object, Plugin_Objects, handleEmpty, is_mac from logger import mylog diff --git a/front/plugins/dhcp_servers/config.json b/front/plugins/dhcp_servers/config.json index 759f256b..8af21458 100755 --- a/front/plugins/dhcp_servers/config.json +++ b/front/plugins/dhcp_servers/config.json @@ -300,7 +300,7 @@ { "function": "CMD", "type": "text", - "default_value":"python3 /home/pi/pialert/front/plugins/dhcp_servers/script.py", + "default_value":"python3 /app/front/plugins/dhcp_servers/script.py", "options": [], "localized": ["name", "description"], "name" : [{ diff --git a/front/plugins/dhcp_servers/script.py b/front/plugins/dhcp_servers/script.py index c80dc964..e2bb29b1 100755 --- a/front/plugins/dhcp_servers/script.py +++ b/front/plugins/dhcp_servers/script.py @@ -6,8 +6,9 @@ from datetime import datetime import sys -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Objects, Plugin_Object from logger import mylog diff --git a/front/plugins/internet_ip/config.json b/front/plugins/internet_ip/config.json index 754d50ba..496d8b46 100755 --- a/front/plugins/internet_ip/config.json +++ b/front/plugins/internet_ip/config.json @@ -109,7 +109,7 @@ { "function": "CMD", "type": "readonly", - "default_value": "python3 /home/pi/pialert/front/plugins/internet_ip/script.py prev_ip={prev_ip} INTRNT_DIG_GET_IP_ARG={INTRNT_DIG_GET_IP_ARG}", + "default_value": "python3 /app/front/plugins/internet_ip/script.py prev_ip={prev_ip} INTRNT_DIG_GET_IP_ARG={INTRNT_DIG_GET_IP_ARG}", "options": [], "localized": [ "name", diff --git a/front/plugins/internet_ip/script.py b/front/plugins/internet_ip/script.py index a9411fe6..d02e5763 100755 --- a/front/plugins/internet_ip/script.py +++ b/front/plugins/internet_ip/script.py @@ -13,8 +13,9 @@ import sqlite3 from io import StringIO from datetime import datetime -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64 from logger import mylog, append_line_to_file diff --git a/front/plugins/internet_speedtest/config.json b/front/plugins/internet_speedtest/config.json index f1462618..74dc4832 100755 --- a/front/plugins/internet_speedtest/config.json +++ b/front/plugins/internet_speedtest/config.json @@ -449,7 +449,7 @@ { "function": "CMD", "type": "readonly", - "default_value": "python3 /home/pi/pialert/front/plugins/internet_speedtest/script.py", + "default_value": "python3 /app/front/plugins/internet_speedtest/script.py", "options": [], "localized": [ "name", diff --git a/front/plugins/internet_speedtest/script.py b/front/plugins/internet_speedtest/script.py index 35246139..7029edde 100755 --- a/front/plugins/internet_speedtest/script.py +++ b/front/plugins/internet_speedtest/script.py @@ -8,7 +8,8 @@ from datetime import datetime import speedtest # Register NetAlertX directories -sys.path.extend(["/home/pi/pialert/front/plugins", "/home/pi/pialert/netalertx"]) +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Objects from logger import mylog, append_line_to_file diff --git a/front/plugins/maintenance/README.md b/front/plugins/maintenance/README.md index e19cafc8..b7e46290 100755 --- a/front/plugins/maintenance/README.md +++ b/front/plugins/maintenance/README.md @@ -2,7 +2,7 @@ A plugin responsible for general maintenance tasks. These currently include: -- pialert.log cleanup +- app.log cleanup ### Usage diff --git a/front/plugins/maintenance/config.json b/front/plugins/maintenance/config.json index c4981453..c7ed7cec 100755 --- a/front/plugins/maintenance/config.json +++ b/front/plugins/maintenance/config.json @@ -54,7 +54,7 @@ { "function": "CMD", "type": "readonly", - "default_value": "python3 /home/pi/pialert/front/plugins/maintenance/maintenance.py", + "default_value": "python3 /app/front/plugins/maintenance/maintenance.py", "options": [], "localized": ["name", "description"], "name": [ @@ -164,7 +164,7 @@ }], "description": [{ "language_code":"en_us", - "string" : "How many last pialert.log lines to keep. If LOG_LEVEL is set to debug the app generates about 10000 lines per hour, so when debugging an issue the recommended setting should cover the bug occurence timeframe. For example for a bug with a 3 day periodical appearence the value 1000000 should be sufficient. Setting this value to 1000000 generates approximatelly a 50MB pialert.log file. Set to 0 to disable log purging." + "string" : "How many last app.log lines to keep. If LOG_LEVEL is set to debug the app generates about 10000 lines per hour, so when debugging an issue the recommended setting should cover the bug occurence timeframe. For example for a bug with a 3 day periodical appearence the value 1000000 should be sufficient. Setting this value to 1000000 generates approximatelly a 50MB app.log file. Set to 0 to disable log purging." }] } ], diff --git a/front/plugins/maintenance/maintenance.py b/front/plugins/maintenance/maintenance.py index 4743c44f..24d7fe8a 100755 --- a/front/plugins/maintenance/maintenance.py +++ b/front/plugins/maintenance/maintenance.py @@ -11,9 +11,10 @@ from io import StringIO from datetime import datetime from collections import deque -sys.path.extend(["/home/pi/pialert/front/plugins", "/home/pi/pialert/netalertx"]) +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) -# Register NetAlertX modules NetAlertX directories from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64 from logger import mylog, append_line_to_file from helper import timeNowTZ, get_setting_value @@ -37,7 +38,7 @@ def main(): mylog('verbose', [f'[{pluginName}] Cleaning file']) - logFile = logPath + "/pialert.log" + logFile = logPath + "/app.log" # Using a deque to efficiently keep the last N lines lines_to_keep = deque(maxlen=MAINT_LOG_LENGTH) diff --git a/front/plugins/nmap_scan/config.json b/front/plugins/nmap_scan/config.json index 3444d6a8..f8fe7a2c 100755 --- a/front/plugins/nmap_scan/config.json +++ b/front/plugins/nmap_scan/config.json @@ -345,7 +345,7 @@ { "function": "CMD", "type": "text", - "default_value":"python3 /home/pi/pialert/front/plugins/nmap_scan/script.py ips={ips} macs={macs} timeout={timeout} args={args}", + "default_value":"python3 /app/front/plugins/nmap_scan/script.py ips={ips} macs={macs} timeout={timeout} args={args}", "options": [], "localized": ["name", "description"], "name" : [{ diff --git a/front/plugins/nmap_scan/script.py b/front/plugins/nmap_scan/script.py index 141d91e6..5db4306c 100755 --- a/front/plugins/nmap_scan/script.py +++ b/front/plugins/nmap_scan/script.py @@ -9,8 +9,9 @@ import base64 import subprocess from time import strftime -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64 from logger import mylog, append_line_to_file @@ -133,7 +134,7 @@ def performNmapScan(deviceIPs, deviceMACs, timeoutSec, args): # regular logging for line in newLines: - append_line_to_file (logPath + '/pialert_nmap.log', line +'\n') + append_line_to_file (logPath + '/app_nmap.log', line +'\n') index = 0 diff --git a/front/plugins/nslookup_scan/config.json b/front/plugins/nslookup_scan/config.json index ba0fad8c..e9641408 100755 --- a/front/plugins/nslookup_scan/config.json +++ b/front/plugins/nslookup_scan/config.json @@ -60,7 +60,7 @@ { "function": "CMD", "type": "readonly", - "default_value": "python3 /home/pi/pialert/front/plugins/nslookup_scan/nslookup.py", + "default_value": "python3 /app/front/plugins/nslookup_scan/nslookup.py", "options": [], "localized": ["name", "description"], "name": [ diff --git a/front/plugins/nslookup_scan/nslookup.py b/front/plugins/nslookup_scan/nslookup.py index 7637a3ea..68649cfc 100755 --- a/front/plugins/nslookup_scan/nslookup.py +++ b/front/plugins/nslookup_scan/nslookup.py @@ -14,8 +14,9 @@ import re from io import StringIO from datetime import datetime -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64 from logger import mylog, append_line_to_file diff --git a/front/plugins/pholus_scan/config.json b/front/plugins/pholus_scan/config.json index df3ed439..2c726eea 100755 --- a/front/plugins/pholus_scan/config.json +++ b/front/plugins/pholus_scan/config.json @@ -106,7 +106,7 @@ { "function": "CMD", "type": "readonly", - "default_value": "python3 /home/pi/pialert/front/plugins/pholus_scan/script.py userSubnets={subnets} timeoutSec={timeout}", + "default_value": "python3 /app/front/plugins/pholus_scan/script.py userSubnets={subnets} timeoutSec={timeout}", "options": [], "localized": [ "name", @@ -219,7 +219,7 @@ }, { "language_code": "es_es", - "string": "Cuántos días de entradas de escaneo de Pholus deben conservarse (globalmente, ¡no específico del dispositivo!). El archivo pialert_pholus.log no se modifica. Introduzca 0 para desactivar." + "string": "Cuántos días de entradas de escaneo de Pholus deben conservarse (globalmente, ¡no específico del dispositivo!). Introduzca 0 para desactivar." } ] }, diff --git a/front/plugins/pholus_scan/pholus/pholus3.py b/front/plugins/pholus_scan/pholus/pholus3.py index 12272adc..05f3bd53 100755 --- a/front/plugins/pholus_scan/pholus/pholus3.py +++ b/front/plugins/pholus_scan/pholus/pholus3.py @@ -18,7 +18,7 @@ from scapy.utils import PcapWriter sys.setrecursionlimit(30000) logging.getLogger("scapy.runtime").setLevel(logging.ERROR)#supress Scapy warnings` -logPath = '/home/pi/pialert/front/log' +logPath = '/app/front/log' # DEBUG isDebug = False @@ -43,13 +43,13 @@ def write_file (pPath, pText): file.close() # Empty the last run log file -write_file(logPath + "/pialert_pholus_lastrun.log", "") +write_file(logPath + "/pholus_lastrun.log", "") def file_print(*args): result = '' - file = open(logPath + "/pialert_pholus_lastrun.log", "a") + file = open(logPath + "/pholus_lastrun.log", "a") for arg in args: result += str(arg) print(result) @@ -57,7 +57,7 @@ def file_print(*args): file.close() # Empty the last run log file -write_file(logPath + "/pialert_pholus_subp_pr.log", "") +write_file(logPath + "/pholus_subp_pr.log", "") # For separate logging of the multiprocess subprocess def file_print_pr(*args): @@ -66,7 +66,7 @@ def file_print_pr(*args): result = '' - file = open(logPath + "/pialert_pholus_subp_pr.log", "a") + file = open(logPath + "/pholus_subp_pr.log", "a") for arg in args: result += str(arg) print(result) diff --git a/front/plugins/pholus_scan/script.py b/front/plugins/pholus_scan/script.py index a722d78d..2c7d4171 100755 --- a/front/plugins/pholus_scan/script.py +++ b/front/plugins/pholus_scan/script.py @@ -10,8 +10,9 @@ import subprocess from time import strftime -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from logger import mylog from plugin_helper import Plugin_Object, Plugin_Objects @@ -135,7 +136,7 @@ def execute_pholus_on_interface(interface, timeoutSec, mask): # the scan always lasts 2x as long, so the desired user time from settings needs to be halved adjustedTimeout = str(round(int(timeoutSec) / 2, 0)) - # python3 -m trace --trace /home/pi/pialert/pholus/pholus3.py eth1 -rdns_scanning 192.168.1.0/24 -stimeout 600 + # python3 -m trace --trace /app/pholus/pholus3.py eth1 -rdns_scanning 192.168.1.0/24 -stimeout 600 pholus_args = ['python3', fullPholusPath, interface, "-rdns_scanning", mask, "-stimeout", adjustedTimeout] # Execute command @@ -157,7 +158,7 @@ def execute_pholus_on_interface(interface, timeoutSec, mask): mylog('verbose', [f'[{pluginName}] Scan: Pholus SUCCESS']) # check the last run output - f = open(logPath + '/pialert_pholus_lastrun.log', 'r+') + f = open(logPath + '/pholus_lastrun.log', 'r+') newLines = f.read().split('\n') f.close() diff --git a/front/plugins/plugin_helper.py b/front/plugins/plugin_helper.py index ebe17cfa..501ea23a 100755 --- a/front/plugins/plugin_helper.py +++ b/front/plugins/plugin_helper.py @@ -5,8 +5,10 @@ import re import base64 from datetime import datetime -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +INSTALL_PATH = "/app" + +sys.path.append(f"{INSTALL_PATH}/front/plugins") +sys.path.append(f'{INSTALL_PATH}/server') from logger import mylog from const import confFileName @@ -18,7 +20,7 @@ def read_config_file(): config_dir[key] """ - filename = '/home/pi/pialert/config/' + confFileName + filename = f'{INSTALL_PATH}/config/' + confFileName print('[plugin_helper] reading config file') @@ -31,8 +33,8 @@ def read_config_file(): return confDict -pialertConfigFile = read_config_file() -timeZoneSetting = pialertConfigFile['TIMEZONE'] +configFile = read_config_file() +timeZoneSetting = configFile['TIMEZONE'] timeZone = pytz.timezone(timeZoneSetting) # ------------------------------------------------------------------- diff --git a/front/plugins/set_password/README.md b/front/plugins/set_password/README.md index 2b96fa50..5f68c901 100755 --- a/front/plugins/set_password/README.md +++ b/front/plugins/set_password/README.md @@ -8,8 +8,8 @@ A simple script-based plugin for setting the password. ### Notes -- The plugin is executed on the `RUN` type `before_config_save` so it's possible to update the `pialert.conf` file before the data is loaded into the app. -- The executed command is stored in the `CMD` setting: `/home/pi/pialert/back/pialert-cli set_password {password}` +- The plugin is executed on the `RUN` type `before_config_save` so it's possible to update the `app.conf` file before the data is loaded into the app. +- The executed command is stored in the `CMD` setting: `/app/back/pialert-cli set_password {password}` - The `{password}` parameter is replaced via the parameter and setting below: ```json @@ -39,7 +39,7 @@ A simple script-based plugin for setting the password. "description": [ { "language_code": "en_us", - "string": "The default password is 123456. To change the password run /home/pi/pialert/back/pialert-cli set_password {password} in the container" + "string": "The default password is 123456. To change the password run /app/back/pialert-cli set_password {password} in the container" } ] } diff --git a/front/plugins/set_password/config.json b/front/plugins/set_password/config.json index a4b7c2cd..bc401aa1 100755 --- a/front/plugins/set_password/config.json +++ b/front/plugins/set_password/config.json @@ -68,7 +68,7 @@ { "function": "CMD", "type": "readonly", - "default_value":"/home/pi/pialert/back/pialert-cli set_password {password}", + "default_value":"/app/back/pialert-cli set_password {password}", "options": [], "localized": ["name", "description"], "name" : [{ @@ -108,11 +108,11 @@ "description": [ { "language_code": "en_us", - "string": "The default password is 123456. To change it, you can either use this plugin (follow the instructions in the SETPWD_RUN setting) or run /home/pi/pialert/back/pialert-cli set_password {password} in the container." + "string": "The default password is 123456. To change it, you can either use this plugin (follow the instructions in the SETPWD_RUN setting) or run /app/back/pialert-cli set_password {password} in the container." }, { "language_code": "es_es", - "string": "La contraseña predeterminada es 123456. Para cambiar la contraseña, ejecute /home/pi/pialert/back/pialert-cli set_password {password} en el contenedor" + "string": "La contraseña predeterminada es 123456. Para cambiar la contraseña, ejecute /app/back/pialert-cli set_password {password} en el contenedor" } ] } diff --git a/front/plugins/snmp_discovery/config.json b/front/plugins/snmp_discovery/config.json index 8ea925ef..8349d297 100755 --- a/front/plugins/snmp_discovery/config.json +++ b/front/plugins/snmp_discovery/config.json @@ -332,7 +332,7 @@ { "function": "CMD", "type": "text", - "default_value":"python3 /home/pi/pialert/front/plugins/snmp_discovery/script.py routers={s-quote}{routers}{s-quote}", + "default_value":"python3 /app/front/plugins/snmp_discovery/script.py routers={s-quote}{routers}{s-quote}", "options": [], "localized": ["name", "description"], "name" : [{ diff --git a/front/plugins/snmp_discovery/script.py b/front/plugins/snmp_discovery/script.py index c4303ed2..fa9d7066 100755 --- a/front/plugins/snmp_discovery/script.py +++ b/front/plugins/snmp_discovery/script.py @@ -1,8 +1,5 @@ #!/usr/bin/env python -# Example call -# python3 /home/pi/pialert/front/plugins/snmp_discovery/script.py routers='snmpwalk -v 2c -c public -OXsq 192.168.1.1 .1.3.6.1.2.1.3.1.1.2' - from __future__ import unicode_literals import pathlib import subprocess @@ -10,8 +7,9 @@ import argparse import os import sys -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64, handleEmpty from logger import mylog diff --git a/front/plugins/undiscoverables/config.json b/front/plugins/undiscoverables/config.json index bb6f7ca7..c8110b37 100755 --- a/front/plugins/undiscoverables/config.json +++ b/front/plugins/undiscoverables/config.json @@ -110,7 +110,7 @@ { "function": "CMD", "type": "text", - "default_value": "python3 /home/pi/pialert/front/plugins/undiscoverables/script.py devices={devices}", + "default_value": "python3 /app/front/plugins/undiscoverables/script.py devices={devices}", "options": [], "localized": [ "name", diff --git a/front/plugins/undiscoverables/script.py b/front/plugins/undiscoverables/script.py index bb0b32f3..cd6c6e46 100755 --- a/front/plugins/undiscoverables/script.py +++ b/front/plugins/undiscoverables/script.py @@ -7,8 +7,9 @@ import argparse import sys import hashlib -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64 from logger import mylog, append_line_to_file diff --git a/front/plugins/unifi_import/config.json b/front/plugins/unifi_import/config.json index f4654b1a..cca7d88b 100755 --- a/front/plugins/unifi_import/config.json +++ b/front/plugins/unifi_import/config.json @@ -521,7 +521,7 @@ "type": "text.select" }, { - "default_value": "python3 /home/pi/pialert/front/plugins/unifi_import/script.py username={username} password={password} host={host} sites={sites} port={port} verifyssl={verifyssl} version={version} fullimport={fullimport}", + "default_value": "python3 /app/front/plugins/unifi_import/script.py username={username} password={password} host={host} sites={sites} port={port} verifyssl={verifyssl} version={version} fullimport={fullimport}", "description": [ { "language_code": "en_us", diff --git a/front/plugins/unifi_import/script.py b/front/plugins/unifi_import/script.py index 62e5e824..7729a3be 100755 --- a/front/plugins/unifi_import/script.py +++ b/front/plugins/unifi_import/script.py @@ -1,10 +1,6 @@ #!/usr/bin/env python # Inspired by https://github.com/stevehoek/Pi.Alert -# Example call -# python3 /home/pi/pialert/front/plugins/unifi_import/script.py username=pialert password=passw0rd host=192.168.1.1 site=default protocol=https port=443 verifyssl=false version='UDMP-unifiOS' -# python3 /home/pi/pialert/front/plugins/unifi_import/script.py username=pialert password=passw0rd host=192.168.1.1 sites=sdefault port=8443 verifyssl=false version=v5 - from __future__ import unicode_literals from time import strftime import argparse @@ -18,9 +14,9 @@ from requests import Request, Session, packages from requests.packages.urllib3.exceptions import InsecureRequestWarning from pyunifi.controller import Controller -# Add your paths here -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Object, Plugin_Objects from logger import mylog diff --git a/front/plugins/vendor_update/config.json b/front/plugins/vendor_update/config.json index 465d29c2..cdd15f72 100755 --- a/front/plugins/vendor_update/config.json +++ b/front/plugins/vendor_update/config.json @@ -87,7 +87,7 @@ { "function": "CMD", "type": "readonly", - "default_value": "python3 /home/pi/pialert/front/plugins/vendor_update/script.py", + "default_value": "python3 /app/front/plugins/vendor_update/script.py", "options": [], "localized": [ "name", diff --git a/front/plugins/vendor_update/script.py b/front/plugins/vendor_update/script.py index 51f9179c..41d61d4f 100755 --- a/front/plugins/vendor_update/script.py +++ b/front/plugins/vendor_update/script.py @@ -11,8 +11,9 @@ import sqlite3 from io import StringIO from datetime import datetime -sys.path.append("/home/pi/pialert/front/plugins") -sys.path.append('/home/pi/pialert/netalertx') +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Object, Plugin_Objects, decodeBase64, handleEmpty from logger import mylog, append_line_to_file diff --git a/front/plugins/website_monitor/config.json b/front/plugins/website_monitor/config.json index 5d009952..35117950 100755 --- a/front/plugins/website_monitor/config.json +++ b/front/plugins/website_monitor/config.json @@ -335,7 +335,7 @@ { "function": "CMD", "type": "text", - "default_value":"python3 /home/pi/pialert/front/plugins/website_monitor/script.py urls={urls}", + "default_value":"python3 /app/front/plugins/website_monitor/script.py urls={urls}", "options": [], "localized": ["name", "description"], "name" : [{ diff --git a/front/plugins/website_monitor/script.py b/front/plugins/website_monitor/script.py index 0d5efacc..5d809698 100755 --- a/front/plugins/website_monitor/script.py +++ b/front/plugins/website_monitor/script.py @@ -1,8 +1,6 @@ #!/usr/bin/env python # Based on the work of https://github.com/leiweibau/Pi.Alert -# Example call -# python3 /home/pi/pialert/front/plugins/website_monitor/script.py urls=http://google.com,http://bing.com import argparse import requests import pathlib @@ -10,7 +8,9 @@ import sys import os from requests.packages.urllib3.exceptions import InsecureRequestWarning -sys.path.extend(["/home/pi/pialert/front/plugins", "/home/pi/pialert/netalertx"]) +# Register NetAlertX directories +INSTALL_PATH="/app" +sys.path.extend([f"{INSTALL_PATH}/front/plugins", f"{INSTALL_PATH}/server"]) from plugin_helper import Plugin_Objects from datetime import datetime diff --git a/front/settings.php b/front/settings.php index c7cab866..40a1a886 100755 --- a/front/settings.php +++ b/front/settings.php @@ -9,8 +9,8 @@ require 'php/templates/header.php'; ini_set ('max_execution_time','30'); // check permissions -$dbPath = "../db/pialert.db"; -$confPath = "../config/pialert.conf"; +$dbPath = "../db/app.db"; +$confPath = "../config/app.conf"; checkPermissions([$dbPath, $confPath]); diff --git a/install/index.html b/install/index.html index 1db50a9c..71c48272 100755 --- a/install/index.html +++ b/install/index.html @@ -7,5 +7,5 @@ # Puche 2021 GNU GPLv3 #--------------------------------------------------------------------------- --> - + diff --git a/install/install.debian.sh b/install/install.debian.sh index bb6fab50..548ffd38 100755 --- a/install/install.debian.sh +++ b/install/install.debian.sh @@ -8,7 +8,7 @@ echo "[INSTALL] Run install.debian.sh" echo "---------------------------------------------------------" # Set environment variables -INSTALL_DIR=/home/pi # Specify the installation directory here +INSTALL_DIR=/app # Specify the installation directory here # Check if script is run as root if [[ $EUID -ne 0 ]]; then @@ -24,15 +24,15 @@ apt-get install sudo -y apt-get install -y git # Clean the directory -rm -R $INSTALL_DIR/pialert +rm -R $INSTALL_DIR/ # Clone the application repository -git clone https://github.com/jokob-sk/NetAlertX "$INSTALL_DIR/pialert" +git clone https://github.com/jokob-sk/NetAlertX "$INSTALL_DIR/" # Check for buildtimestamp.txt existence, otherwise create it -if [ ! -f $INSTALL_DIR/pialert/front/buildtimestamp.txt ]; then - date +%s > $INSTALL_DIR/pialert/front/buildtimestamp.txt +if [ ! -f $INSTALL_DIR/front/buildtimestamp.txt ]; then + date +%s > $INSTALL_DIR/front/buildtimestamp.txt fi # Start NetAlertX -"$INSTALL_DIR/pialert/install/start.debian.sh" +"$INSTALL_DIR/install/start.debian.sh" diff --git a/install/netalertx.debian.conf b/install/netalertx.debian.conf index 81134d52..537675ad 100755 --- a/install/netalertx.debian.conf +++ b/install/netalertx.debian.conf @@ -1,10 +1,10 @@ server { listen 20211 default_server; - root /var/www/html/pialert; + root /var/www/html/app; index index.php; - #rewrite /pialert/(.*) / permanent; - add_header X-Forwarded-Prefix "/pialert" always; - proxy_set_header X-Forwarded-Prefix "/pialert"; + #rewrite /app/(.*) / permanent; + add_header X-Forwarded-Prefix "/app" always; + proxy_set_header X-Forwarded-Prefix "/app"; location ~* \.php$ { # Set Cache-Control header to prevent caching on the first load diff --git a/install/netalertx.template.conf b/install/netalertx.template.conf index e2d526a1..08c858a4 100755 --- a/install/netalertx.template.conf +++ b/install/netalertx.template.conf @@ -1,9 +1,9 @@ server { listen ${LISTEN_ADDR}:${PORT} default_server; - root ${INSTALL_DIR}/pialert/front; + root ${INSTALL_DIR}/front; index index.php; - add_header X-Forwarded-Prefix "/pialert" always; - proxy_set_header X-Forwarded-Prefix "/pialert"; + add_header X-Forwarded-Prefix "/app" always; + proxy_set_header X-Forwarded-Prefix "/app"; location ~* \.php$ { # Set Cache-Control header to prevent caching on the first load diff --git a/install/start.debian.sh b/install/start.debian.sh index 84e77b3a..961f7df9 100755 --- a/install/start.debian.sh +++ b/install/start.debian.sh @@ -5,22 +5,26 @@ echo "[INSTALL] Run start.debian.sh" echo "---------------------------------------------------------" -INSTALL_DIR=/home/pi # Specify the installation directory here +INSTALL_DIR=/app # Specify the installation directory here # DO NOT CHANGE ANYTHING BELOW THIS LINE! -WEB_UI_DIR=/var/www/html/pialert -NGINX_CONFIG_FILE=/etc/nginx/conf.d/pialert.conf +CONF_FILE=app.conf +DB_FILE=app.db +NGINX_CONF_FILE=netalertx.debian.conf +WEB_UI_DIR=/var/www/html/netalertx +NGINX_CONFIG_FILE=/etc/nginx/conf.d/$NGINX_CONF_FILE OUI_FILE="/usr/share/arp-scan/ieee-oui.txt" # Define the path to ieee-oui.txt and ieee-iab.txt -FILEDB=$INSTALL_DIR/pialert/db/pialert.db +INSTALL_PATH=$INSTALL_DIR/ +FILEDB=$INSTALL_PATH/db/$DB_FILE # DO NOT CHANGE ANYTHING ABOVE THIS LINE! # if custom variables not set we do not need to do anything if [ -n "${TZ}" ]; then - FILECONF=$INSTALL_DIR/pialert/config/pialert.conf + FILECONF=$INSTALL_PATH/config/$CONF_FILE if [ -f "$FILECONF" ]; then - sed -ie "s|Europe/Berlin|${TZ}|g" $INSTALL_DIR/pialert/config/pialert.conf + sed -ie "s|Europe/Berlin|${TZ}|g" $INSTALL_PATH/config/$CONF_FILE else - sed -ie "s|Europe/Berlin|${TZ}|g" $INSTALL_DIR/pialert/back/pialert.conf_bak + sed -ie "s|Europe/Berlin|${TZ}|g" $INSTALL_PATH/back/$CONF_FILE.bak fi fi @@ -33,8 +37,8 @@ fi # Run setup scripts echo "[INSTALL] Run setup scripts" -"$INSTALL_DIR/pialert/install/user-mapping.debian.sh" -"$INSTALL_DIR/pialert/install/install_dependencies.debian.sh" # if modifying this file transfer the changes into the root Dockerfile.debian as well! +"${INSTALL_PATH}/install/user-mapping.debian.sh" +"${INSTALL_PATH}/install/install_dependencies.debian.sh" # if modifying this file transfer the changes into the root Dockerfile.debian as well! echo "[INSTALL] Setup NGINX" @@ -44,7 +48,7 @@ if [ -L /etc/nginx/sites-enabled/default ] ; then sudo rm /etc/nginx/sites-enabled/default elif [ -f /etc/nginx/sites-enabled/default ]; then echo "Disabling default NGINX site, moving config to /etc/nginx/sites-available" - sudo mv /etc/nginx/sites-enabled/default /etc/nginx/sites-available/default.bkp_pialert + sudo mv /etc/nginx/sites-enabled/default /etc/nginx/sites-available/default.bkp_netalertx fi # Clear existing directories and files @@ -58,21 +62,21 @@ if [ -f $NGINX_CONFIG_FILE ]; then sudo rm $NGINX_CONFIG_FILE fi -# create symbolic link to the pialert install directory -ln -s $INSTALL_DIR/pialert/front $WEB_UI_DIR +# create symbolic link to the install directory +ln -s $INSTALL_PATH/front $WEB_UI_DIR # create symbolic link to NGINX configuaration coming with NetAlertX -sudo ln -s "$INSTALL_DIR/pialert/install/netalertx.debian.conf" /etc/nginx/conf.d/pialert.conf +sudo ln -s "${INSTALL_PATH}/install/netalertx.debian.conf" /etc/nginx/conf.d/$NGINX_CONF_FILE # Use user-supplied port if set if [ -n "${PORT}" ]; then echo "Setting webserver to user-supplied port ($PORT)" - sudo sed -i 's/listen 20211/listen '"$PORT"'/g' /etc/nginx/conf.d/pialert.conf + sudo sed -i 's/listen 20211/listen '"$PORT"'/g' /etc/nginx/conf.d/$NGINX_CONF_FILE fi # Change web interface address if set if [ -n "${LISTEN_ADDR}" ]; then - echo "Setting webserver to user-supplied address ($LISTEN_ADDR)" - sed -ie 's/listen /listen '"${LISTEN_ADDR}":'/g' /etc/nginx/conf.d/pialert.conf + echo "Setting webserver to user-supplied address (${LISTEN_ADDR})" + sed -ie 's/listen /listen '"${LISTEN_ADDR}":'/g' /etc/nginx/conf.d/$NGINX_CONF_FILE fi # Run the hardware vendors update at least once @@ -85,8 +89,8 @@ else echo "The file ieee-oui.txt does not exist. Running update_vendors..." # Run the update_vendors.sh script - if [ -f "$INSTALL_DIR/pialert/back/update_vendors.sh" ]; then - "$INSTALL_DIR/pialert/back/update_vendors.sh" + if [ -f "${INSTALL_PATH}/back/update_vendors.sh" ]; then + "${INSTALL_PATH}/back/update_vendors.sh" else echo "update_vendors.sh script not found in $INSTALL_DIR." fi @@ -95,39 +99,39 @@ fi # Create an empty log files # Create the execution_queue.log file if it doesn't exist -touch "$INSTALL_DIR/pialert/front/log/execution_queue.log" -# Create the pialert_front.log file if it doesn't exist -touch "$INSTALL_DIR/pialert/front/log/pialert_front.log" +touch "${INSTALL_PATH}/front/log/execution_queue.log" +# Create the app_front.log file if it doesn't exist +touch "${INSTALL_PATH}/front/log/app_front.log" # Fixing file permissions echo "[INSTALL] Fixing file permissions" -echo "[INSTALL] Fixing WEB_UI_DIR: $WEB_UI_DIR" +echo "[INSTALL] Fixing WEB_UI_DIR: ${WEB_UI_DIR}" chmod -R a+rwx $WEB_UI_DIR -echo "[INSTALL] Fixing INSTALL_DIR: $INSTALL_DIR" +echo "[INSTALL] Fixing INSTALL_DIR: ${INSTALL_DIR}" -chmod -R a+rw $INSTALL_DIR/pialert/front/log +chmod -R a+rw $INSTALL_PATH/front/log chmod -R a+rwx $INSTALL_DIR -echo "[INSTALL] Copy starter pialert.db and pialert.conf if they don't exist" +echo "[INSTALL] Copy starter $DB_FILE and $CONF_FILE if they don't exist" # DANGER ZONE: ALWAYS_FRESH_INSTALL if [ "$ALWAYS_FRESH_INSTALL" = true ]; then - echo "[INSTALL] ❗ ALERT /db and /config folders are cleared because the ALWAYS_FRESH_INSTALL is set to: $ALWAYS_FRESH_INSTALL❗" - # Delete content of "$INSTALL_DIR/pialert/config/" - rm -rf "$INSTALL_DIR/pialert/config/"* + echo "[INSTALL] ❗ ALERT /db and /config folders are cleared because the ALWAYS_FRESH_INSTALL is set to: ${ALWAYS_FRESH_INSTALL}❗" + # Delete content of "/config/" + rm -rf "${INSTALL_PATH}/config/"* - # Delete content of "$INSTALL_DIR/pialert/db/" - rm -rf "$INSTALL_DIR/pialert/db/"* + # Delete content of "/db/" + rm -rf "${INSTALL_PATH}/db/"* fi -# Copy starter pialert.db and pialert.conf if they don't exist -cp -n "$INSTALL_DIR/pialert/back/pialert.conf" "$INSTALL_DIR/pialert/config/pialert.conf" -cp -n "$INSTALL_DIR/pialert/back/pialert.db" "$FILEDB" +# Copy starter $DB_FILE and $CONF_FILE if they don't exist +cp -n "${INSTALL_PATH}/back/$CONF_FILE" "${INSTALL_PATH}/config/$CONF_FILE" +cp -n "${INSTALL_PATH}/back/$DB_FILE" "$FILEDB" echo "[INSTALL] Fixing permissions after copied starter config & DB" @@ -136,13 +140,13 @@ if [ -f "$FILEDB" ]; then fi chmod -R a+rwx $INSTALL_DIR # second time after we copied the files -chmod -R a+rw $INSTALL_DIR/pialert/config -sudo chgrp -R www-data $INSTALL_DIR/pialert +chmod -R a+rw $INSTALL_PATH/config +sudo chgrp -R www-data $INSTALL_PATH # Check if buildtimestamp.txt doesn't exist -if [ ! -f "$INSTALL_DIR/pialert/front/buildtimestamp.txt" ]; then +if [ ! -f "${INSTALL_PATH}/front/buildtimestamp.txt" ]; then # Create buildtimestamp.txt - date +%s > "$INSTALL_DIR/pialert/front/buildtimestamp.txt" + date +%s > "${INSTALL_PATH}/front/buildtimestamp.txt" fi # start PHP @@ -159,7 +163,7 @@ fi # Activate the virtual python environment source myenv/bin/activate -echo "[INSTALL] 🚀 Starting app - navigate to your :$PORT" +echo "[INSTALL] 🚀 Starting app - navigate to your :${PORT}" # Start the NetAlertX python script -python $INSTALL_DIR/pialert/netalertx/ +python $INSTALL_PATH/server/ diff --git a/netalertx/README.md b/server/README.md similarity index 100% rename from netalertx/README.md rename to server/README.md diff --git a/netalertx/__init__.py b/server/__init__.py similarity index 100% rename from netalertx/__init__.py rename to server/__init__.py diff --git a/netalertx/__main__.py b/server/__main__.py similarity index 99% rename from netalertx/__main__.py rename to server/__main__.py index f9deff11..15eb5ece 100755 --- a/netalertx/__main__.py +++ b/server/__main__.py @@ -20,7 +20,7 @@ import time import datetime import multiprocessing -# Register NetAlertX modules NetAlertX directories +# Register NetAlertX modules import conf from const import * from logger import mylog diff --git a/netalertx/api.py b/server/api.py similarity index 98% rename from netalertx/api.py rename to server/api.py index fd2da52b..7c262b8a 100755 --- a/netalertx/api.py +++ b/server/api.py @@ -1,7 +1,7 @@ import json -# Register NetAlertX modules NetAlertX directories +# Register NetAlertX modules import conf from const import (apiPath, sql_appevents, sql_devices_all, sql_events_pending_alert, sql_settings, sql_plugins_events, sql_plugins_history, sql_plugins_objects,sql_language_strings, sql_notifications_all) from logger import mylog diff --git a/netalertx/appevent.py b/server/appevent.py similarity index 99% rename from netalertx/appevent.py rename to server/appevent.py index 97343a61..6a92aaf6 100755 --- a/netalertx/appevent.py +++ b/server/appevent.py @@ -2,7 +2,7 @@ import datetime import json import uuid -# Register NetAlertX modules NetAlertX directories +# Register NetAlertX modules import conf from const import applicationPath, logPath, apiPath, confFileName from logger import logResult, mylog, print_log diff --git a/netalertx/conf.py b/server/conf.py similarity index 100% rename from netalertx/conf.py rename to server/conf.py diff --git a/netalertx/const.py b/server/const.py similarity index 95% rename from netalertx/const.py rename to server/const.py index 703bf0b1..b4a30413 100755 --- a/netalertx/const.py +++ b/server/const.py @@ -3,9 +3,9 @@ #=============================================================================== # PATHS #=============================================================================== -applicationPath = '/home/pi/pialert' -dbFileName = 'pialert.db' -confFileName = 'pialert.conf' +applicationPath = '/app' +dbFileName = 'app.db' +confFileName = 'app.conf' confPath = "/config/" + confFileName dbPath = '/db/' + dbFileName diff --git a/netalertx/database.py b/server/database.py similarity index 99% rename from netalertx/database.py rename to server/database.py index 0adc5b4b..b04768b4 100755 --- a/netalertx/database.py +++ b/server/database.py @@ -3,7 +3,7 @@ import sqlite3 import base64 -# Register NetAlertX modules NetAlertX directories +# Register NetAlertX modules from const import fullDbPath, sql_devices_stats, sql_devices_all from logger import mylog diff --git a/netalertx/device.py b/server/device.py similarity index 100% rename from netalertx/device.py rename to server/device.py diff --git a/netalertx/flows.py b/server/flows.py similarity index 100% rename from netalertx/flows.py rename to server/flows.py diff --git a/netalertx/helper.py b/server/helper.py similarity index 99% rename from netalertx/helper.py rename to server/helper.py index 4b0d9366..122c30c3 100755 --- a/netalertx/helper.py +++ b/server/helper.py @@ -18,6 +18,9 @@ import conf from const import * from logger import mylog, logResult +# Register NetAlertX directories +INSTALL_PATH="/app" + #------------------------------------------------------------------------------- # DateTime #------------------------------------------------------------------------------- @@ -201,11 +204,11 @@ def filePermissions(): (confR_access, dbR_access) = checkPermissionsOK() # Initial check if confR_access == False: - initialiseFile(fullConfPath, "/home/pi/pialert/back/pialert.conf" ) + initialiseFile(fullConfPath, f"{INSTALL_PATH}/back/app.conf" ) # check and initialize .db if dbR_access == False: - initialiseFile(fullDbPath, "/home/pi/pialert/back/pialert.db") + initialiseFile(fullDbPath, f"{INSTALL_PATH}/back/app.db") # last attempt fixPermissions() diff --git a/netalertx/initialise.py b/server/initialise.py similarity index 99% rename from netalertx/initialise.py rename to server/initialise.py index 0debeaad..4613c329 100755 --- a/netalertx/initialise.py +++ b/server/initialise.py @@ -264,7 +264,8 @@ replacements = { r'REPORT_MQTT=True': 'MQTT_RUN=\'on_notification\'', r'PIHOLE_CMD=': 'PIHOLE_CMD_OLD=', r'\bINCLUDED_SECTIONS\b': 'NTFPRCS_INCLUDED_SECTIONS', - r'\bDIG_GET_IP_ARG\b': 'INTRNT_DIG_GET_IP_ARG' + r'\bDIG_GET_IP_ARG\b': 'INTRNT_DIG_GET_IP_ARG', + r'\/home/pi/pialert\b': '/app' } def renameSettings(config_file): diff --git a/netalertx/logger.py b/server/logger.py similarity index 98% rename from netalertx/logger.py rename to server/logger.py index 7992e433..32e49a64 100755 --- a/netalertx/logger.py +++ b/server/logger.py @@ -51,7 +51,7 @@ def file_print (*args): result += str(arg) print(result) - append_to_file_with_timeout(logPath + "/pialert.log", result + '\n', 5) + append_to_file_with_timeout(logPath + "/app.log", result + '\n', 5) #------------------------------------------------------------------------------- # Function to append to the file diff --git a/netalertx/networkscan.py b/server/networkscan.py similarity index 100% rename from netalertx/networkscan.py rename to server/networkscan.py diff --git a/netalertx/notification.py b/server/notification.py similarity index 97% rename from netalertx/notification.py rename to server/notification.py index b4e518b5..a7d4ee1f 100755 --- a/netalertx/notification.py +++ b/server/notification.py @@ -5,7 +5,7 @@ import socket import subprocess from json2table import convert -# Register NetAlertX modules NetAlertX directories +# Register NetAlertX modules import conf from const import applicationPath, logPath, apiPath, confFileName from logger import logResult, mylog, print_log @@ -110,13 +110,13 @@ class Notification_obj: # Report "VERSION" in Header & footer VERSIONFILE = subprocess.check_output(['php', applicationPath + '/front/php/templates/version.php']).decode('utf-8') - mail_text = mail_text.replace ('', VERSIONFILE) - mail_html = mail_html.replace ('', VERSIONFILE) + mail_text = mail_text.replace ('', VERSIONFILE) + mail_html = mail_html.replace ('', VERSIONFILE) # Report "BUILD" in Header & footer BUILDFILE = subprocess.check_output(['php', applicationPath + '/front/php/templates/build.php']).decode('utf-8') - mail_text = mail_text.replace ('', BUILDFILE) - mail_html = mail_html.replace ('', BUILDFILE) + mail_text = mail_text.replace ('', BUILDFILE) + mail_html = mail_html.replace ('', BUILDFILE) # Start generating the TEXT & HTML notification messages html, text = construct_notifications(self.JSON, "new_devices") diff --git a/netalertx/plugin.py b/server/plugin.py similarity index 99% rename from netalertx/plugin.py rename to server/plugin.py index c6c34b5b..5d94ae7b 100755 --- a/netalertx/plugin.py +++ b/server/plugin.py @@ -7,7 +7,7 @@ import base64 from collections import namedtuple -# Register NetAlertX modules NetAlertX directories +# Register NetAlertX modules import conf from const import pluginsPath, logPath, applicationPath from logger import mylog @@ -265,8 +265,8 @@ def execute_plugin(db, plugin, pluginsState = plugins_state() ): else: mylog('debug', [f'[Plugins] The file {file_path} does not exist']) - # pialert-db-query - if plugin['data_source'] == 'pialert-db-query': + # app-db-query + if plugin['data_source'] == 'app-db-query': # replace single quotes wildcards q = set_CMD.replace("{s-quote}", '\'') @@ -303,7 +303,7 @@ def execute_plugin(db, plugin, pluginsState = plugins_state() ): else: mylog('none', ['[Plugins] Skipped invalid sql result']) - # pialert-db-query + # app-db-query if plugin['data_source'] == 'sqlite-db-query': # replace single quotes wildcards # set_CMD should contain a SQL query diff --git a/netalertx/plugin_utils.py b/server/plugin_utils.py similarity index 100% rename from netalertx/plugin_utils.py rename to server/plugin_utils.py diff --git a/netalertx/reporting.py b/server/reporting.py similarity index 99% rename from netalertx/reporting.py rename to server/reporting.py index 4c094aa7..727368f6 100755 --- a/netalertx/reporting.py +++ b/server/reporting.py @@ -13,7 +13,6 @@ import datetime import json -# Register NetAlertX modules NetAlertX directories import conf from const import applicationPath, logPath, apiPath, confFileName from helper import timeNowTZ, get_file_content, write_file, get_timezone_offset, get_setting_value diff --git a/netalertx/scheduler.py b/server/scheduler.py similarity index 100% rename from netalertx/scheduler.py rename to server/scheduler.py diff --git a/test/test_helper.py b/test/test_helper.py index 1e678321..8ca8d75d 100755 --- a/test/test_helper.py +++ b/test/test_helper.py @@ -1,7 +1,7 @@ import sys import pathlib -sys.path.append(str(pathlib.Path(__file__).parent.parent.resolve()) + "/pialert/") +sys.path.append(str(pathlib.Path(__file__).parent.parent.resolve()) + "/server/") import datetime
  • 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 diff --git a/front/img/pialertLogoWhite.png b/front/img/pialertLogoWhite.png deleted file mode 100755 index ae372da986fec55618101b185b908a37414d42a8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42102 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 diff --git a/front/index.php b/front/index.php index 8785e0c4..79e67463 100755 --- a/front/index.php +++ b/front/index.php @@ -1,5 +1,5 @@ - + - @@ -148,7 +147,7 @@ if ($ENABLED_DARKMODE === True) {

    - NetAlertX Report + Net Alertx Report