From 886a3eef9f6e6dc94cf256bc09d3cc4bb4aa97a0 Mon Sep 17 00:00:00 2001 From: jokob-sk Date: Fri, 12 Aug 2022 12:18:52 +1000 Subject: [PATCH] DB setup details for docker + small fixes --- README.md | 10 ++++----- back/pialert.py | 30 +++++++++++++++++++++----- config/pialert.conf | 1 - dockerfiles/README.md | 15 +++++++------ front/help_faq.php | 13 +++++++++++ front/maintenance.php | 20 +++++++++++++---- front/php/server/devices.php | 2 +- front/php/templates/language/en_us.php | 7 ++++++ log/stderr.log | 0 log/stdout.log | 0 10 files changed, 76 insertions(+), 22 deletions(-) create mode 100644 log/stderr.log create mode 100644 log/stdout.log diff --git a/README.md b/README.md index ec20d688..b203ee4b 100644 --- a/README.md +++ b/README.md @@ -12,16 +12,16 @@ JavaScript)* # Docker image 🐳 [![Docker](https://github.com/jokob-sk/Pi.Alert/actions/workflows/docker.yml/badge.svg)](https://github.com/jokob-sk/Pi.Alert/actions/workflows/docker.yml) + + GitHub last commit + [![Docker Image Size](https://img.shields.io/docker/image-size/jokobsk/pi.alert?logo=Docker)](https://hub.docker.com/r/jokobsk/pi.alert) Docker Pulls - - GitHub last commit - - + Docker last pushed - + 🥇 Pi.Alert credit goes to [pucherot/Pi.Alert](https://github.com/pucherot/Pi.Alert).
🐳 Docker Image: [jokobsk/Pi.Alert](https://registry.hub.docker.com/r/jokobsk/pi.alert).
diff --git a/back/pialert.py b/back/pialert.py index 09845f6c..618059f2 100644 --- a/back/pialert.py +++ b/back/pialert.py @@ -45,7 +45,6 @@ else: execfile (PIALERT_PATH + "/config/version.conf") execfile (PIALERT_PATH + "/config/pialert.conf") - #=============================================================================== # MAIN #=============================================================================== @@ -56,6 +55,10 @@ def main (): global sql_connection global sql + # Empty stdout and stderr .log files for debugging if needed + write_file (LOG_PATH + '/stderr.log', '') + write_file (LOG_PATH + '/stdout.log', '') + # Header print ('\nPi.Alert ' + VERSION +' ('+ VERSION_DATE +')') print ('---------------------------------------------------------') @@ -1374,9 +1377,11 @@ def email_reporting (): 'TABLE_EVENTS', mail_text_events, mail_html_events) # DEBUG - Write output emails for testing - if True : - write_file (LOG_PATH + '/report_output.txt', mail_text) - write_file (LOG_PATH + '/report_output.html', mail_html) + #if True : + # write_file (LOG_PATH + '/report_output.txt', mail_text) + # write_file (LOG_PATH + '/report_output.html', mail_html) + + # Send Mail if mail_section_Internet == True or mail_section_new_devices == True \ @@ -1492,6 +1497,12 @@ def write_file (pPath, pText): file.write (pText) file.close() +#------------------------------------------------------------------------------- +def append_file_binary (pPath, input): + file = open (pPath, 'ab') + file.write (input) + file.close() + #------------------------------------------------------------------------------- def append_line_to_file (pPath, pText): # append the line depending using the correct python version @@ -1553,7 +1564,16 @@ def send_webhook (_Text): else: _WEBHOOK_URL = WEBHOOK_URL - requests.post(_WEBHOOK_URL, json.dumps(_json_payload)) + p = subprocess.Popen(["curl","-i","-X", "GET" ,"-H", "Content-Type:application/json" ,"-d", json.dumps(_json_payload), _WEBHOOK_URL], stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + + stdout, stderr = p.communicate() + + # write stdout and stderr into .log files for debugging if needed + if stderr != None: + append_file_binary (LOG_PATH + '/stderr.log', stderr) + if stdout != None: + append_file_binary (LOG_PATH + '/stdout.log', stdout) + #=============================================================================== # DB diff --git a/config/pialert.conf b/config/pialert.conf index d037bf16..14b32b54 100644 --- a/config/pialert.conf +++ b/config/pialert.conf @@ -40,7 +40,6 @@ WEBHOOK_URL = 'http://n8n.local:5555/webhook-test/aaaaaaaa-aaaa-aaaa # ---------------------- REPORT_NTFY = False NTFY_TOPIC = 'replace_my_secure_topicname_91h889f28' -REPORT_DASHBOARD_URL = 'http://pi.alert/' # PUSHSAFER (https://www.pushsafer.com/) settings # ---------------------- diff --git a/dockerfiles/README.md b/dockerfiles/README.md index 51c2ad75..d241e65b 100644 --- a/dockerfiles/README.md +++ b/dockerfiles/README.md @@ -1,14 +1,14 @@ [![Docker](https://github.com/jokob-sk/Pi.Alert/actions/workflows/docker.yml/badge.svg)](https://github.com/jokob-sk/Pi.Alert/actions/workflows/docker.yml) + + GitHub last commit + [![Docker Image Size](https://img.shields.io/docker/image-size/jokobsk/pi.alert?logo=Docker)](https://hub.docker.com/r/jokobsk/pi.alert) Docker Pulls - - GitHub last commit - - + Docker last pushed - + # 🐳 A docker image for Pi.Alert @@ -46,7 +46,10 @@ Default Port * ... or by mapping the files individually `pialert.conf:/home/pi/pialert/config/pialert.conf` and `version.conf:/home/pi/pialert/config/version.conf` 4. Set the `TZ` environment variable to your current time zone (e.g.`Europe/Paris`). Find your time zone [here](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones). 5. Database backup - * The DB is stored under `/home/pi/pialert/db/pialert.db`. Map this file to a persistent location (see [Examples](https://github.com/jokob-sk/Pi.Alert/tree/main/dockerfiles#page_facing_up-examples) for details). If facing issues (AJAX errors, can't write to DB, etc, make sure permissions are set correctly, alternatively check the logs under `/home/pi/pialert/log`) + * Download the [original DB from GitHub](https://github.com/jokob-sk/Pi.Alert/blob/main/db/pialert.db). + * Map the `pialert.db` file (⚠ not folder) from above to `/home/pi/pialert/db/pialert.db` (see [Examples](https://github.com/jokob-sk/Pi.Alert/tree/main/dockerfiles#-examples) for details). + * If facing issues (AJAX errors, can't write to DB, etc,) make sure permissions are set correctly, alternatively check the logs under `/home/pi/pialert/log`. + * To solve permission issues you can also try to create a DB backup and then run a DB Restore via the **Maintenance > Backup/Restore** section. 6. The container supports mapping to local User nad Group IDs. Specify the enviroment variables `HOST_USER_ID` and `HOST_USER_GID` if needed. 7. You can override the port by specifying the `PORT` env variable. diff --git a/front/help_faq.php b/front/help_faq.php index 0827bb7a..543e1218 100644 --- a/front/help_faq.php +++ b/front/help_faq.php @@ -65,6 +65,19 @@ if ($_SESSION["login"] != 1) +
+
+

+ + +

+
+
+
+ +
+
+

diff --git a/front/maintenance.php b/front/maintenance.php index ee7fe6dd..9a0bb56b 100644 --- a/front/maintenance.php +++ b/front/maintenance.php @@ -364,11 +364,11 @@ if (submit && isset($_POST['langselector_set'])) {
- - GitHub last commit + + - - Docker last pushed + +
@@ -570,6 +570,18 @@ function PiaToggleArpScan() }); } +// laod footer asynchronously not to block the page load/other sections +window.onload = function asyncFooter() +{ + $("#lastCommit").append('GitHub last commit'); + + $("#lastDockerUpdate").append( + 'Docker last pushed'); + +} + + + diff --git a/front/php/server/devices.php b/front/php/server/devices.php index 6c7fb92b..f64ec217 100644 --- a/front/php/server/devices.php +++ b/front/php/server/devices.php @@ -45,7 +45,7 @@ if (strlen($pia_lang_selected) == 0) {$pia_lang_selected = 'en_us';} case 'deleteDevice': deleteDevice(); break; case 'deleteAllWithEmptyMACs': deleteAllWithEmptyMACs(); break; case 'createBackupDB': createBackupDB(); break; - case 'restoreBackupDB': restoreBackupDB(); break; + case 'deleteAllDevices': deleteAllDevices(); break; case 'runScan15min': runScan15min(); break; case 'runScan1min': runScan1min(); break; diff --git a/front/php/templates/language/en_us.php b/front/php/templates/language/en_us.php index 0f761fe6..ec6a7eed 100644 --- a/front/php/templates/language/en_us.php +++ b/front/php/templates/language/en_us.php @@ -361,6 +361,13 @@ $pia_lang['HelpFAQ_Cat_General_102_text'] = 'Check in the Pi.Alert directory if chmod -R 770 ~/pialert/db
If the database is still read-only, try reinstalling or restoring a database backup from the maintenance page.'; +$pia_lang['HelpFAQ_Cat_General_102docker_head'] = '(Docker only 🐳) Database issues (AJAX errors, read-only, not found)'; +$pia_lang['HelpFAQ_Cat_General_102docker_text'] = 'Double-check you\'ve followed the dockerfile readme (most up-to-date info).

    +
  • Download the original DB from GitHub.
  • +
  • Map the pialert.db file ( not folder) from above to /home/pi/pialert/db/pialert.db (see Examples for details).
  • +
  • If facing issues (AJAX errors, can\'t write to DB, etc,) make sure permissions are set correctly, alternatively check the logs under /home/pi/pialert/log.
  • +
  • To solve permission issues you can also try to create a DB backup and then run a DB Restore via the Maintenance > Backup/Restore section.
  • +
'; $pia_lang['HelpFAQ_Cat_General_103_head'] = 'The login page does not appear, even after changing the password.'; $pia_lang['HelpFAQ_Cat_General_103_text'] = 'In addition to the password, the configuration file must contain ~/pialert/config/pialert.conf also the parameter PIALERT_WEB_PROTECTION must set to True.'; diff --git a/log/stderr.log b/log/stderr.log new file mode 100644 index 00000000..e69de29b diff --git a/log/stdout.log b/log/stdout.log new file mode 100644 index 00000000..e69de29b