Compare commits

...

997 Commits

Author SHA1 Message Date
Jokob-sk
f029fa1cc8 pihole + setting fixes 2023-09-13 08:07:15 +10:00
jokob-sk
7084c69171 Merge pull request #440 from cvc90/Pi.Alert-Fix-Readme.md-file-for-plugins
Pi.Alert - Fix readme files for plugins
2023-09-12 20:13:21 +00:00
jokob-sk
3ada622bd0 Merge pull request #437 from cvc90/Pi.Alert-Fix-CMD-function-Pihole-Scan-Plugin
Pi.Alert - Fix "CMD" function in pihole_scan plugin
2023-09-12 20:11:25 +00:00
jokob-sk
93d08de2ab Merge pull request #436 from cvc90/Pi.Alert-Fix-Reverse-Proxy-settings.php
Fix "saveSettings" function in settings.php for reverse proxies
2023-09-12 20:08:04 +00:00
Carlos V
64da64105e Update README_DE.md
Updated the file with the latest news in the README.md file
2023-09-12 19:15:24 +02:00
Carlos V
3e448b123b Create README_DE.md
Created file "README_DE.md", which is a copy of the file "README.md" but translated into German.
2023-09-12 19:08:04 +02:00
Carlos V
bedbebbe04 Update README.md
Removed "Community translations of this file" in footer
2023-09-12 18:40:06 +02:00
Carlos V
4b3d876fbd Update README.md
Added flag in subtitle translations
2023-09-12 18:37:36 +02:00
Carlos V
d52709cb72 Update README.md
Added flag in subtitle translations
Added American flag in subtitle translations
Added German flag in subtitle translations
Fixed style in subtitle translations
2023-09-12 18:36:45 +02:00
Carlos V
ed53e59a00 Update README_ES.md
Fixed style in subtitle translations
2023-09-12 18:33:05 +02:00
Carlos V
0fcf089d39 Update README_ES.md
Added flag in subtitle translations
Added American flag in subtitle translations
Added German flag in subtitle translations
Fixed style in subtitle translations
2023-09-12 18:31:26 +02:00
Carlos V
25abc1b59b Update README_ES.md
Updated the file with the latest news in the README.md file
2023-09-12 18:06:01 +02:00
Carlos V
516eef0431 Update config.json
"CMD" function is corrected by adding {s-quote} in "default_value"
2023-09-12 16:30:13 +02:00
Carlos V
5df5bdef59 Update settings.php
The "saveSettings" function is corrected by changing the relative url to an absolute url so that it works correctly with reverse proxies.
2023-09-12 16:08:32 +02:00
Jokob-sk
4eddad5bf4 new version email template 2023-09-12 21:44:20 +10:00
Jokob-sk
794bfcc25c #424 work - network page 2023-09-12 21:11:36 +10:00
Jokob-sk
0f56f06937 #433, 435 work - handle empty in DHCPLSS, email templates fixes 2023-09-12 20:32:09 +10:00
Jokob-sk
78a87c4ed0 pihole #418 work 2023-09-11 10:18:01 +10:00
Jokob-sk
af41eed26c devices status badge #428 work 2023-09-11 08:07:28 +10:00
Jokob-sk
5169ac32a1 dhcplss #420 work 2023-09-11 08:00:02 +10:00
Jokob-sk
1e7c50b0fe Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-09-11 06:59:41 +10:00
Jokob-sk
31f7521501 docs 2023-09-11 06:59:33 +10:00
jokob-sk
a29e700b83 Merge pull request #427 from cvc90/Pi.Alert-Fix-pialert_common.js
Pi.Alert - Fix pialert_common.js
2023-09-10 20:34:20 +00:00
jokob-sk
04c45bd39f Merge pull request #423 from D3SOX/patch-1
fix(translation): correct 'don not' 😁 @KrunchMuffin lol
2023-09-10 20:33:37 +00:00
jokob-sk
524bf1f676 Merge pull request #429 from cvc90/Pi.Alert-Fixed-json-German-language
Pi.Alert - Fixed German language problem in .json file
2023-09-10 20:31:59 +00:00
Carlos V
ee63f3fe0d Update de_de.json
Fixed blank spaces
Fixed .json style
Fixed a bug in the variable "Systeminfo_General_Date2"
2023-09-10 20:50:12 +02:00
Carlos V
295db87113 Update pialert_common.js
Fix url in initDeviceListAll_JSON() function
2023-09-10 20:04:32 +02:00
Nico
1f54292fbc fix(translation): correct 'don not' 2023-09-10 15:44:47 +02:00
Jokob-sk
eea4e2642c CSV import column order fix 2023-09-10 18:41:53 +10:00
Jokob-sk
8b81501b44 cleanup 2023-09-10 17:56:43 +10:00
Jokob-sk
148f3198ce ignore_plugin, cleanup + docs 2023-09-10 08:41:46 +10:00
Jokob-sk
b7417a07ad cleanup + docs 2023-09-09 20:36:00 +10:00
Jokob-sk
844311f4e8 dev details refactoring v0.2 2023-09-09 09:32:04 +10:00
jokob-sk
da45606f64 Merge pull request #417 from cvc90/Pi.Alert-New-Nslookup-Tool
Pi.Alert - Added new tool "nslookup" in the "Tools" tab
2023-09-08 21:23:12 +00:00
jokob-sk
cf0cc4cc17 Merge pull request #416 from cvc90/Pi.Alert-Fixes-CSV-Backup-Plugin-Translations-v2
Pi.Alert - Fixes CSV Backup (Plugin) translations v2
2023-09-08 21:21:13 +00:00
Carlos V
edd8fd0fbc Update de_de.json
Added translation variable "DevDetail_Tab_Tools_Nslookup_Title"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Description"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Start"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Error"
2023-09-08 18:45:38 +02:00
Carlos V
05c3613d3f Update es_es.json
Added translation variable "DevDetail_Tab_Tools_Nslookup_Title"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Description"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Start"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Error"
2023-09-08 18:45:02 +02:00
Carlos V
ebbbebf352 Update en_us.json
Added translation variable "DevDetail_Tab_Tools_Nslookup_Title"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Description"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Start"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Error"
2023-09-08 18:44:23 +02:00
Carlos V
ea478ae5e6 Create nslookup.php
Created file "nslookup.php" to perform the necessary functions of the "nslookup" command in the "Tools" tab
2023-09-08 18:35:45 +02:00
Carlos V
be57534b2a Update deviceDetailsTools.php
Added new nslookup section
Added new nslookup function
2023-09-08 18:32:18 +02:00
Carlos V
7c11f0fa38 Update config.json
fix tag <code>
2023-09-08 18:15:16 +02:00
Jokob-sk
a3b05c3760 dev details refactoring v0.1 2023-09-08 08:03:00 +10:00
jokob-sk
04a91b2bb7 Merge pull request #415 from cvc90/Pi.Alert-Fixes-CSV-Backup-Plugin-Translations
Pi.Alert - Fixes CSV Backup (Plugin) translations
2023-09-07 20:15:58 +00:00
Carlos V
1d81a20e6f Update config.json
Added Spanish translation
Added German translation
2023-09-07 19:08:05 +02:00
Carlos V
989ec68666 Update README_ES.md
Removed "." from translation title
2023-09-07 18:45:27 +02:00
Carlos V
5401e2729b Update README_ES.md
Updated text link to translations
2023-09-07 18:44:28 +02:00
Carlos V
5c6bb2fa0d Update README.md
Updated text link to translations
2023-09-07 18:43:54 +02:00
Carlos V
858e02f7c6 Create README_DE.md
Created the README_DE.md file (front/plugins/csv_backup) which is a version of README.md (front/plugins/csv_backup) translated into Deutsch.
2023-09-07 18:41:20 +02:00
Carlos V
dd65bd5744 Update README_ES.md
Added link to translated version in English
Added link to translated version in German
2023-09-07 18:31:29 +02:00
Carlos V
6ba1bdb7de Update README.md
Added link to translated version in Spanish
Added link to translated version in German
2023-09-07 18:26:01 +02:00
Carlos V
b7e3263b38 Create README_ES.md
Created the README_ES.md file (front/plugins/csv_backup) which is a version of README.md (front/plugins/csv_backup) translated into Spanish.
2023-09-07 17:30:38 +02:00
Jokob-sk
4830d54229 CSV backup work 2023-09-07 22:46:42 +10:00
Jokob-sk
85911c8ff4 Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-09-07 08:09:46 +10:00
Jokob-sk
296891ca67 CSV backup work 2023-09-07 08:09:25 +10:00
jokob-sk
7d0762ff35 Merge pull request #414 from cvc90/Pi.Alert-New-Tracert-Tool
Added new tool "Tracert" in the "Tools" tab
2023-09-06 20:59:16 +00:00
jokob-sk
127d9e6196 Merge pull request #413 from cvc90/Pi.Alert-fixes-improvements-systeminfo-v6
Pi.Alert fixes improvements System Info v6
2023-09-06 20:57:51 +00:00
Carlos V
6c58281c2e Update Dockerfile
Updated new Tracert tool in "apt install"
2023-09-06 19:33:20 +02:00
Carlos V
beeeb4bd33 Update Dockerfile
Added new Tracert tool in "apt install"
2023-09-06 19:04:45 +02:00
Carlos V
9aa1462e17 Update de_de.json
Updated translation variable "DevDetail_Tab_Tools_Traceroute_Description"
2023-09-06 18:51:25 +02:00
Carlos V
6637d9c954 Update de_de.json
Updated translation variable "DevDetail_Tab_Tools_Traceroute_Description"
2023-09-06 18:50:25 +02:00
Carlos V
f1344f16fa Update en_us.json
Updated translation variable "DevDetail_Tab_Tools_Traceroute_Description"
2023-09-06 18:48:03 +02:00
Carlos V
abbaa1c11f Update es_es.json
Updated translation variable "DevDetail_Tab_Tools_Traceroute_Description"
2023-09-06 18:45:38 +02:00
Carlos V
87a10a721b Create traceroute.php
Created file "traceroute.php" to perform the necessary functions of the "Tracert" command in the "Tools" tab
2023-09-06 18:34:19 +02:00
Carlos V
2230df591e Update de_de.json
Added translation variable "DevDetail_Tab_Tools_Traceroute_Title"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Description"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Start"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Error"
2023-09-06 18:27:58 +02:00
Carlos V
2898805514 Update es_es.json
Added translation variable "DevDetail_Tab_Tools_Traceroute_Title"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Description"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Start"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Error"
2023-09-06 18:27:01 +02:00
Carlos V
c906ccda91 Update en_us.json
Added translation variable "DevDetail_Tab_Tools_Traceroute_Title"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Description"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Start"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Error"
2023-09-06 18:25:58 +02:00
Carlos V
d1101aee47 Update deviceDetails.php
Added h5 tag for description in "Tracert" tool in "Tools"
2023-09-06 18:14:12 +02:00
Carlos V
39157360ef Update deviceDetails.php
Added new tool in the "Tools" tab
2023-09-06 18:12:22 +02:00
Carlos V
e4a34ecd2b Update de_de.json
Updated translation variable "Systeminfo_System_Running_Processes"
2023-09-06 17:06:57 +02:00
Carlos V
d444ad31ce Update en_us.json
Updated translation variable "Systeminfo_System_Running_Processes"
2023-09-06 17:06:39 +02:00
Carlos V
06a11f43ea Update es_es.json
Updated translation variable "Systeminfo_System_Running_Processes"
2023-09-06 17:06:25 +02:00
Carlos V
fdcf12fb86 Update systeminfo.php
Changed translation variable "Systeminfo_Running_Processes" to "Systeminfo_System_Running_Processes"
2023-09-06 17:02:57 +02:00
Carlos V
59682f6840 Update de_de.json
Added translation variable "Systeminfo_System_Running_Processes"
2023-09-06 17:01:39 +02:00
Carlos V
949052d00c Update es_es.json
Added translation variable "Systeminfo_System_Running_Processes"
2023-09-06 17:01:10 +02:00
Carlos V
e7fd39112e Update en_us.json
Added translation variable "Systeminfo_System_Running_Processes"
2023-09-06 16:59:50 +02:00
Carlos V
028c4a9cb4 Update systeminfo.php
Cleaning and fixing code in the "Storage usage" section
2023-09-06 16:51:19 +02:00
Carlos V
274f954b8a Update systeminfo.php
Code cleanup in the "Storage" section
2023-09-06 16:38:45 +02:00
Carlos V
e44bceaed5 Update systeminfo.php
Fix  "Network Hardware"
2023-09-06 16:33:38 +02:00
Carlos V
9fe8d8a3b4 Update systeminfo.php
New comments in "General stats"
2023-09-06 16:24:37 +02:00
Carlos V
ab59d529ec Update systeminfo.php
New comments in "System stats"
2023-09-06 16:23:15 +02:00
Carlos V
7581e4f63a Update systeminfo.php
Added new function "system_process_count" to see the number of processes executed in the system
2023-09-06 16:20:13 +02:00
Carlos V
8f15579136 Update systeminfo.php
Added new comments in functions
Changed the order of functions
2023-09-06 16:16:45 +02:00
Carlos V
2b9323ac98 Update systeminfo.php
Added new function "system_process_count" to see the number of processes executed in the system
2023-09-06 15:45:11 +02:00
Jokob-sk
8676b7ccde Add cur_ScanMethod & fix Plugins display name in lists 2023-09-06 22:03:28 +10:00
Jokob-sk
cd43935656 Timeout for logging to file 2023-09-06 07:10:27 +10:00
jokob-sk
f6a08fc3d4 Merge pull request #412 from cvc90/Pi.Alert-Fixes-URL-Maintenance
Url fixes for the ImportCSV and ExportCSV functions in maintenance.php
2023-09-05 20:21:40 +00:00
jokob-sk
166af4ce8d Merge pull request #411 from cvc90/Pi.Alert-Fixes-Nmap-Scan-Plugin-Translations
Fixes in the Spanish translations of the Nmap Scan plugin
2023-09-05 20:20:42 +00:00
jokob-sk
7943977ff5 Merge pull request #410 from cvc90/Pi.Alert-Adds-SpeedTest-deviceDetails.php
Pi.alert adds SpeedTest in devicedetails.php
2023-09-05 20:19:57 +00:00
Carlos V
2e407d9e8f Update maintenance.php
Fixed URL of ExportCSV function
2023-09-05 17:33:47 +02:00
Carlos V
04cf16cc94 Update maintenance.php
Fixed URL of ImportCSV function
2023-09-05 17:28:22 +02:00
Carlos V
fa6df3cff8 Update config.json
Fixes in Spanish translations
2023-09-05 16:46:59 +02:00
Carlos V
0476689c25 Update de_de.json
Added translation variable "DevDetail_Tab_Tools_Internet_Description"
Changed translation variable for "DevDetail_Internet_Speedtest" "DevDetail_Tab_Tools_Internet_Speedtest_Title"
Changed translation variable from "DevDetail_Internet_Speedtest_Start" to "DevDetail_Tab_Tools_Internet_Speedtest_Start"
2023-09-05 15:54:02 +02:00
Carlos V
ce2d955c86 Update es_es.json
Added translation variable "DevDetail_Tab_Tools_Internet_Description"
Changed translation variable for "DevDetail_Internet_Speedtest" "DevDetail_Tab_Tools_Internet_Speedtest_Title"
Changed translation variable from "DevDetail_Internet_Speedtest_Start" to "DevDetail_Tab_Tools_Internet_Speedtest_Start"
2023-09-05 15:51:06 +02:00
Carlos V
d62a1f077a Update en_us.json
Added translation variable "DevDetail_Tab_Tools_Internet_Description"
Changed translation variable for "DevDetail_Internet_Speedtest" "DevDetail_Tab_Tools_Internet_Speedtest_Title"
Changed translation variable from "DevDetail_Internet_Speedtest_Start" to "DevDetail_Tab_Tools_Internet_Speedtest_Start"
2023-09-05 15:49:01 +02:00
Carlos V
14a1d61bb1 Update deviceDetails.php
Added <br> tag in the "Tools" tab in the "Internet info" section
Added new tool "SpeedTest" in the "Tools" tab (This tool is only shown when the mac is equal to the Internet)
Added new translation variable "DevDetail_Tab_Tools_Speedtest_Title" in the "SpeedTest" tool in the "Tools" tab
Added new translation variable "DevDetail_Tab_Tools_Speedtest_Description" in the "SpeedTest" tool in the "Tools" tab
Added new translation variable "DevDetail_Tab_Tools_Speedtest_Start" in the "SpeedTest" tool in the "Tools" tab
2023-09-05 15:41:39 +02:00
Jokob-sk
069522febe mylog timeout, merges 2023-09-05 07:53:47 +10:00
jokob-sk
28df1e6aaf Merge pull request #409 from cvc90/Pi.Alert-Fixes-deviceDetails.php
Pi.alert fixes in deviceDetails.php
2023-09-04 21:13:00 +00:00
jokob-sk
bdcef1a37e Merge pull request #408 from cvc90/Pi.Alert-PiAlert-Translation
New translation in PiAlert section
2023-09-04 21:11:50 +00:00
jokob-sk
1580810597 Merge pull request #407 from cvc90/Pi.Alert-Dockerfiles-Translation
New translation in dockerfiles section
2023-09-04 21:11:04 +00:00
Carlos V
d4c724e79c Delete front/php/templates/internetinfo.php 2023-09-04 18:48:47 +02:00
Carlos V
361952ec5a Create internetinfo.php
Created file "internetinfo.php" to perform the necessary functions of collecting information about the Internet connection.
2023-09-04 18:48:21 +02:00
Carlos V
c2a4713024 Update de_de.json
Added translation variable "DevDetail_Tab_Tools_Internet_Info_Title"
Added translation variable "DevDetail_Tab_Tools_Internet_Info_Description"
Added translation variable "DevDetail_Tab_Tools_Tools_Internet_Info_Start"
Added translation variable "DevDetail_Tab_Tools_Internet_Info_Error"
2023-09-04 18:36:46 +02:00
Carlos V
8c60e98852 Update es_es.json
Added translation variable "DevDetail_Tab_Tools_Internet_Info_Title"
Added translation variable "DevDetail_Tab_Tools_Internet_Info_Description"
Added translation variable "DevDetail_Tab_Tools_Tools_Internet_Info_Start"
Added translation variable "DevDetail_Tab_Tools_Internet_Info_Error"
2023-09-04 18:35:03 +02:00
Carlos V
10371e8411 Update en_us.json
Added translation variable "DevDetail_Tab_Tools_Internet_Info_Title"
Added translation variable "DevDetail_Tab_Tools_Internet_Info_Description"
Added translation variable "DevDetail_Tab_Tools_Tools_Internet_Info_Start"
Added translation variable "DevDetail_Tab_Tools_Internet_Info_Error"
2023-09-04 18:33:15 +02:00
Carlos V
053bcff11c Update internetinfo.php
Updated variable "DevDetail_Tab_Internet_Info_Error"
to "DevDetail_Tab_Tool_Internet_Info_Error"
2023-09-04 18:26:24 +02:00
Carlos V
841bd16701 Create internetinfo.php
Created file "internetinfo.php" to perform the necessary functions of collecting information about the Internet connection.
2023-09-04 18:15:57 +02:00
Carlos V
657e6e2f8d Update deviceDetails.php
Fixed the "internetinfo" function in the "Tools" tab
Added h5 tag for description of the "internetinfo" function
Added translation variable "DevDetail_Tab_Tools_Internet_Info_Description"
Modified translation variable from "DevDetail_Tools_Internet_Info_Title" to "DevDetail_Tab_Tools_Internet_Info_Title"
Modified translation variable from "DevDetail_Tools_Internet_Info_Start" to "DevDetail_Tab_Tools_Internet_Info_Start"
2023-09-04 18:12:40 +02:00
Carlos V
89ea7c02c6 Create README_ES.md
Created the README_ES.md file (pialert) which is a version of README.md (pialert) translated into Spanish.
2023-09-04 17:25:24 +02:00
Carlos V
297b9158e1 Create README_ES.md
Created the README_ES.md file (dockerfiles) which is a version of README.md (dockerfiles) translated into Spanish.
2023-09-04 16:53:58 +02:00
Jokob-sk
0ab1f9e19a SMTP timeout, threshold fixes 2023-09-03 12:04:22 +10:00
Jokob-sk
25b54d1f62 UNIFI, undiscoverables, docs work 2023-09-02 13:30:19 +10:00
Jokob-sk
854ef20826 NMAP + docs work 2023-09-02 09:25:22 +10:00
Jokob-sk
bed4e6a152 readme 2023-09-01 22:15:21 +10:00
Jokob-sk
a379054f5b Plugins code cleanup + refactoring 0.2 2023-09-01 22:03:32 +10:00
Jokob-sk
b5e933ba12 Plugins code cleanup 0.1 2023-09-01 08:11:28 +10:00
Jokob-sk
9afed6e43b Plugins code cleanup 0.1 2023-09-01 08:04:14 +10:00
Jokob-sk
015ce23fe2 PIHOLE, VLAN docs fixes 2023-09-01 07:10:28 +10:00
Jokob-sk
6dcf09a2f6 NMAP, PHOLUS, PIHOLE, DB upgrade + cleanup, docs fixes 2023-08-31 08:10:29 +10:00
jokob-sk
7391df9f7b Merge pull request #403 from tuhriel/hotfix_unifi_online_state
Hotfix unifi online state - Thanks @tuhriel 🙏
2023-08-30 20:43:37 +00:00
stefan-linux
6032667ea7 removed changes to compose file 2023-08-30 14:22:44 +02:00
stefan-linux
8ae8d6aa27 set logging to INFO and updated log message 2023-08-30 14:06:48 +02:00
stefan-linux
b281652009 changed unifi_import to only export online devices 2023-08-30 13:18:53 +02:00
pi@skippy
82e9a4a8ef Merge remote-tracking branch 'upstream/main' 2023-08-30 12:55:33 +02:00
Jokob-sk
f9baa603f4 NMAP plugin conversion v0.3 2023-08-30 08:03:02 +10:00
pi@skippy
f1a553aac6 updated fork from original 2023-08-29 16:54:05 +02:00
jokob-sk
61df3ec581 Merge pull request #401 from tuhriel/unifi-scanner-bugfix
enable unifi scanner to show online state of devices - thanks so much @tuhriel 🙏
2023-08-27 20:50:56 +00:00
jokob-sk
8ffc07a110 Merge branch 'main' into unifi-scanner-bugfix 2023-08-27 20:50:00 +00:00
jokob-sk
a794170adf Merge pull request #400 from andreasbrett/patch-1
UniFi: bugfix and new feature - thanks to @andreasbrett 🙏
2023-08-27 20:47:40 +00:00
jokob-sk
6c28c14e7c Merge pull request #399 from cvc90/Pi.Alert-Split-Nmap-Tool-tabs-deviceDetails
Split "Nmap" and "tools" tabs in deviceDetails.php
2023-08-27 20:44:42 +00:00
Jokob-sk
a1b17a238b NMAP plugin conversion v0.2 2023-08-28 06:44:19 +10:00
tuhriel
53f41a9434 reduced script debug level to info 2023-08-27 17:14:47 +02:00
pi@skippy
2223050523 updated unifi_import to actually show online state, added some german translation to config 2023-08-27 16:53:35 +02:00
Andreas Brett
eb7282201b typo
parameter is `sites` not `site`
2023-08-27 14:14:55 +02:00
Andreas Brett
396416ad29 Update config.json 2023-08-27 14:07:36 +02:00
Andreas Brett
9c76c9f79c update parameters
- add verifyssl (should be an option to pass to pyunify.controller)
- remove protocol (not used in pyunify.controller)
2023-08-27 13:53:49 +02:00
Jokob-sk
c4adb03c50 NMAP plugin conversion v0.2 2023-08-27 19:11:59 +10:00
Jokob-sk
1d8beb9222 Resolved merge conflict in es_es.json 2023-08-27 18:48:30 +10:00
Jokob-sk
e6644ad3ec NMAP plugin conversion v0.1 2023-08-27 18:45:07 +10:00
Carlos V
dce40cb9fb Update deviceDetails.php
Split content into Nmap and Tools tab
Added icon in "Nmap" tab
Added icon in "Tools" tab
2023-08-26 22:17:12 +02:00
Carlos V
d6cf983b93 Update deviceDetails.php
The Nmap and Tools section has been divided into "tab control".

Nmap tab is now only shown if it is a device that contains MAC address
2023-08-26 22:01:56 +02:00
jokob-sk
0b350b686e Merge pull request #397 from cvc90/Pi.Alert-Multiple-translation-fixes-settings
Pi.alert multiple translation fixes in settings
2023-08-26 19:53:58 +00:00
jokob-sk
fa7d2534bf Merge pull request #398 from cvc90/Pi.Alert-New-Pholus-Scan-Plugin-Translations-V2
Pi.alert new pholus scan plugin translations v2
2023-08-26 19:53:10 +00:00
Carlos V
3a2afa4bf4 Update config.json
Updated string "description" in Spanish
2023-08-26 21:15:55 +02:00
Carlos V
57c9c5b23f Update config.json
Updated config.json file with new Spanish translation variables.
2023-08-26 21:11:26 +02:00
Carlos V
facc6619e2 Update es_es.json
Updated translation variable "DDNS_USER_description"
2023-08-26 20:38:03 +02:00
Carlos V
6b0a65c427 Update en_us.json
Updated translation variable "DDNS_ACTIVE_description"
Updated translation variable "DDNS_DOMAIN_description"
Updated translation variable "DDNS_USER_description"
Updated translation variable "DDNS_PASSWORD_description"
2023-08-26 20:37:04 +02:00
Carlos V
fb489adc66 Update es_es.json
Updated translation variable "DDNS_PASSWORD_description"
2023-08-26 20:34:26 +02:00
Carlos V
45c03aee45 Update es_es.json
Added translation variable "NMAP_TIMEOUT_name"
2023-08-26 20:26:36 +02:00
Carlos V
41cfdcdc00 Update es_es.json
Updated translation variable "DDNS_ACTIVE_description"
Updated translation variable "DDNS_DOMAIN_description"
Updated translation variable "DDNS_USER_description"
Updated translation variable "DDNS_PASSWORD_description"
2023-08-26 20:23:40 +02:00
Carlos V
e14475afb0 Update es_es.json
Updated translation variable "NTFY_HOST_name"
2023-08-26 20:04:30 +02:00
Carlos V
64a3c348bd Update es_es.json
Updated translation variable "APPRISE_HOST_name"
Updated translation variable "APPRISE_HOST_description"
2023-08-26 20:02:42 +02:00
Carlos V
c57513618b Update es_es.json
Added translation variables "APPRISE_SIZE_name"
Added translation variables "APPRISE_SIZE_description"
2023-08-26 19:52:04 +02:00
Jokob-sk
b114de1fd9 Removal of DHCP_Leases and PiHole DB tables 2023-08-26 12:31:49 +10:00
jokob-sk
ed0276b61e Merge pull request #380 from cvc90/Pi.Alert-Fix-README_ES.md
Updating the file README_ES.md to be up to date with the English version
2023-08-25 21:08:39 +00:00
jokob-sk
6998f11967 Merge pull request #381 from cvc90/Pi.Alert-New-Arp-Scan-Plugin-Translations
Created README_ES.md (front/plugins/arp_scan)
2023-08-25 21:08:21 +00:00
jokob-sk
956fcf65ed Merge pull request #390 from cvc90/Pi.Alert-New-Snmp-Discovery-Plugin-Translations
Created README_ES.md (front/plugins/snmp_discovery)
2023-08-25 21:08:09 +00:00
jokob-sk
e32844d2f2 Merge pull request #386 from cvc90/Pi.Alert-New-Nmap-Services-Plugin-Translations
Created README_ES.md (front/plugins/nmap_services)
2023-08-25 21:07:58 +00:00
jokob-sk
3dca9da5e3 Merge pull request #394 from cvc90/Pi.Alert-Translation-Loading-deviceDetails.php
Translation "Loading/Spinner" in deviceDetails.php
2023-08-25 21:07:47 +00:00
jokob-sk
5a060722a1 Merge pull request #392 from cvc90/Pi.Alert-New-Unifi-Import-Plugin-Translations
Created README_ES.md (front/plugins/unifi_import)
2023-08-25 21:07:18 +00:00
jokob-sk
f3dac743d1 Merge pull request #387 from cvc90/Pi.Alert-New-Pholus-Scan-Plugin-Translations
Created README_ES.md (front/plugins/pholus_scan)
2023-08-25 21:07:05 +00:00
jokob-sk
a07ed7ee85 Merge pull request #385 from cvc90/Pi.Alert-New-Newdev-Template-Plugin-Translations
Created README_ES.md (front/plugins/newdev_template)
2023-08-25 21:06:54 +00:00
jokob-sk
d54722cf03 Merge pull request #384 from cvc90/Pi.Alert-New-Known-Template-Plugin-Translations
Created README_ES.md (front/plugins/known_template)
2023-08-25 21:06:42 +00:00
jokob-sk
ba09964eaa Merge pull request #383 from cvc90/Pi.Alert-New-DHCP-Servers-Plugin-Translations
Created README_ES.md (front/plugins/dhcp_servers)
2023-08-25 21:06:31 +00:00
jokob-sk
c0f73a8112 Merge pull request #382 from cvc90/Pi.Alert-New-DHCP-Leases-Plugin-Translations
Created README_ES.md (front/plugins/dhcp_leases)
2023-08-25 21:06:16 +00:00
jokob-sk
06b6ef2889 Merge pull request #389 from cvc90/Pi.Alert-New-Set-Password-Plugin-Translations
Created README_ES.md (front/plugins/set_password)
2023-08-25 21:06:06 +00:00
jokob-sk
602f0648e0 Merge pull request #388 from cvc90/Pi.Alert-New-Pihole-Scan-Plugin-Translations
Created README_ES.md (front/plugins/pihole_scan)
2023-08-25 21:05:54 +00:00
jokob-sk
7e2f05866c Merge pull request #391 from cvc90/Pi.Alert-New-Undiscoverables-Plugin-Translations
Created README_ES.md (front/plugins/undiscoverables)
2023-08-25 21:05:43 +00:00
jokob-sk
acfc48c82c Merge pull request #393 from cvc90/Pi.Alert-New-Website-Monitor-Plugin-Translations
Created README_ES.md (front/plugins/website_monitor)
2023-08-25 21:05:32 +00:00
Carlos V
2b8257d866 Update de_de.json
Added translation variable "DevDetail_Loading"
2023-08-25 18:44:25 +02:00
Carlos V
a3bcb3c491 Update en_us.json
Added translation variable "DevDetail_Loading"
2023-08-25 18:43:29 +02:00
Carlos V
658b936a01 Update es_es.json
Added translation variable "DevDetail_Loading"
2023-08-25 18:42:23 +02:00
Carlos V
9b1443423e Update deviceDetails.php
Added "DevDetail_Loading" translation variable in various sections
2023-08-25 18:39:45 +02:00
Carlos V
4848ba78d9 Created README_ES.md (front/plugins/website_monitor)
Created the README_ES.md file (front/plugins/website_monitor) which is a version of README.md (front/plugins/website_monitor) translated into Spanish.
2023-08-25 18:23:51 +02:00
Carlos V
d16d43de9d Created README_ES.md (front/plugins/unifi_import)
Created the README_ES.md file (front/plugins/unifi_import) which is a version of README.md (front/plugins/unifi_import) translated into Spanish.
2023-08-25 18:19:37 +02:00
Carlos V
fa36fb788c Created README_ES.md (front/plugins/undiscoverables)
Created the README_ES.md file (front/plugins/undiscoverables) which is a version of README.md (front/plugins/undiscoverables) translated into Spanish.
2023-08-25 18:12:52 +02:00
Carlos V
276214da98 Created README_ES.md (front/plugins/snmp_discovery)
Created the README_ES.md file (front/plugins/snmp_discovery) which is a version of README.md (front/plugins/snmp_discovery) translated into Spanish.
2023-08-25 18:07:47 +02:00
Carlos V
1c94328dbd Created README_ES.md (front/plugins/set_password)
Created the README_ES.md file (front/plugins/set_password) which is a version of README.md (front/plugins/set_password) translated into Spanish.
2023-08-25 18:00:54 +02:00
Carlos V
7f51fdcfa1 Created README_ES.md (front/plugins/pihole_scan)
Created the README_ES.md file (front/plugins/pihole_scan) which is a version of README.md (front/plugins/pihole_scan) translated into Spanish.
2023-08-25 17:54:18 +02:00
Carlos V
541cb2e1b1 Created README_ES.md (front/plugins/pholus_scan)
Created the README_ES.md file (front/plugins/pholus_scan) which is a version of README.md (front/plugins/pholus_scan) translated into Spanish.
2023-08-25 17:51:09 +02:00
Carlos V
2396f226dd Created README_ES.md (front/plugins/nmap_services)
Created the README_ES.md file (front/plugins/nmap_services) which is a version of README.md (front/plugins/nmap_services) translated into Spanish.
2023-08-25 17:45:44 +02:00
Carlos V
58c26ea055 Created README_ES.md (front/plugins/newdev_template)
Created the README_ES.md file (front/plugins/newdev_template) which is a version of README.md (front/plugins/newdev_template) translated into Spanish.
2023-08-25 17:42:05 +02:00
Carlos V
413f869424 Created README_ES.md (front/plugins/known_template)
Created the README_ES.md file (front/plugins/known_template) which is a version of README.md (front/plugins/known_template) translated into Spanish.
2023-08-25 17:38:14 +02:00
Carlos V
e1ab0b3ef7 Created README_ES.md (front/plugins/dhcp_servers)
Created the README_ES.md file (front/plugins/dhcp_servers) which is a version of README.md (front/plugins/dhcp_servers) translated into Spanish.
2023-08-25 17:30:32 +02:00
Carlos V
0cb7b6c96a Created README_ES.md (front/plugins/dhcp_leases)
Created the README_ES.md file (front/plugins/dhcp_leases) which is a version of README.md (front/plugins/dhcp_leases) translated into Spanish.
2023-08-25 17:25:11 +02:00
Carlos V
3f0c899f17 Created README_ES.md (front/plugins/arp_scan)
Created the README_ES.md file (front/plugins/arp_scan
) which is a version of README.md (front/plugins/arp_scan
) translated into Spanish.
2023-08-25 17:07:43 +02:00
Carlos V
a25efc6dd6 Update README_ES.md
Updating the file to be up to date with the English version
2023-08-25 16:51:48 +02:00
Jokob-sk
8038fc9472 arp-scan mylog 2023-08-25 08:14:06 +10:00
Jokob-sk
17c3dc4914 Docs cleanup 2023-08-25 07:40:44 +10:00
Jokob-sk
2e53da32d1 Pholus cleanup + conversion v0.4 2023-08-25 07:16:46 +10:00
Jokob-sk
57aefdf332 Pholus cleanup + conversion v0.4 2023-08-25 07:07:18 +10:00
jokob-sk
9edbe8affc Merge pull request #379 from jokob-sk/revert-366-Pi.Alert-New-Functions-in-Tools-tab
Revert "Pi.alert new features in deviceDetails.php (tools tab) and new translations"
2023-08-24 20:55:56 +00:00
jokob-sk
033dacf8be Revert "Pi.alert new features in deviceDetails.php (tools tab) and new translations" 2023-08-25 06:55:40 +10:00
jokob-sk
b82246595f Merge pull request #366 from cvc90/Pi.Alert-New-Functions-in-Tools-tab
Pi.alert new features in deviceDetails.php (tools tab) and new translations
2023-08-24 20:49:53 +00:00
Jokob-sk
277950fc51 convert pholus to plugin v0.3 2023-08-25 06:48:54 +10:00
Jokob-sk
0261b8e210 convert pholus to plugin v0.3 2023-08-24 15:57:20 +10:00
Jokob-sk
445b4de69e convert pholus to plugin v0.2 2023-08-24 15:54:31 +10:00
Jokob-sk
3b60a3a1ae docs + convert pholus to plugin v0.1 2023-08-24 08:03:19 +10:00
jokob-sk
5103e2c229 Merge pull request #378 from cvc90/Pi.Alert-NEW-README_ES.md-Plugins
Pi.alert new file readme es.md (plugins)
2023-08-23 20:10:23 +00:00
Carlos V
e9dc7de2e8 Update README_ES.md
Added English version link
2023-08-23 17:58:48 +02:00
Carlos V
c7d04ddbcf Update README.md
Added link to see Spanish version
2023-08-23 17:57:11 +02:00
Carlos V
af5aecd127 Create README_ES.md
The "README_ES.md" file has been created ("README.md" file translated into Spanish)
2023-08-23 17:45:34 +02:00
Jokob-sk
ecc297a112 docs 2023-08-23 20:03:12 +10:00
Jokob-sk
1067211033 mac to device name JS function, translation DHCP leases fix 2023-08-23 20:00:59 +10:00
Jokob-sk
64c3de0450 test button settings fixes 2023-08-23 17:01:34 +10:00
Jokob-sk
20986852de arp_scan plugin update column + settings skip cache 2023-08-23 10:08:12 +10:00
Jokob-sk
2239aa6c25 breakup plugins.py 2023-08-23 09:32:46 +10:00
jokob-sk
908789230b Merge pull request #377 from cvc90/Pi.Alert-events.php-Translation-Spinner
Translation in text spinner in events.php
2023-08-22 20:14:54 +00:00
jokob-sk
eb74d7fc14 Merge pull request #376 from cvc90/Pi.Alert-Fix-deviceDetails.php-Button-DeleteEvents
Fixed translation of the "Delete Events" button
2023-08-22 20:14:35 +00:00
jokob-sk
519822c971 Merge pull request #375 from cvc90/Pi.Alert-Presence.php-Translation-Spinner
Translation in text "spinner" in presence.php
2023-08-22 20:14:21 +00:00
jokob-sk
9be6af6477 Merge pull request #374 from cvc90/Pi.Alert-UniFi-Import-Translation-Plugin
Translation of the plugin UniFi Import
2023-08-22 20:14:06 +00:00
jokob-sk
5838f8be95 Merge pull request #373 from cvc90/Pi.Alert-SNMP-Discovery-Translation-Plugin
Translation of the plugin SNMP Discovery
2023-08-22 20:13:54 +00:00
jokob-sk
da8098752e Merge pull request #372 from cvc90/Pi.Alert-DHCP-Leases-Translation-Plugin
Translation of the plugin DHCP Leases
2023-08-22 20:13:41 +00:00
jokob-sk
0fcd4502bd Merge pull request #371 from cvc90/Pi.Alert-Nmap-Translation-Plugin
Translation of the plugin Nmap Services
2023-08-22 20:13:29 +00:00
Carlos V
9e768f5be7 Update de_de.json
Added a new translation variable "Events_Loading"
2023-08-22 17:15:01 +02:00
Carlos V
50fa0677d9 Update es_es.json
Added a new translation variable "Events_Loading"
2023-08-22 17:14:23 +02:00
Carlos V
3641d2360e Update en_us.json
Added new translation variable "Events_Loading"
2023-08-22 17:13:40 +02:00
Carlos V
9eab7640c4 Update events.php to add new translation variable
Added translation variable in spinner text
2023-08-22 17:10:12 +02:00
Carlos V
8feb7c585f Update es_es.json
Added translation variable "DevDetail_button_DeleteEvents"
2023-08-22 17:01:05 +02:00
Carlos V
654efdc503 Update de_de.json
Added new translation variable "Presence_Loading"
2023-08-22 16:51:53 +02:00
Carlos V
46b01bcb93 Update es_es.json
Added new translation variable "Presence_Loading"
2023-08-22 16:51:13 +02:00
Carlos V
4895a61af3 Update en_us.json
Added new translation variable "Presence_Loading"
2023-08-22 16:50:15 +02:00
Carlos V
c820e2e8f5 Updated presence.php to add new translation variable
Added translation variable in spinner text
2023-08-22 16:41:42 +02:00
Carlos V
c9c7f0ada6 Added new Spanish translation in config.json (Plugin UniFi Import)
Added new variables for the Spanish translation
2023-08-22 16:20:03 +02:00
Carlos V
3069e508f5 Added new Spanish translation in config.json (Plugin SNMP Discovery)
Added new variables for the Spanish translation
2023-08-22 15:40:19 +02:00
Carlos V
62601fc4ad Added new Spanish translation in config.json (Plugin DHCP Leases)
Added new variables for the Spanish translation
2023-08-22 15:09:32 +02:00
Carlos V
5d05ede3e6 Added new Spanish translation in config.json
Added new variables for the Spanish translation
2023-08-22 14:38:08 +02:00
Jokob-sk
c3982bf747 webmon fixes + breakup plugins.py 2023-08-22 14:50:21 +10:00
Carlos V
ef97013051 Update deviceDetails.php
Fix function "reloadTab()"
2023-08-21 19:59:59 +02:00
Carlos V
07d37cd9b0 Update deviceDetails.php
Fixed missing php start tag in "Nmap" menu option
2023-08-21 19:47:15 +02:00
Carlos V
6b3bed69d3 Update deviceDetails.php
Removed blank spaces
2023-08-21 19:41:28 +02:00
Carlos V
f99f45505d Update deviceDetails.php
Removed blank spaces
2023-08-21 19:37:13 +02:00
Carlos V
7caf1f841a Update deviceDetails.php
Update target from "panTools" to "panNmap" for function loadNmap();
2023-08-21 19:32:45 +02:00
Carlos V
8ea45f5295 Update deviceDetails.php
Added "Nmap" in the content of the "Nmap" tab
Removed "Nmap" in the content of the "Tools" tab
2023-08-21 19:30:04 +02:00
Carlos V
a57669a6e0 Update deviceDetails.php
Added "Nmap" tab (Only shown in case the mac is not "Internet")
2023-08-21 19:09:04 +02:00
Carlos V
80a0b889c1 Update deviceDetails.php
Added "Nmap" tab
2023-08-21 19:07:26 +02:00
Jokob-sk
57f508f15c plugins fixes + breakup plugins.py 2023-08-21 17:28:31 +10:00
Jokob-sk
b732a87409 Report fix + missing-in-last-scan functionality 2023-08-21 07:57:39 +10:00
Jokob-sk
c2b97cbabd Report fix + missing-in-last-scan functionality 2023-08-21 07:56:18 +10:00
Jokob-sk
645e779d7c Report plugins fix 2023-08-21 07:24:25 +10:00
jokob-sk
b6a9c788bf Merge pull request #369 from cvc90/Pi.Alert-PiHole-Translation-Plugin
Pihole plugin translation
2023-08-20 20:03:08 +00:00
jokob-sk
8bd5c59186 Merge pull request #370 from cvc90/Pi.Alert-Rogue-DHCP-Translation-Plugin
Rogue DHCP plugin translation
2023-08-20 20:02:51 +00:00
Carlos V
22b9ec5a1a Update config.json
Added texts of translation variables in Spanish
2023-08-20 18:57:54 +02:00
Carlos V
ed2f6f90eb Update config.json
Added texts of translation variables in Spanish
2023-08-20 18:23:31 +02:00
Jokob-sk
609e118a7a Report fix + missing-in-last-scan functionality 2023-08-20 11:26:58 +10:00
Carlos V
8ed1456e02 Update de_de.json
Updated translation variable "DevDetail_Tab_Internet_Info_Title"
Updated translation variable "DevDetail_Tab_Internet_Info_Start"
Updated translation variable "DevDetail_Tab_Internet_Info_Error"
2023-08-19 16:03:41 +02:00
Carlos V
75002f93d3 Update es_es.json
Updated translation variable "DevDetail_Tab_Internet_Info_Title"
Updated translation variable "DevDetail_Tab_Internet_Info_Start"
Updated translation variable "DevDetail_Tab_Internet_Info_Error"
2023-08-19 16:02:31 +02:00
Carlos V
84fb663e09 Update en_us.json
Updated translation variable "DevDetail_Tab_Internet_Info_Title"
Updated translation variable "DevDetail_Tab_Internet_Info_Start"
Updated translation variable "DevDetail_Tab_Internet_Info_Error"
2023-08-19 16:01:39 +02:00
Carlos V
7f051938d0 Update de_de.json
Updated translation variable "DevDetail_Tab_Internet_Speedtest_Title"
Updated translation variable "DevDetail_Tab_Internet_Speedtest_Start"
Updated translation variable "DevDetail_Tab_Internet_Speedtest_Error"
2023-08-19 15:59:03 +02:00
Carlos V
913a1f72b6 Update es_es.json
Updated translation variable "DevDetail_Tab_Internet_Speedtest_Title"
Updated translation variable "DevDetail_Tab_Internet_Speedtest_Start"
Updated translation variable "DevDetail_Tab_Internet_Speedtest_Error"
2023-08-19 15:56:47 +02:00
Carlos V
cb7eeb7d46 Update en_us.json
Updated translation variable "DevDetail_Tab_Internet_Speedtest_Title"
Updated translation variable "DevDetail_Tab_Internet_Speedtest_Start"
Updated translation variable "DevDetail_Tab_Internet_Speedtest_Error"
2023-08-19 15:54:43 +02:00
Carlos V
92c58efd63 Update deviceDetails.php
Updated translation variable "DevDetail_Tab_Internet_Speedtest"
Updated translation variable "DevDetail_Tab_Internet_Speedtest_Start"
2023-08-19 15:51:26 +02:00
Carlos V
f5acab8ad8 Update internetinfo.php
Updated translation variable "DevDetail_Tab_Internet_Info_Error"
2023-08-19 15:45:12 +02:00
Carlos V
9b2c6b8838 Update deviceDetails.php
Updated translation variable "DevDetail_Tab_Internet_Info_Title"
Updated translation variable "DevDetail_Tab_Internet_Info_Start"
2023-08-19 15:44:26 +02:00
Carlos V
33e6fffd5d Update internetinfo.php
Added new function to check if there is an error
2023-08-19 15:40:11 +02:00
Carlos V
c61caed1af Create internetinfo.php
File is created to perform "internet info" functions
2023-08-19 14:46:37 +02:00
Carlos V
474da8f3f0 Update deviceDetails.php
Added new function "Internet Info" in "Tools"
2023-08-19 14:39:00 +02:00
Carlos V
0ed510cfd8 Update deviceDetails.php
Removed blank spaces
2023-08-19 13:32:31 +02:00
Carlos V
5e884dc675 Update deviceDetails.php
Updated "Nmap_Scans" section so that it is only visible if the device does not have a mac (mac="Internet")
2023-08-19 13:28:28 +02:00
Carlos V
fcde1a275e Update deviceDetails.php
Updated "Ping" section so that it is only visible if the device does not have mac="Internet"
2023-08-19 13:15:27 +02:00
Carlos V
bcd804403a Update deviceDetails.php
Updated "Traceroute" section so that it is only visible if the device does not have mac="Internet"
2023-08-19 13:13:51 +02:00
Carlos V
ef1c3c9674 Update deviceDetails.php
Updated "Nslookup" section so that it is only visible if the device does not have mac="Internet"
2023-08-19 13:12:36 +02:00
Carlos V
7d995f0735 Update deviceDetails.php
Updated "MTR" section so that it is only visible if the device does not have mac="Internet"
2023-08-19 13:10:50 +02:00
Carlos V
89342ba9ee Update deviceDetails.php
Updated "WOL" section so that it is only visible if the device does not have mac="Internet"
2023-08-19 13:05:53 +02:00
Carlos V
b18bcc7692 Update deviceDetails.php
Added icon in function "Speedtest"
Updated "Speedtest" function
2023-08-19 12:54:27 +02:00
Carlos V
55d6513853 Update wol.php
Disable password validation check
2023-08-19 12:25:55 +02:00
Carlos V
d11972c07d Merge branch 'jokob-sk:main' into Pi.Alert-New-Functions-in-Tools-tab 2023-08-19 12:23:23 +02:00
Carlos V
b2c798a934 Update deviceDetails.php
Update translation variable "DevDetail_Tab_Tools_WOL_Title"
Update translation variable "DevDetail_Tab_Tools_WOL_Start"
2023-08-19 12:10:26 +02:00
Carlos V
200e4c806c Update deviceDetails.php
Added translation variable "DevDetail_Tab_Tools_WOL_Title"
Added translation variable "DevDetail_Tab_Tools_WOL_Start"
2023-08-19 12:08:13 +02:00
Carlos V
d96b3519b2 Update de_de.json
Added translation variable "DevDetail_Tab_Tools_WOL_Title"
Added translation variable "DevDetail_Tab_Tools_WOL_Start"
Added translation variable "DevDetail_Tab_Tools_WOL_Error"
Added translation variable "DevDetail_Tab_Tools_WOL_Error_MAC"
Added translation variable "DevDetail_Tab_Tools_WOL_Error_Port"
Added translation variable "DevDetail_Tab_Tools_WOL_Error_Password"
Added translation variable "DevDetail_Tab_Tools_WOL_Message"
2023-08-19 12:05:09 +02:00
Carlos V
6f5c514be3 Update es_es.json
Added translation variable "DevDetail_Tab_Tools_WOL_Title"
Added translation variable "DevDetail_Tab_Tools_WOL_Start"
Added translation variable "DevDetail_Tab_Tools_WOL_Error"
Added translation variable "DevDetail_Tab_Tools_WOL_Error_MAC"
Added translation variable "DevDetail_Tab_Tools_WOL_Error_Port"
Added translation variable "DevDetail_Tab_Tools_WOL_Error_Password"
Added translation variable "DevDetail_Tab_Tools_WOL_Message"
2023-08-19 12:04:26 +02:00
Carlos V
89fe57fbc1 Update en_us.json
Added translation variable "DevDetail_Tab_Tools_WOL_Title"
Added translation variable "DevDetail_Tab_Tools_WOL_Start"
Added translation variable "DevDetail_Tab_Tools_WOL_Error_MAC"
Added translation variable "DevDetail_Tab_WOL_Error_MAC"
Added translation variable "DevDetail_Tab_Tools_WOL_Error_Port"
Added translation variable "DevDetail_Tab_Tools_WOL_Error_Password"
Added translation variable "DevDetail_Tab_Tools_WOL_Message"
2023-08-19 12:00:27 +02:00
Carlos V
f168726778 Create wol.php
wol.php file is created to perform "WOL" functions
2023-08-19 11:52:04 +02:00
Carlos V
69ff580d4c Update deviceDetails.php
Added a new option "WOL" in "Tools"
2023-08-19 11:31:29 +02:00
Carlos V
6dfa82bafa Update es_es.json
Added translation variable "DevDetail_Loading"
2023-08-19 10:58:04 +02:00
Carlos V
63c0850352 Update en_us.json
Added translation variable "DevDetail_Loading"
2023-08-19 10:57:18 +02:00
Carlos V
49d1480e15 Update de_de.json
Added translation variable "DevDetail_Loading"
2023-08-19 10:56:17 +02:00
Carlos V
0dd75db4d7 Update deviceDetails.php
Added "DevDetail_Loading" translation variable in various sections
2023-08-19 10:53:22 +02:00
Carlos V
2773fc4f83 Update deviceDetails.php
Added translation variable "DevDetail_Loading"
2023-08-19 10:46:55 +02:00
Carlos V
8fc140c16a Update deviceDetails.php
Added translation variable "DevDetail_Spinner"
2023-08-19 10:42:35 +02:00
Carlos V
c7a740d51f Update de_de.json
Added translation variable "DevDetail_Spinner"
2023-08-19 10:41:32 +02:00
Carlos V
611ae2f154 Update en_us.json
Added translation variable "DevDetail_Spinner"
2023-08-19 10:39:18 +02:00
Carlos V
326503bcf9 Update es_es.json
Added translation variable "DevDetail_Spinner"
2023-08-19 10:38:16 +02:00
Carlos V
ad4adc742f Update de_de.json
Added translation variable "DevDetail_Tab_Tools_Mtr_Title"
Added translation variable "DevDetail_Tab_Tools_Mtr_Start"
Added translation variable "DevDetail_Tab_Tools_Mtr_Error"
2023-08-19 10:23:55 +02:00
Carlos V
7befc97ab7 Update es_es.json
Added translation variable "DevDetail_Tab_Tools_Mtr_Title"
Added translation variable "DevDetail_Tab_Tools_Mtr_Start"
Added translation variable "DevDetail_Tab_Tools_Mtr_Error"
2023-08-19 10:23:11 +02:00
Carlos V
28f98c159b Update en_us.json
Added translation variable "DevDetail_Tab_Tools_Mtr_Title"
Added translation variable "DevDetail_Tab_Tools_Mtr_Start"
Added translation variable "DevDetail_Tab_Tools_Mtr_Error"
2023-08-19 10:22:06 +02:00
Carlos V
e7ff1a7954 Create mtr.php
mtr.php file is created to perform "mtr" functions
2023-08-19 10:19:47 +02:00
Carlos V
f93b8b2e10 Update deviceDetails.php
Added new icon in function "Nmap" in "Tools"
2023-08-19 10:17:50 +02:00
Carlos V
c64c351a85 Update deviceDetails.php
Added new function "Mtr" in "Tools"
2023-08-19 10:16:47 +02:00
Jokob-sk
75c5ec1215 Report fix + plugin.sh work 2023-08-19 17:39:38 +10:00
Carlos V
7b3a08ef25 Update de_de.json
Added translation variable "DevDetail_Tab_Tools_Nslookup_Title"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Start"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Error"
2023-08-19 09:37:24 +02:00
Carlos V
ef660d49c3 Update es_es.json
Added translation variable "DevDetail_Tab_Tools_Nslookup_Title"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Start"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Error"
2023-08-19 09:36:43 +02:00
Carlos V
bcf4bcc5af Update en_us.json
Added translation variable "DevDetail_Tab_Tools_Nslookup_Title"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Start"
Added translation variable "DevDetail_Tab_Tools_Nslookup_Error"
2023-08-19 09:36:10 +02:00
Carlos V
e8f8296d53 Create nslookup.php
nslookup.php file is created to perform "nslookup" functions
2023-08-19 09:29:11 +02:00
Carlos V
c360c80291 Update deviceDetails.php
Added new function "nslookup" in "Tools"
2023-08-19 09:27:24 +02:00
Carlos V
8b62207b8b Update deviceDetails.php
Added new function "Traceroute" in "Tools"
2023-08-19 09:11:38 +02:00
Carlos V
1a92514253 Update de_de.json
Added translation variable "DevDetail_Tab_Tools_Traceroute_Title"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Start"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Error"
2023-08-19 09:06:57 +02:00
Carlos V
725490c87e Update es_es.json
Added translation variable "DevDetail_Tab_Tools_Traceroute_Title"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Start"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Error"
2023-08-19 09:06:12 +02:00
Carlos V
f811c0a543 Update en_us.json
Added translation variable "DevDetail_Tab_Tools_Traceroute_Title"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Start"
Added translation variable "DevDetail_Tab_Tools_Traceroute_Error"
2023-08-19 09:05:16 +02:00
Carlos V
a26a81beec Create traceroute.php
traceroute.php file is created to perform "traceroute" functions
2023-08-19 09:02:46 +02:00
Carlos V
cb5b3d3a8d Update ping.php
Update banner creators
2023-08-19 08:52:25 +02:00
Carlos V
26ee74be6e Update ping.php
Updated error message style
Added new comments to facilitate development
Optimized white spaces
Optimized style
2023-08-19 08:50:56 +02:00
Carlos V
0d1c32a453 Update ping.php
Update banner creators
2023-08-19 08:35:57 +02:00
Carlos V
ab0c9dfeb9 Update deviceDetails.php
Updated id of the "Ping" function
2023-08-19 08:32:23 +02:00
Carlos V
0ebd391cd2 Update Dockerfile
Added to the installation line the package "traceroute"
2023-08-19 08:25:01 +02:00
Carlos V
a0b077b54e Update Dockerfile
Added to the installation line the package "iputils-ping"
2023-08-19 08:22:32 +02:00
Carlos V
d78fcd6ae3 Update deviceDetails.php
Updated translation variable "DevDetail_Tab_Tools_Ping_Title"
Updated translation variable "DevDetail_Tab_Tools_Ping_Start"
2023-08-19 08:19:11 +02:00
Carlos V
a397048ea4 Update ping.php
Updated translation variable
2023-08-19 08:17:19 +02:00
Carlos V
e4da6c9379 Update es_es.json
Added translation variable "DevDetail_Tab_Tools_Ping_Title"
Added translation variable "DevDetail_Tab_Tools_Ping_Start"
Added translation variable "DevDetail_Tab_Tools_Ping_Error"
Removed translation variable "DevDetail_Tools_Ping_Title"
Removed translation variable "DevDetail_Tools_Ping_Start"
Removed translation variable "DevDetail_Tools_Ping_Error"
2023-08-19 08:16:20 +02:00
Carlos V
be1cdec6fa Update en_us.json
Added translation variable "DevDetail_Tab_Tools_Ping_Title"
Added translation variable "DevDetail_Tab_Tools_Ping_Start"
Added translation variable "DevDetail_Tab_Tools_Ping_Error"
Removed translation variable "DevDetail_Tools_Ping_Title"
Removed translation variable "DevDetail_Tools_Ping_Start"
Removed translation variable "DevDetail_Tools_Ping_Error"
2023-08-19 08:15:10 +02:00
Carlos V
5df4822ef0 Update de_de.json
Added translation variable "DevDetail_Tab_Tools_Ping_Title"
Added translation variable "DevDetail_Tab_Tools_Ping_Start"
Added translation variable "DevDetail_Tab_Tools_Ping_Error"
2023-08-19 08:12:46 +02:00
Carlos V
1a89a14ee3 Update es_es.json
Added translation variable "DevDetail_Tools_Ping_Title"
Added translation variable "DevDetail_Tools_Ping_Start"
Added translation variable "DevDetail_Tools_Ping_Error"
2023-08-19 08:10:24 +02:00
Carlos V
97f7770d98 Update en_us.json
Added translation variable "DevDetail_Tools_Ping_Title"
Added translation variable "DevDetail_Tools_Ping_Start"
Added translation variable "DevDetail_Tools_Ping_Error"
2023-08-19 08:09:44 +02:00
Carlos V
0327f8818a Update ping.php
Updated command in variable "$output"
2023-08-19 08:06:51 +02:00
Carlos V
b03c6aec57 Create ping.php
ping.php file is created to perform "ping" functions
2023-08-19 08:05:31 +02:00
Carlos V
3c9a035249 Update deviceDetails.php
Added new translation variable (<?= lang('DevDetail_Tools_Ping_Start');?>)
2023-08-19 07:41:51 +02:00
Carlos V
4b075cffe7 Update deviceDetails.php
Added new option "Test Ping" in "Tools"
2023-08-19 07:39:38 +02:00
Carlos V
b85c308e78 Update deviceDetails.php
Replace id="tabNmap" --> id="tabTools"
Replace href="#panNmap" --> href="#panTools"
2023-08-19 07:27:22 +02:00
Carlos V
9e58c8c572 Update deviceDetails.php
Updated "tab control" (Now it will always be the "Tools" tab instead of "Nmap")
2023-08-19 07:21:08 +02:00
Jokob-sk
5cc08030ce Optimization and cleanup 2023-08-19 15:05:52 +10:00
Jokob-sk
50699ed01f Scheduler, Systeminfo.php, Plugin obj insertion fixes 2023-08-19 07:00:40 +10:00
Jokob-sk
486e245c14 Duplicate Plugin Objects bug work 2023-08-18 08:59:35 +10:00
Jokob-sk
cd9105d0a9 Duplicate Plugin Objects bug work 2023-08-17 08:06:20 +10:00
Jokob-sk
99e9f5ca68 JS error Plugins #360 2023-08-17 07:44:46 +10:00
Jokob-sk
f35550663d Language plugin translation #361 2023-08-17 07:33:48 +10:00
jokob-sk
39eb7fff1e Merge pull request #362 from cvc90/Pi.Alert-Fixed-transition-footer-help_faq.php
Update help_faq.php
2023-08-17 05:40:10 +10:00
jokob-sk
fa6748fe79 Merge pull request #363 from cvc90/Pi.Alert-Added-New-Variables-Spanish-Translation-Plugin-Nmap
Update config.json (Plugin Nmap)
2023-08-17 05:39:34 +10:00
Carlos V
2c12e625b4 Update config.json
Added new variables for the Spanish translation
2023-08-16 19:28:57 +02:00
Carlos V
49daed828b Update help_faq.php
Fixed transition between content and footer
2023-08-16 18:54:51 +02:00
Jokob-sk
a3359dbec4 Settings cleanup, docs and strings, Removal of ENABLE_ARPSCAN 2023-08-16 08:01:56 +10:00
jokob-sk
c8bae60060 Merge pull request #359 from cvc90/Pi.Alert-Multiple-fixes-deviceDetails.php
Multiple fixes in deviceDetails.php
2023-08-16 07:15:07 +10:00
jokob-sk
0f8253241e Merge branch 'main' into Pi.Alert-Multiple-fixes-deviceDetails.php 2023-08-16 07:14:58 +10:00
jokob-sk
ed9c0c2a2c Merge pull request #358 from cvc90/Pi.Alert-Fixed-variable-DevDetail_Icon_Descr
Update es_es.json
2023-08-16 06:17:45 +10:00
Carlos V
3c5db004c4 Update es_es.json
Updated translation variable "DevDetail_Tab_EventsTableDate"
Updated translation variable "DevDetail_Tab_EventsTableEvent"
Updated translation variable "DevDetail_Tab_EventsTableIP"
Updated translation variable "DevDetail_Tab_EventsTableInfo"
2023-08-15 20:30:17 +02:00
Carlos V
5eac1e000f Update es_es.json
Updated translation variable "DevDetail_Tab_PholusTableIndex"
Updated translation variable "DevDetail_Tab_PholusTableInfo"
Updated translation variable "DevDetail_Tab_PholusTableTime"
Updated translation variable "DevDetail_Tab_PholusTableEntry"
Updated translation variable "DevDetail_Tab_PholusTableIP"
Updated translation variable "DevDetail_Tab_PholusTableValue"
Updated translation variable "DevDetail_Tab_PholusTableExtra"
2023-08-15 20:28:26 +02:00
Carlos V
b42d6feaa0 Update deviceDetails.php
Updated blank spaces
2023-08-15 20:22:04 +02:00
Carlos V
d61d9b1789 Update deviceDetails.php
updated blank spaces
2023-08-15 20:19:15 +02:00
Carlos V
2c7e14afcd Update deviceDetails.php
Updated order in table id="table Pholus"
2023-08-15 20:12:25 +02:00
Carlos V
58ade8948c Update de_de.json
Added translation variable "DevDetail_Tab_PholusTableIndex"
Added translation variable "DevDetail_Tab_PholusTableInfo"
Added translation variable "DevDetail_Tab_PholusTableTime"
Added translation variable "DevDetail_Tab_PholusTableEntry"
Added translation variable "DevDetail_Tab_PholusTableIP"
Added translation variable "DevDetail_Tab_PholusTableValue"
Added translation variable "DevDetail_Tab_PholusTableExtra"
2023-08-15 20:09:46 +02:00
Carlos V
10e08093c6 Update de_de.json
Added translation variable "DevDetail_Tab_EventsTableDate"
Added translation variable "DevDetail_Tab_EventsTableEvent"
Added translation variable "DevDetail_Tab_EventsTableIP"
Added translation variable "DevDetail_Tab_EventsTableInfo"
2023-08-15 20:08:21 +02:00
Carlos V
58bc8bf6ce Update es_es.json
Added translation variable "DevDetail_Tab_PholusTableIndex"
Added translation variable "DevDetail_Tab_PholusTableInfo"
Added translation variable "DevDetail_Tab_PholusTableTime"
Added translation variable "DevDetail_Tab_PholusTableEntry"
Added translation variable "DevDetail_Tab_PholusTableIP"
Added translation variable "DevDetail_Tab_PholusTableValue"
Added translation variable "DevDetail_Tab_PholusTableExtra"
2023-08-15 20:06:54 +02:00
Carlos V
b1e10567f6 Update es_es.json
Added translation variable "DevDetail_Tab_EventsTableDate"
Added translation variable "DevDetail_Tab_EventsTableEvent"
Added translation variable "DevDetail_Tab_EventsTableIP"
Added translation variable "DevDetail_Tab_EventsTableInfo"
2023-08-15 20:06:20 +02:00
Carlos V
1a464630f2 Update en_us.json
Added translation variable "DevDetail_Tab_PholusTableIndex"
Added translation variable "DevDetail_Tab_PholusTableInfo"
Added translation variable "DevDetail_Tab_PholusTableTime"
Added translation variable "DevDetail_Tab_PholusTableEntry"
Added translation variable "DevDetail_Tab_PholusTableIP"
Added translation variable "DevDetail_Tab_PholusTableValue"
Added translation variable "DevDetail_Tab_PholusTableExtra"
2023-08-15 20:05:38 +02:00
Carlos V
4aea02e215 Update en_us.json
Added translation variable "DevDetail_Tab_EventsTableDate"
Added translation variable "DevDetail_Tab_EventsTableEvent"
Added translation variable "DevDetail_Tab_EventsTableIP"
Added translation variable "DevDetail_Tab_EventsTableInfo"
2023-08-15 20:02:18 +02:00
Carlos V
b1b8d6f090 Update deviceDetails.php
Added translation variable "DevDetail_Tab_PholusTableIndex"
Added translation variable "DevDetail_Tab_PholusTableInfo"
Added translation variable "DevDetail_Tab_PholusTableTime"
Added translation variable "DevDetail_Tab_PholusTableEntry"
Added translation variable "DevDetail_Tab_PholusTableIP"
Added translation variable "DevDetail_Tab_PholusTableValue"
Added translation variable "DevDetail_Tab_PholusTableExtra"
2023-08-15 19:59:00 +02:00
Carlos V
0de1406b5c Update deviceDetails.php
Added translation variable "DevDetail_Tab_EventsTableDate"
Added translation variable "DevDetail_Tab_EventsTableEvent"
Added translation variable "DevDetail_Tab_EventsTableIP"
Added translation variable "DevDetail_Tab_EventsTableInfo"
2023-08-15 19:56:03 +02:00
Carlos V
e068b360a4 Update speedtestcli.php
Added required "init.php" file to be able to load language variables
2023-08-15 19:48:40 +02:00
Carlos V
385deb254b Update speedtestcli.php
Updated translation variable "Speedtest_Results"
2023-08-15 19:04:45 +02:00
Carlos V
b28f9ed422 Update en_us.json
Added translation variable "Speedtest_Results"
2023-08-15 18:58:44 +02:00
Carlos V
117e0366e5 Update de_de.json
Added translation variable "Speedtest_Results"
2023-08-15 18:57:54 +02:00
Carlos V
6759aa3267 Update es_es.json
Added translation variable "Speedtest_Results"
2023-08-15 18:56:35 +02:00
Carlos V
aab506fb58 Update speedtestcli.php
Added translation variable "Speedtest_Results"
2023-08-15 18:54:31 +02:00
Carlos V
b111bbf926 Update deviceDetails.php
Fixed blank space in translation variable "DevDetail_Tab_NmapTableExtra"
2023-08-15 18:47:51 +02:00
Carlos V
8d58f1fe91 Update de_de.json
Added translation variable "DevDetail_Nmap_Scans"
2023-08-15 18:41:01 +02:00
Carlos V
20871ba401 Update es_es.json
Added translation variable "DevDetail_Nmap_Scans"
2023-08-15 18:39:58 +02:00
Carlos V
fb121c1df4 Update en_us.json
Added translation variable "DevDetail_Nmap_Scans"
2023-08-15 18:39:02 +02:00
Carlos V
80888ae910 Update deviceDetails.php
Updated creators banner
2023-08-15 18:32:55 +02:00
Carlos V
84c74fbb2a Update es_es.json
Fixed description variable "DevDetail_Icon_Descr"
2023-08-15 18:23:12 +02:00
Carlos V
9caeb0cfdf Update de_de.json
Added translation variable "DevDetail_Tab_NmapTableIndex"
Added translation variable "DevDetail_Tab_NmapTableTime"
Added translation variable "DevDetail_Tab_NmapTablePort"
Added translation variable "DevDetail_Tab_NmapTableState"
Added translation variable "DevDetail_Tab_NmapTableService"
Added translation variable "DevDetail_Tab_NmapTableExtra"
2023-08-15 18:18:19 +02:00
Carlos V
796c02adfb Update de_de.json
Added translation variable "DevDetail_Internet_Speedtest"
Added translation variable "DevDetail_Internet_Speedtest_Start
2023-08-15 18:16:06 +02:00
Carlos V
0812182fd2 Update de_de.json
Added translation variable "DevDetail_Tab_Tools"
2023-08-15 18:12:11 +02:00
Carlos V
8368c3d102 Update es_es.json
Added translation variable "DevDetail_Tab_NmapTableIndex"
Added translation variable "DevDetail_Tab_NmapTableTime"
Added translation variable "DevDetail_Tab_NmapTablePort"
Added translation variable "DevDetail_Tab_NmapTableState"
Added translation variable "DevDetail_Tab_NmapTableService"
Added translation variable "DevDetail_Tab_NmapTableExtra"
2023-08-15 18:11:07 +02:00
Carlos V
dca50f42c7 Update es_es.json
Added translation variable "DevDetail_Internet_Speedtest"
Added translation variable "DevDetail_Internet_Speedtest_Start"
2023-08-15 18:10:28 +02:00
Carlos V
1944c24fe7 Update es_es.json
Added translation variable "DevDetail_Tab_Tools"
2023-08-15 18:09:21 +02:00
Carlos V
f136334414 Update en_us.json
Added translation variable "DevDetail_Tab_NmapTableIndex"
Added translation variable "DevDetail_Tab_NmapTableTime"
Added translation variable "DevDetail_Tab_NmapTablePort"
Added translation variable "DevDetail_Tab_NmapTableState"
Added translation variable "DevDetail_Tab_NmapTableService"
Added translation variable "DevDetail_Tab_NmapTableExtra"
2023-08-15 18:07:17 +02:00
Carlos V
c5f99ad701 Update en_us.json
Added translation variable "DevDetail_Internet_Speedtest"
Added translation variable "DevDetail_Internet_Speedtest_Start"
2023-08-15 18:06:27 +02:00
Carlos V
62b3bc6a6a Update en_us.json
Added translation variable "DevDetail_Tab_Tools"
2023-08-15 18:05:09 +02:00
Carlos V
e7fe2b808f Update deviceDetails.php
Added translation variable "DevDetail_Tab_NmapTableIndex"
Added translation variable "DevDetail_Tab_NmapTableTime"
Added translation variable "DevDetail_Tab_NmapTablePort"
Added translation variable "DevDetail_Tab_NmapTableState"
Added translation variable "DevDetail_Tab_NmapTableService"
Added translation variable "DevDetail_Tab_NmapTableExtra"
2023-08-15 17:55:35 +02:00
Carlos V
a85f0003e3 Update deviceDetails.php
Added translation variable "DevDetail_Nmap_Scans"
2023-08-15 17:49:24 +02:00
Carlos V
d6142f7498 Update deviceDetails.php
Added translation variable "DevDetail_Internet_Speedtest"
Added translation variable "DevDetail_Internet_Speedtest_Start"
2023-08-15 17:47:15 +02:00
Carlos V
63661dea5b Update deviceDetails.php
Added translation variable "DevDetail_Tab_Tools" to add "Tools" tab text in any language.
2023-08-15 17:43:37 +02:00
Jokob-sk
499a798d3e device details descriptions of confusing fields 2023-08-15 08:04:07 +10:00
Jokob-sk
23da070784 work on #353, update vendors bug #357 2023-08-15 07:40:51 +10:00
jokob-sk
5efc4975c6 Merge pull request #356 from cvc90/Pi.Alert-Fixed-TAG-SPAN-MENU
Fixed <span> tag in menu options in header.php
2023-08-15 06:23:32 +10:00
jokob-sk
013262c694 Merge pull request #355 from cvc90/Pi.Alert-fixes-improvements-systeminfo-v5
Corrections and improvements in the "System info" menu v5 - thank you for the awesome work @cvc90 👍
2023-08-15 06:22:30 +10:00
Carlos V
12d8d2d2fc Update header.php
Fixed <span> tag in menu options
2023-08-14 19:34:19 +02:00
Carlos V
af83432fdb Update systeminfo.php
Updated div class of the "Network Hardware" section
2023-08-14 18:56:39 +02:00
Carlos V
34d3ea9ef0 Update systeminfo.php
Updated div class of the "Network" section
2023-08-14 18:55:37 +02:00
Carlos V
9c2ebd53d7 Update systeminfo.php
Updated div class of the "Storage usage" section
2023-08-14 18:53:37 +02:00
Carlos V
fc569b50d4 Update systeminfo.php
Updated div class of the "Storage" section
2023-08-14 18:52:30 +02:00
Carlos V
06873f5054 Update systeminfo.php
Updated div class of the "Memory" section
2023-08-14 18:51:12 +02:00
Carlos V
420ee4ac65 Update systeminfo.php
Updated div class of the "CPU" section
2023-08-14 18:50:23 +02:00
Carlos V
2659bc1440 Update systeminfo.php
Updated div class of the "CPU" section
2023-08-14 18:49:13 +02:00
Carlos V
ded7af9fe3 Update systeminfo.php
Updated div class of the "Motherboard" section
2023-08-14 18:47:51 +02:00
Carlos V
75dd81adcd Update systeminfo.php
Updated div class of the "System" section
2023-08-14 18:46:21 +02:00
Carlos V
b749199f55 Update systeminfo.php
Updated div class of the "Client" section
2023-08-14 18:44:52 +02:00
Carlos V
731e9be82b Update systeminfo.php
Updated div class of the "General" section
2023-08-14 18:43:43 +02:00
Carlos V
22844b430e Update de_de.json
Optimized the order of translation variables
New translation variable "Systeminfo_Network_HTTP_Referer_String"
New translation variable "Systeminfo_Network_Secure_Connection_String"
New translation variable "Systeminfo_Network_Server_Name_String"
New translation variable "Systeminfo_Network_Server_Query_String"
2023-08-14 18:22:20 +02:00
Carlos V
dbfb3176f5 Update es_es.json
Optimized the order of translation variables
New translation variable "Systeminfo_Network_HTTP_Referer_String"
New translation variable "Systeminfo_Network_Secure_Connection_String"
New translation variable "Systeminfo_Network_Server_Name_String"
New translation variable "Systeminfo_Network_Server_Query_String"
2023-08-14 18:20:40 +02:00
Carlos V
0591afa80f Update en_us.json
Optimized the order of translation variables
New translation variable "Systeminfo_Network_HTTP_Referer_String"
New translation variable "Systeminfo_Network_Secure_Connection_String"
New translation variable "Systeminfo_Network_Server_Name_String"
New translation variable "Systeminfo_Network_Server_Query_String"
2023-08-14 18:18:32 +02:00
Carlos V
be2f5a9f15 Update systeminfo.php
Updated variables "Network stats"
2023-08-14 18:14:05 +02:00
Carlos V
633ceb6136 Update systeminfo.php
Updated translation variable "Systeminfo_Network_Secure_Connection"
2023-08-14 17:56:41 +02:00
Carlos V
7610f3633d Update de_de.json
Optimized the order of translation variables
New translation variable "Systeminfo_Network_Accept_Encoding"
New translation variable "Systeminfo_Network_Accept_Language"
New translation variable "Systeminfo_Network_Connection_Port"
New translation variable "Systeminfo_Network_HTTP_Host"
New translation variable "Systeminfo_Network_HTTP_Referer"
New translation variable "Systeminfo_Network_IP"
New translation variable "Systeminfo_Network_IP_Connection"
New translation variable "Systeminfo_Network_IP_Server"
New translation variable "Systeminfo_Network_MIME"
New translation variable "Systeminfo_Network_Request_Method"
New translation variable "Systeminfo_Network_Request_URI"
New translation variable "Systeminfo_Network_Request_Time"
New translation variable "Systeminfo_Network_Secure_Connection"
New translation variable "Systeminfo_Network_Server_Name"
New translation variable "Systeminfo_Network_Server_Query"
New translation variable "Systeminfo_Network_Server_Version"
2023-08-14 17:52:36 +02:00
Carlos V
acf2437020 Update es_es.json
Optimized the order of translation variables
New translation variable "Systeminfo_Network_Accept_Encoding"
New translation variable "Systeminfo_Network_Accept_Language"
New translation variable "Systeminfo_Network_Connection_Port"
New translation variable "Systeminfo_Network_HTTP_Host"
New translation variable "Systeminfo_Network_HTTP_Referer"
New translation variable "Systeminfo_Network_IP"
New translation variable "Systeminfo_Network_IP_Connection"
New translation variable "Systeminfo_Network_IP_Server"
New translation variable "Systeminfo_Network_MIME"
New translation variable "Systeminfo_Network_Request_Method"
New translation variable "Systeminfo_Network_Request_URI"
New translation variable "Systeminfo_Network_Request_Time"
New translation variable "Systeminfo_Network_Secure_Connection"
New translation variable "Systeminfo_Network_Server_Name"
New translation variable "Systeminfo_Network_Server_Query"
New translation variable "Systeminfo_Network_Server_Version"
2023-08-14 17:50:44 +02:00
Carlos V
f28733d94d Update en_us.json
Optimized the order of translation variables
New translation variable "Systeminfo_Network_Accept_Encoding"
New translation variable "Systeminfo_Network_Accept_Language"
New translation variable "Systeminfo_Network_Connection_Port"
New translation variable "Systeminfo_Network_HTTP_Host"
New translation variable "Systeminfo_Network_HTTP_Referer"
New translation variable "Systeminfo_Network_IP"
New translation variable "Systeminfo_Network_IP_Connection"
New translation variable "Systeminfo_Network_IP_Server"
New translation variable "Systeminfo_Network_MIME"
New translation variable "Systeminfo_Network_Request_Method"
New translation variable "Systeminfo_Network_Request_URI"
New translation variable "Systeminfo_Network_Request_Time"
New translation variable "Systeminfo_Network_Secure_Connection"
New translation variable "Systeminfo_Network_Server_Name"
New translation variable "Systeminfo_Network_Server_Query"
New translation variable "Systeminfo_Network_Server_Version"
2023-08-14 17:47:11 +02:00
Carlos V
8398d73b61 Update systeminfo.php
Update "Network" submenu with new translation variables
New translation variable "Systeminfo_Network_Accept_Encoding"
New translation variable "Systeminfo_Network_Accept_Language"
New translation variable "Systeminfo_Network_Connection_Port"
New translation variable "Systeminfo_Network_HTTP_Host"
New translation variable "Systeminfo_Network_HTTP_Referer"
New translation variable "Systeminfo_Network_IP"
New translation variable "Systeminfo_Network_IP_Connection"
New translation variable "Systeminfo_Network_IP_Server"
New translation variable "Systeminfo_Network_MIME"
New translation variable "Systeminfo_Network_Request_Method"
New translation variable "Systeminfo_Network_Request_URI"
New translation variable "Systeminfo_Network_Request_Time"
New translation variable "Systeminfo_Network_Secure_Connection"
New translation variable "Systeminfo_Network_Server_Name"
New translation variable "Systeminfo_Network_Server_Query"
New translation variable "Systeminfo_Network_Server_Version"
2023-08-14 17:39:36 +02:00
Carlos V
46876228ba Update de_de.json
New translation variable "Systeminfo_Motherboard_BIOS"
New translation variable "Systeminfo_Motherboard_BIOS_Date"
New translation variable "Systeminfo_Motherboard_BIOS_Vendor"
New translation variable "Systeminfo_Motherboard_Manufactured"
New translation variable "Systeminfo_Motherboard_Name"
New translation variable "Systeminfo_Motherboard_Revision"
2023-08-14 17:18:11 +02:00
Carlos V
7de5e4db8b Update es_es.json
New translation variable "Systeminfo_Motherboard_BIOS"
New translation variable "Systeminfo_Motherboard_BIOS_Date"
New translation variable "Systeminfo_Motherboard_BIOS_Vendor"
New translation variable "Systeminfo_Motherboard_Manufactured"
New translation variable "Systeminfo_Motherboard_Name"
New translation variable "Systeminfo_Motherboard_Revision"
2023-08-14 17:16:45 +02:00
Carlos V
33273bf83c Update en_us.json
New translation variable "Systeminfo_Motherboard_BIOS"
New translation variable "Systeminfo_Motherboard_BIOS_Date"
New translation variable "Systeminfo_Motherboard_BIOS_Vendor"
New translation variable "Systeminfo_Motherboard_Manufactured"
New translation variable "Systeminfo_Motherboard_Name"
New translation variable "Systeminfo_Motherboard_Revision"
2023-08-14 17:15:48 +02:00
Carlos V
719b3e5705 Update systeminfo.php
Update "Motherboard" submenu with new translation variables
New translation variable "Systeminfo_Motherboard_BIOS
New translation variable "Systeminfo_Motherboard_BIOS_Date"
New translation variable "Systeminfo_Motherboard_BIOS_Vendor"
New translation variable "Systeminfo_Motherboard_Manufactured"
New translation variable "Systeminfo_Motherboard_Name"
New translation variable "Systeminfo_Motherboard_Revision"
2023-08-14 16:50:53 +02:00
Carlos V
ae5fd47f72 Update de_de.json
Optimized the order of translation variables
New translation variable "Systeminfo_System_Architecture"
New translation variable "Systeminfo_System_AVG"
New translation variable "Systeminfo_System_Kernel"
New translation variable "Systeminfo_System_OSVersion"
New translation variable "Systeminfo_System_System"
New translation variable "Systeminfo_System_Uname"
New translation variable "Systeminfo_System_Uptime"
2023-08-14 16:14:14 +02:00
Carlos V
57f9728867 Update en_us.json
Optimized the order of translation variables
New translation variable "Systeminfo_System_Architecture"
New translation variable "Systeminfo_System_AVG"
New translation variable "Systeminfo_System_Kernel"
New translation variable "Systeminfo_System_OSVersion"
New translation variable "Systeminfo_System_System"
New translation variable "Systeminfo_System_Uname"
New translation variable "Systeminfo_System_Uptime"
2023-08-14 16:11:07 +02:00
Carlos V
b07118b298 Update es_es.json
Optimized the order of translation variables
New translation variable "Systeminfo_System_Architecture"
New translation variable "Systeminfo_System_AVG"
New translation variable "Systeminfo_System_Kernel"
New translation variable "Systeminfo_System_OSVersion"
New translation variable "Systeminfo_System_System"
New translation variable "Systeminfo_System_Uname"
New translation variable "Systeminfo_System_Uptime"
2023-08-14 16:02:43 +02:00
Carlos V
e669ecacf3 Update systeminfo.php
Update "System" submenu with new translation variables
New translation variable "Systeminfo_System_Uptime"
New translation variable "Systeminfo_System_Kernel"
New translation variable "Systeminfo_System_System"
New translation variable "Systeminfo_System_OSVersion"
New translation variable "Systeminfo_System_Uname"
New translation variable "Systeminfo_System_Architecture"
New translation variable "Systeminfo_System_AVG"
2023-08-14 15:50:23 +02:00
jokob-sk
725032d31f Merge pull request #354 from cvc90/Pi.Alert-fixes-improvements-systeminfo-v4
Corrections and improvements in the "System info" menu v4
2023-08-14 06:19:58 +10:00
Carlos V
ea05fd58c1 Update de_de.json
Updated translation variable "Systeminfo_CPU_Vendor"
2023-08-13 20:25:57 +02:00
Carlos V
1ecdc1249c Update de_de.json
Added translation variable "Systeminfo_CPU_Vendor"
Added translation variable "Systeminfo_CPU_Name"
Added translation variable "Systeminfo_CPU_Cores"
Added translation variable "Systeminfo_CPU_Speed"
Added translation variable "Systeminfo_CPU_Temp"
2023-08-13 20:01:24 +02:00
Carlos V
b016f6fefe Update es_es.json
Added translation variable "Systeminfo_CPU_Vendor"
Added translation variable "Systeminfo_CPU_Name"
Added translation variable "Systeminfo_CPU_Cores"
Added translation variable "Systeminfo_CPU_Speed"
Added translation variable "Systeminfo_CPU_Temp"
2023-08-13 19:59:57 +02:00
Carlos V
8c64b65942 Update en_us.json
Added translation variable "Systeminfo_CPU_Vendor"
Added translation variable "Systeminfo_CPU_Name"
Added translation variable "Systeminfo_CPU_Cores"
Added translation variable "Systeminfo_CPU_Speed"
Added translation variable "Systeminfo_CPU_Temp"
2023-08-13 19:58:58 +02:00
Carlos V
e0e1250592 Update systeminfo.php
Updated "CPU" section
Added translation variable "Systeminfo_CPU_Vendor"
Added translation variable "Systeminfo_CPU_Name"
Added translation variable "Systeminfo_CPU_Cores"
Added translation variable "Systeminfo_CPU_Speed"
Added translation variable "Systeminfo_CPU_Temp"
2023-08-13 19:56:45 +02:00
Carlos V
64694a1ead Update systeminfo.php
Updated "Memory" section
2023-08-13 19:48:23 +02:00
Carlos V
7c1c33ecdc Update de_de.json
Added translation variable "Systeminfo_Memory_Usage"
Added translation variable "Systeminfo_Memory_Usage_Percent"
Added translation variable "Systeminfo_Memory_Total_Memory"
2023-08-13 19:39:11 +02:00
Carlos V
48303fce62 Update en_us.json
Added translation variable "Systeminfo_Memory_Usage"
Added translation variable "Systeminfo_Memory_Usage_Percent"
Added translation variable "Systeminfo_Memory_Total_Memory"
2023-08-13 19:37:54 +02:00
Carlos V
67cac33779 Update es_es.json
Added translation variable "Systeminfo_Memory_Usage"
Added translation variable "Systeminfo_Memory_Usage_Percent"
Added translation variable "Systeminfo_Memory_Total_Memory"
2023-08-13 19:36:39 +02:00
Carlos V
7c9229e9c9 Update systeminfo.php
Added translation variable "Memory_Usage_Percent"
Added translation variable "Systeminfo_Memory_Usage"
Added translation variable "Systeminfo_Memory_Total_Memory"
2023-08-13 19:32:00 +02:00
Carlos V
f8b5cc98b2 Update de_de.json
Added translation variable "Systeminfo_Client_User_Agent"
Added translation variable "Systeminfo_Client_Resolution"
2023-08-13 19:26:37 +02:00
Carlos V
ddde35ec1c Update de_de.json
Added translation variable "Systeminfo_Client_User_Agent"
Added translation variable "Systeminfo_Client_Resolution"
Added translation variable "Systeminfo_General_Date2"
Added translation variable "Systeminfo_General_TimeZone"
2023-08-13 19:24:18 +02:00
Carlos V
df7c51d303 Update es_es.json
Added translation variable "Systeminfo_Client_User_Agent"
Added translation variable "Systeminfo_Client_Resolution"
2023-08-13 19:23:18 +02:00
Carlos V
96de41e4f0 Update es_es.json
Added translation variable "Systeminfo_Client_User_Agent"
Added translation variable "Systeminfo_Client_Resolution"
Added translation variable "Systeminfo_General_Date2"
Added translation variable "Systeminfo_General_TimeZone"
2023-08-13 19:22:19 +02:00
Carlos V
eb63964a90 Update en_us.json
Added translation variable "Systeminfo_Client_User_Agent"
Added translation variable "Systeminfo_Client_Resolution"
2023-08-13 19:20:54 +02:00
Carlos V
00942ba48f Update en_us.json
Added translation variable "Systeminfo_Client_User_Agent"
Added translation variable "Systeminfo_Client_Resolution"
Added translation variable "Systeminfo_General_Date2"
Added translation variable "Systeminfo_General_TimeZone"
2023-08-13 19:19:09 +02:00
Carlos V
9735085328 Update systeminfo.php
Added translation variable "Systeminfo_Client_User_Agent"
Added translation variable "Systeminfo_Client_Resolution"
2023-08-13 19:15:22 +02:00
Carlos V
367dec4024 Update systeminfo.php
Added translation variable "Systeminfo_General_Full_Date"
Added translation variable "Systeminfo_General_Date"
Added translation variable "Systeminfo_General_Date2"
Added translation variable "Systeminfo_General_TimeZone"
2023-08-13 19:12:57 +02:00
Carlos V
3200b3bc10 Update systeminfo.php
Updated translation variable "Systeminfo_Storage_Usage"
2023-08-13 19:01:29 +02:00
Carlos V
e98035e418 Update de_de.json
Added translation variable "Systeminfo_Storage_Mount"
Added translation variable "Systeminfo_Storage_Device"
Added translation variable "Systeminfo_Storage_Size"
Added translation variable "Systeminfo_Storage_Type"
2023-08-13 18:59:07 +02:00
Carlos V
477d43b675 Update de_de.json
Added translation variable "Systeminfo_Storage_Usage_Mount"
Added translation variable "Systeminfo_Storage_Usage_Total"
Added translation variable "Systeminfo_Storage_Usage_Used"
Added translation variable "Systeminfo_Storage_Usage_Free"
2023-08-13 18:58:29 +02:00
Carlos V
01d7730ffb Update de_de.json
Update translation variable "Systeminfo_Storage_Usage"
2023-08-13 18:56:49 +02:00
Carlos V
d69227a8f1 Update de_de.json
Added translation variable "Systeminfo_Services_Name"
Added translation variable "Systeminfo_Services_Description"
2023-08-13 18:56:27 +02:00
Carlos V
7e6fa9fcbd Update en_us.json
Added translation variable "Systeminfo_Storage_Mount"
Added translation variable "Systeminfo_Storage_Device"
Added translation variable "Systeminfo_Storage_Size"
Added translation variable "Systeminfo_Storage_Type"
2023-08-13 18:55:20 +02:00
Carlos V
a58ef98a9c Update en_us.json
Added translation variable "Systeminfo_Storage_Usage_Mount"
Added translation variable "Systeminfo_Storage_Usage_Total"
Added translation variable "Systeminfo_Storage_Usage_Used"
Added translation variable "Systeminfo_Storage_Usage_Free"
2023-08-13 18:53:48 +02:00
Carlos V
5805c94c8a Update en_us.json
Update translation variable "Systeminfo_Storage_Usage"
Added translation variable "Systeminfo_Services_Name"
Added translation variable "Systeminfo_Services_Description"
2023-08-13 18:52:39 +02:00
Carlos V
df0afdc7be Update es_es.json
Update translation variable "Systeminfo_Services_Description"
2023-08-13 18:51:25 +02:00
Carlos V
5bf12e4e7d Update es_es.json
Update translation variable "Systeminfo_Storage_Usage"
Added translation variable "Systeminfo_Storage_Mount"
Added translation variable "Systeminfo_Storage_Device"
Added translation variable "Systeminfo_Storage_Size"
Added translation variable "Systeminfo_Storage_Type"
2023-08-13 18:49:37 +02:00
Carlos V
c9f22aa0c7 Update es_es.json
Added translation variable "Systeminfo_Storage_Usage_Mount"
Added translation variable "Systeminfo_Storage_Usage_Total"
Added translation variable "Systeminfo_Storage_Usage_Used"
Added translation variable "Systeminfo_Storage_Usage_Free"
2023-08-13 18:47:24 +02:00
Carlos V
8c91357fbb Update es_es.json
Added translation variable "Systeminfo_Services_Name"
Added translation variable "Systeminfo_Services_Description"
2023-08-13 18:45:01 +02:00
Carlos V
4a0265ef25 Update systeminfo.php
Added name variable in tr "Systeminfo_Storage_Mount"
Added name variable in tr "Systeminfo_Storage_Device"
Added name variable in tr "Systeminfo_Storage_Size"
Added name variable in tr "Systeminfo_Storage_Type"
2023-08-13 18:38:17 +02:00
Carlos V
d392be05a2 Update systeminfo.php
Added name variable in tr "Systeminfo_Storage_Usage_Mount"
Added name variable in tr "Systeminfo_Storage_Usage_Total"
Added name variable in tr "Systeminfo_Storage_Usage_Used"
Added name variable in tr "Systeminfo_Storage_Usage_Free"
2023-08-13 18:36:42 +02:00
Carlos V
824825860f Update systeminfo.php
Added name variable in tr "Systeminfo_Services_Name"
Added name variable in tr "Systeminfo_Services_Description"
2023-08-13 18:34:43 +02:00
Carlos V
0a4261bba4 Update systeminfo.php
Updated name "BIOS date"
2023-08-13 18:32:20 +02:00
jokob-sk
93e76e27d7 Merge pull request #352 from Steve-Tech/main
Fix typo in last SQL PR 👍🙏
2023-08-13 16:19:07 +10:00
Stephen Horvath
9812b76138 Fix typo in last commit 2023-08-13 15:31:00 +10:00
jokob-sk
988a323757 Merge pull request #351 from Steve-Tech/main
Fix SQL injection/error - thanks @Steve-Tech 🙏
2023-08-13 15:25:49 +10:00
Stephen Horvath
29fc5c669d Use SQL parameters here too, just in case 2023-08-13 14:59:38 +10:00
Stephen Horvath
fbc3c8cede Fix accidental SQL injection when using plugins returning names with ' 2023-08-13 14:51:55 +10:00
Jokob-sk
11f341366b Events, CurrentScan, pluginsState, APPRISE work 2023-08-13 09:26:30 +10:00
jokob-sk
2414498846 Merge pull request #349 from cvc90/Pi.Alert-Fixed-missing-icon-pages-titles
Multiple fixes to missing icon in page title
2023-08-13 06:11:53 +10:00
jokob-sk
1977f48eb1 Merge pull request #350 from cvc90/Pi.Alert-Multiple-fixes-in-translations
Multiple fixes in translations
2023-08-13 06:11:20 +10:00
Carlos V
dc1c5763aa Update pluginsCore.php
Updated new translation variable "Plugins_Out_of"
2023-08-12 21:38:01 +02:00
Carlos V
14e16a9d18 Update pluginsCore.php
Update new translation variable "Plugins_Out_of"
2023-08-12 21:18:32 +02:00
Carlos V
4505a5a97a Update config.json
Added Spanish translation
2023-08-12 21:03:07 +02:00
Carlos V
f076240832 Update config.json
Added Spanish translation
Removed blank spaces
2023-08-12 20:46:24 +02:00
Carlos V
086d1c03cf Update config.json
Added Spanish translation
2023-08-12 20:39:20 +02:00
Carlos V
c6fab002be Update systeminfo.php
Added new translation variable "Systeminfo_General"
Added new translation variable "Systeminfo_This_Client"
Added new translation variable "Systeminfo_System"
Added new translation variable "Systeminfo_Motherboard"
Added new translation variable "Systeminfo_CPU"
Added new translation variable "Systeminfo_Memory"
Added new translation variable "Systeminfo_Storage"
Added new translation variable "Systeminfo_Storage_usage"
Added new translation variable "Systeminfo_Network"
Added new translation variable "Systeminfo_Network_Hardware"
Added new translation variable "Systeminfo_Services" : "Services",
Added new translation variable "Systeminfo_USB_Devices"
2023-08-12 19:57:33 +02:00
Carlos V
48be1a9eda Update de_de.json
Added new translation variable "Systeminfo_General"
Added new translation variable "Systeminfo_This_Client"
Added new translation variable "Systeminfo_System"
Added new translation variable "Systeminfo_Motherboard"
Added new translation variable "Systeminfo_CPU"
Added new translation variable "Systeminfo_Memory"
Added new translation variable "Systeminfo_Storage"
Added new translation variable "Systeminfo_Storage_usage"
Added new translation variable "Systeminfo_Network"
Added new translation variable "Systeminfo_Network_Hardware"
Added new translation variable "Systeminfo_Services" : "Services",
Added new translation variable "Systeminfo_USB_Devices"
2023-08-12 19:32:27 +02:00
Carlos V
59e3f45e70 Update es_es.json
Added new translation variable "Systeminfo_General"
Added new translation variable "Systeminfo_This_Client"
Added new translation variable "Systeminfo_System"
Added new translation variable "Systeminfo_Motherboard"
Added new translation variable "Systeminfo_CPU"
Added new translation variable "Systeminfo_Memory"
Added new translation variable "Systeminfo_Storage"
Added new translation variable "Systeminfo_Storage_usage"
Added new translation variable "Systeminfo_Network"
Added new translation variable "Systeminfo_Network_Hardware"
Added new translation variable "Systeminfo_Services" : "Services",
Added new translation variable "Systeminfo_USB_Devices"
2023-08-12 19:27:07 +02:00
Carlos V
294a205dfd Update en_us.json
Added new translation variable "Systeminfo_General"
Added new translation variable "Systeminfo_This_Client"
Added new translation variable "Systeminfo_System"
Added new translation variable "Systeminfo_Motherboard"
Added new translation variable "Systeminfo_CPU"
Added new translation variable "Systeminfo_Memory"
Added new translation variable "Systeminfo_Storage"
Added new translation variable "Systeminfo_Storage_usage"
Added new translation variable "Systeminfo_Network"
Added new translation variable "Systeminfo_Network_Hardware"
Added new translation variable "Systeminfo_Services" : "Services",
Added new translation variable "Systeminfo_USB_Devices"
2023-08-12 19:26:05 +02:00
Carlos V
80500b6ede Update de_de.json
Added new translation variable "Plugins_Out_of"
2023-08-12 19:15:20 +02:00
Carlos V
06d9cf2292 Update en_us.json
Added new translation variable "Plugins_Out_of"
2023-08-12 19:14:11 +02:00
Carlos V
b7a3ad7044 Update es_es.json
Added new translation variable "Plugins_Out_of"
2023-08-12 19:12:35 +02:00
Carlos V
b6df0fb1a8 Update pluginsCore.php
Added new translation variable "Plugins_Out_of"
2023-08-12 19:07:13 +02:00
Carlos V
42e0d4330d Update es_es.json
Removed icon of translation variable "HelpFAQ_Title"
2023-08-12 18:49:06 +02:00
Carlos V
cfae2c3418 Update maintenance.php
Fixed missing icon in page subtitle
2023-08-12 18:45:39 +02:00
Carlos V
fd314b5187 Update devices.php
Fixed missing icon in page title
2023-08-12 18:42:46 +02:00
Carlos V
f6a680730f Update help_faq.php
Fixed missing icon in page title
2023-08-12 18:41:41 +02:00
Carlos V
0164f4a9d7 Update maintenance.php
Fixed missing icon in page title
2023-08-12 18:39:31 +02:00
Carlos V
b37b4559b0 Update presence.php
Fixed missing icon in page title
2023-08-12 18:37:48 +02:00
Carlos V
81d9e12c8d Update report.php
Fixed missing icon in page title
2023-08-12 18:37:20 +02:00
Carlos V
5aa4450691 Update settings.php
Fixed missing icon in page title
2023-08-12 18:36:57 +02:00
Carlos V
144b81eab7 Update systeminfo.php
Fixed missing icon in page title
2023-08-12 18:34:56 +02:00
Jokob-sk
c2e4d39117 Events, CurrentScan, pluginsState, ENABLE_PLUGINS work 2023-08-12 12:17:53 +10:00
Jokob-sk
5397edc14d Events, CurrentScan, pluginsState, ENABLE_PLUGINS work 2023-08-12 11:56:35 +10:00
Jokob-sk
82d7c28fd7 Docs + pihole tweaks 2023-08-12 07:32:26 +10:00
Jokob-sk
b3159d683c Docs + show_ui 2023-08-12 07:24:42 +10:00
Jokob-sk
56d6190fa3 Docs + string fixes 2023-08-12 06:41:11 +10:00
jokob-sk
b59d2149b8 Merge pull request #346 from cvc90/Pi.Alert-MULTIPLE-FIX-ES_ES.JSON-V3
Multiple fixes in file "es_es.json" v3
2023-08-11 13:44:50 +10:00
jokob-sk
3ca4ce9c80 Merge pull request #347 from cvc90/Fixed-TAG-SPAN-MENU
Fixed tag <span> in "Navigation_Presence"
2023-08-11 13:27:28 +10:00
jokob-sk
c3a6b33b33 Merge pull request #348 from cvc90/Fixed-Overflow-header-mobile
Fixed overflow header on mobile
2023-08-11 13:07:47 +10:00
Carlos V
de964eb64a Update pialert.css
Added option for "Back Button" to hide it on small screens
Added option for "Next Button" to hide it on small screens
Added option for "Reload Button" to hide it on small screens
Added option for "Full Screen Button" to hide it on small screens
2023-08-11 02:27:16 +02:00
Carlos V
e421d84033 Update header.php
Fixed tag <span> in "Navigation_Presence"
2023-08-11 01:55:25 +02:00
Carlos V
76e02d691d Update presence.php
Updated creators banner
2023-08-11 01:32:50 +02:00
Carlos V
e7a8668420 Update es_es.json
Updated translation variable "Presence_Title"
2023-08-11 01:31:09 +02:00
Carlos V
b71da10a80 Update presence.php
Updated Title "Presence_Title"
2023-08-11 01:30:39 +02:00
Carlos V
a73f8bf8da Update systeminfo.php
Updated title "SYSTEM_TITLE"
2023-08-11 01:29:40 +02:00
Carlos V
eae55beccc Update settings.php
Updated title "Navigation_Settings"
2023-08-11 01:29:24 +02:00
Carlos V
2b9c76efe1 Update report.php
Updated title "REPORT_TITLE"
2023-08-11 01:29:07 +02:00
Carlos V
b1b3abeb2f Update maintenance.php
Updated title "Maintenance_Title"
2023-08-11 01:28:34 +02:00
Carlos V
8d028ad705 Update events.php
Updated title "Events_Title"
2023-08-11 01:27:52 +02:00
Carlos V
50098bd092 Update devices.php
Updated Title "Device_Title"
2023-08-11 01:27:31 +02:00
Carlos V
6f45cfc60c Update devices.php
Updated creators banner
2023-08-11 01:26:10 +02:00
Carlos V
d3030b8815 Update es_es.json
Updated translation variable "Updated title "Device_Title"
2023-08-11 01:24:28 +02:00
Carlos V
12e97c6b9a Update devices.php
Updated Title "Device_Title"
2023-08-11 01:23:58 +02:00
Carlos V
a6797d8608 Update es_es.json
Updated translation variable "Updated title "Events_Title"
2023-08-11 01:21:34 +02:00
Carlos V
640aac54f5 Update events.php
Updated title "Events_Title"
Updated creators banner
2023-08-11 01:20:42 +02:00
Carlos V
89e7ae9593 Update es_es.json
Updated translation variable "Updated title "REPORT_TITLE"
2023-08-11 01:16:02 +02:00
Carlos V
80cc4ec265 Update report.php
Updated title "REPORT_TITLE"
2023-08-11 01:15:19 +02:00
Carlos V
ffb187dd84 Update es_es.json
Updated translation variable "Updated title "SYSTEM_TITLE"
2023-08-11 01:13:25 +02:00
Carlos V
48117cc0d6 Update systeminfo.php
Updated title "SYSTEM_TITLE"
2023-08-11 01:12:42 +02:00
Carlos V
a4c236979f Update settings.php
Updated title "Navigation_Settings"
2023-08-11 01:10:10 +02:00
Carlos V
73e9748631 Update es_es.json
Added translation variable "Maintenance_Status"
2023-08-11 01:04:04 +02:00
Carlos V
d46289e59d Update maintenance.php
Added title "Maintenance_Status"
2023-08-11 01:01:43 +02:00
Carlos V
55ab809d5c Update es_es.json
Updated translation variable "Maintenance_Title"
2023-08-11 00:58:31 +02:00
Carlos V
6843668193 Update maintenance.php
Updated title "Maintenance_Title"
2023-08-11 00:57:53 +02:00
Carlos V
c6a2f697b8 Update es_es.json
Updated translation variable "Maintenance_built_on"
2023-08-11 00:34:44 +02:00
Carlos V
02340feb70 Update es_es.json
Variable de traducción actualizada "HelpFAQ_Cat_Detail"
2023-08-11 00:22:27 +02:00
Carlos V
42e1030f85 Update es_es.json
Updated translation variable "Navigation_Report"
Updated translation variable "REPORT_TITLE"
2023-08-11 00:20:25 +02:00
Carlos V
221b6349f1 Update es_es.json
Updated translation variable "Settings_Title"
2023-08-11 00:08:39 +02:00
Carlos V
ac1dbe4e46 Merge branch 'jokob-sk:main' into Pi.Alert-MULTIPLE-FIX-ES_ES.JSON-V3 2023-08-11 00:06:38 +02:00
Jokob-sk
75c4b50d96 CurrentScan sync #334 2023-08-11 08:04:20 +10:00
Carlos V
20955e1a8f Update es_es.json
Updated translation variable "Settings_Title"
2023-08-10 23:44:21 +02:00
jokob-sk
4fa8b8c4ef Merge pull request #343 from cvc90/Pi.Alert-fixes-improvements-Report
Corrections and improvements in the "Report" menu
2023-08-11 07:36:46 +10:00
Jokob-sk
bf29cd42d6 Help icons #338 2023-08-11 07:35:42 +10:00
Jokob-sk
d85ecb0d12 Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-08-11 07:29:05 +10:00
Jokob-sk
27519a3966 Maintenance icons #341 2023-08-11 07:28:48 +10:00
Carlos V
50480b85dd Update de_de.json
Updated translation variable "Report"
2023-08-10 23:19:43 +02:00
Carlos V
14d236cac7 Update en_us.json
Updated translation variable "Report"
2023-08-10 23:19:01 +02:00
Carlos V
220bd6798e Update es_es.json
Updated translation variable "Report"
2023-08-10 23:18:28 +02:00
jokob-sk
2003f5a946 Merge pull request #342 from cvc90/Pi.Alert-FIX-Version-Docker_dev-V3
Fixed bug to get version in docker dev (V3) - yeah debugging GitHub workflows is a pain, isn't it? 😅 Thanks for the hard work @cvc90 🙏
2023-08-11 07:08:19 +10:00
Carlos V
7e75df6334 Update header.php
Updated "Report" menu icon
2023-08-10 23:04:36 +02:00
Carlos V
b4775ae1e7 Update docker_dev.yml
Updated "get_version" variable (Changed to "Dev")
2023-08-10 22:40:43 +02:00
Carlos V
fec1b3f323 Update docker_dev.yml
Variable "get_version" updated (changed to "dev")
2023-08-10 22:35:56 +02:00
jokob-sk
50aeaa957e Merge pull request #340 from cvc90/Pi.Alert-fixes-improvements-systeminfo-v3
Corrections and improvements in the "System info" menu v3
2023-08-11 06:04:31 +10:00
jokob-sk
9a59102f92 Merge pull request #335 from cvc90/Pi.Alert-MULTIPLE-FIX-ES_ES.JSON-V2
Multiple fix es_es.json v2
2023-08-11 06:01:28 +10:00
jokob-sk
6b13738ea7 Merge pull request #321 from cvc90/Pi.Alert-Add-New-Menu-Report
Added the new "Report" menu and various fixes for the new menu, thanks @cvc90 🙏
2023-08-11 06:00:06 +10:00
jokob-sk
3c2dc0dbfb Merge pull request #337 from cvc90/Pi.Alert-FIX-Version-Docker_dev-V2
Fixed bug to get version in docker dev
2023-08-11 05:58:48 +10:00
Carlos V
243f0034f3 Update report.php
Modified the creators banner
Removed error_reporting variable to disable php errors
2023-08-10 21:50:21 +02:00
Carlos V
1dfe20b0c9 Update es_es.json
Added variable "Settings_Title"
2023-08-10 21:31:16 +02:00
Carlos V
d6cffb367f Update es_es.json
Updated variable "Events_Title"
2023-08-10 21:24:15 +02:00
Carlos V
2561fccce5 Update es_es.json
Updated variable "Presence_Title"
2023-08-10 21:22:12 +02:00
Carlos V
3933936aa9 Update es_es.json
Device_Title
2023-08-10 21:20:25 +02:00
Carlos V
12f628aa5d Update es_es.json
Updated variable "Maintenance_Title"
2023-08-10 21:17:21 +02:00
Carlos V
5ed95dcd36 Update es_es.json
Updated variable "HelpFAQ_Title"
2023-08-10 21:16:43 +02:00
Carlos V
47ef80cc44 Update es_es.json
Updated variable "SYSTEM_TITLE"
2023-08-10 21:16:13 +02:00
Carlos V
832beeef22 Update systeminfo.php
Added new section of variables "Network stats"
Updated "Storage usage" section
Updated "Network" section
2023-08-10 21:08:11 +02:00
Carlos V
6598eb9a48 Update docker_dev.yml
Updated "get_version" variable (Changed to "dev")
2023-08-10 20:09:27 +02:00
Carlos V
4e36f539ef Update es_es.json
Updated translation variable "HRS_TO_KEEP_NEWDEV_description"
2023-08-10 17:04:26 +02:00
Carlos V
93a7da0018 Update es_es.json
Added translation variable "WEBHOOK_SIZE_name"
Added translation variable "WEBHOOK_SIZE_description"
2023-08-10 17:00:19 +02:00
Carlos V
622694f405 Update es_es.json
Added translation variable "HRS_TO_KEEP_NEWDEV_name"
Added translation variable "HRS_TO_KEEP_NEWDEV_description"
2023-08-10 16:52:33 +02:00
Carlos V
01c5de3620 Update es_es.json
Added translation variable "PLUGINS_KEEP_HIST_name"
Added translation variable "PLUGINS_KEEP_HIST_description"
2023-08-10 16:47:57 +02:00
Carlos V
5e1248cc00 Update es_es.json
Added translation variable "Setting_Override_Description"
2023-08-10 16:39:23 +02:00
Carlos V
efecdff59d Update es_es.json
Added translation variable "Setting_Override"
2023-08-10 16:38:05 +02:00
Carlos V
3c5deccb84 Update es_es.json
Updated translation variable "HelpFAQ_Cat_Detail"
2023-08-10 16:33:19 +02:00
Carlos V
8e12daf1c7 Update es_es.json
Updated whitespace in the "Network_ManageUnassign" variable
2023-08-10 16:32:14 +02:00
Carlos V
008da18727 Update es_es.json
Added translation variable "BackDevDetail_Copy_Title"
2023-08-10 16:29:12 +02:00
Carlos V
f108cc86da Update es_es.json
Added translation variable "BackDevDetail_Copy_As"
2023-08-10 16:26:48 +02:00
Carlos V
f2b2a25a19 Update es_es.json
Added translation variable "DevDetail_Copy_Device_Tooltip"
2023-08-10 16:22:21 +02:00
Carlos V
82a1a7e5c7 Update es_es.json
Added translation variable ""DevDetail_Copy_Device_Title""
2023-08-10 16:20:59 +02:00
Carlos V
e4b61e2667 Update es_es.json
Updated blanks in the "DevDetail_button_Delete" variable
2023-08-10 16:16:53 +02:00
Carlos V
cd4d1ca37b Update es_es.json
Updated translation variable "DevDetail_EveandAl_Title"
2023-08-10 16:15:15 +02:00
Carlos V
d238de9fb1 Update es_es.json
Updated translation variable "DevDetail_SessionInfo_Title"
2023-08-10 16:14:10 +02:00
Carlos V
4b07e8bbb6 Update es_es.json
Updated translation variable "DevDetail_MainInfo_Network_Port"
2023-08-10 16:13:22 +02:00
Carlos V
2cb169eff5 Update es_es.json
Updated translation variable "DevDetail_MainInfo_Network_Title"
2023-08-10 16:11:10 +02:00
Carlos V
b53b455719 Update es_es.json
Updated translation variable "DevDetail_MainInfo_Title"
2023-08-10 16:09:18 +02:00
Carlos V
cf51d1f5d7 Update es_es.json
Updated translation variable "DevDetail_Tab_Details"
Updated translation variable "DevDetail_Tab_Nmap"
Updated translation variable "DevDetail_Tab_Sessions"
Updated translation variable "DevDetail_Tab_Presence"
Updated translation variable "DevDetail_Tab_Events"
2023-08-10 16:08:06 +02:00
Carlos V
296fd71b5a Update es_es.json
Added translation variable "Presence_CalHead_day"
2023-08-10 16:03:45 +02:00
Carlos V
4f17e61e8a Update es_es.json
Added translation variable "Device_TableHead_Port"
2023-08-10 16:02:15 +02:00
Carlos V
95126b7c36 Update es_es.json
Added translation variable "Gen_Copy"
2023-08-10 15:57:38 +02:00
Jokob-sk
d2b6e75483 Docs + before_config_save run option 2023-08-10 08:01:16 +10:00
Jokob-sk
320660945c Work on lang #332 2023-08-10 07:13:04 +10:00
jokob-sk
a0d02b2aa5 Merge pull request #333 from cvc90/Pi.Alert-FIX-JSON-Plugin-Website-Monitor
Update config.json of "Website_monitor" plugin
2023-08-09 16:06:50 +10:00
Carlos V
19cf64a6f0 Update config.json
Updated config.json file for the "Spanish" language
2023-08-09 05:39:47 +02:00
jokob-sk
01017040e3 Merge pull request #331 from cvc90/Pi.Alert-FIX-Version-Docker_dev
Fix version docker_dev
2023-08-09 12:57:23 +10:00
Carlos V
9c7f5ff771 Update docker_dev.yml
Added "get_version" variable
Added variable "Create .VERSION file"
2023-08-09 03:12:32 +02:00
jokob-sk
3718a06ea9 Merge pull request #329 from cvc90/Pi.Alert-fixes-improvements-systeminfo-v2
Corrections and improvements in the "System info" menu v2
2023-08-09 10:54:14 +10:00
Carlos V
2950d2ce9f Update systeminfo.php
Updated variable "total_memorykb"
Updated variable "total_memorymb"
2023-08-09 02:50:07 +02:00
Carlos V
4f59d0867d Update systeminfo.php
Added new section "Motherboard"
Added new section "Motherboard stat"
Added new variable "motherboard_name" in the section "Motherboard stat"
Added new variable "motherboard_manufactured" in the section "Motherboard stat"
Added new variable "motherboard_revision" in the section "Motherboard stat"
Added new variable "motherboard_bios" in the section "Motherboard stat"
Added new variable "motherboard_biosdate" in the section "Motherboard stat"
Added new variable "biosvendor" in the section "Motherboard stat"
2023-08-09 00:32:56 +02:00
Carlos V
ee98c7a653 Merge branch 'jokob-sk:main' into Pi.Alert-fixes-improvements-systeminfo-v2 2023-08-09 00:27:17 +02:00
Jokob-sk
af902dae57 Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-08-09 07:53:09 +10:00
Jokob-sk
0e23c6ac61 PIHOLE to plugin rewrite 2023-08-09 07:52:56 +10:00
Carlos V
30362bb72e Merge branch 'jokob-sk:main' into Pi.Alert-fixes-improvements-systeminfo-v2 2023-08-08 23:40:41 +02:00
Carlos V
dd7f86bfa0 Update systeminfo.php
Updated "cpu_temp" variable
Added new variable "cpu_vendor"
Updated "CPU" menu section
2023-08-08 23:38:41 +02:00
Carlos V
b231a06ee8 Update systeminfo.php
Added a new separator comment for the "General" section variables
2023-08-08 22:30:50 +02:00
jokob-sk
d86a042070 Merge pull request #328 from cvc90/Pi.Alert-FIX-Banners-Creators
Multiple creators banner fixes
2023-08-09 06:09:12 +10:00
Carlos V
b0e34a802d Update systeminfo.php
Actualizada seccion "General"
Actualizada seccion "This Client"
Actualizada seccion "System"
Actualizada seccion "Network"
2023-08-08 21:34:00 +02:00
Carlos V
3460b88167 Update report_template_new_version.html
Fix creators banner
2023-08-08 20:12:22 +02:00
Carlos V
2668370450 Update maintenance.php
Fix creators banner
2023-08-08 20:11:07 +02:00
Carlos V
42e1e748a3 Update systeminfo.php
Fix creators banner
2023-08-08 20:10:30 +02:00
Carlos V
0c620a06f7 Update footer.php
Fix banner creators
2023-08-08 20:08:36 +02:00
jokob-sk
bae7b0400c Merge pull request #326 from cvc90/Pi.Alert-Fix-Version-Build-Footer
Update footer to show version and build
2023-08-08 17:35:06 +10:00
Jokob-sk
b87083e6b1 Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-08-08 17:30:29 +10:00
Jokob-sk
db4d81863b PIHOLE to plugin rewrite 2023-08-08 17:29:27 +10:00
jokob-sk
2c15bc4127 Merge pull request #325 from cvc90/Pi.Alert-fixes-improvements-systeminfo
Corrections and improvements in the "System info" menu
2023-08-08 13:59:18 +10:00
Carlos V
f7a8e77cc5 Update footer.php
Updated the creators banner
updated comments
Updated footer code
Clean up blanks
Code reduction
2023-08-08 05:03:42 +02:00
Carlos V
7c16bd31a2 Update systeminfo.php
Updated "Storage usage" section
2023-08-08 04:31:51 +02:00
Carlos V
d5d23c8c60 Update systeminfo.php
Modified "Memory" section
2023-08-08 04:23:21 +02:00
Carlos V
3948557da8 Update systeminfo.php
Change of order of "General" section
Change of order of "This Client" section
2023-08-08 04:11:35 +02:00
Carlos V
8057d49be0 Update systeminfo.php
Updated the "Memory Statistics" formula variables
Updated "Memory Statistics" echo variables
Added new formula variables for "CPU Temp"
Modified section "General"
Added new section "System"
Added new section "CPU"
Added new section "Memory"
2023-08-08 03:58:08 +02:00
Jokob-sk
22bfb9deef PIHOLE to plugin rewrite 2023-08-08 08:05:42 +10:00
Jokob-sk
c9f4560cf9 PIHOLE to plugin rewrite 2023-08-08 08:02:15 +10:00
Jokob-sk
6dee27e5a5 Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-08-08 06:53:09 +10:00
Jokob-sk
9ddea01f12 ARPSCAN to plugin rewrite 2023-08-08 06:52:43 +10:00
jokob-sk
8a8790d49b Merge pull request #322 from cvc90/Pi.Alert-FIX-Report-Banners-Creators
Fix banners creators in report
2023-08-08 06:28:16 +10:00
jokob-sk
e74b8d27b6 Merge pull request #323 from cvc90/Pi.Alert-New-Function-Reporting
Add new function reporting
2023-08-08 06:27:10 +10:00
Carlos V
a38d254877 Update version.php
Update path file
2023-08-07 19:30:41 +02:00
Carlos V
3ca4e19199 Update version.php
Updated blank spaces
2023-08-07 18:18:57 +02:00
Carlos V
0b3b1e4ed4 Update build.php
Updated the creators banner
2023-08-07 18:15:08 +02:00
Carlos V
b068b631be Update build.php
Added the creators banner
Updated blank spaces
2023-08-07 18:14:21 +02:00
Carlos V
9bdac0edbf Update version.php
Created creators banner
2023-08-07 17:44:40 +02:00
Carlos V
56604f702f Create build.php
Created build.php file
Added new php code to search for build file and if it doesn't find it, it shows the file not found error
2023-08-07 17:16:20 +02:00
Carlos V
25bdc36183 Create version.php
Created file version.php
Added new php code to search for version file and if it doesn't find it, it shows the file not found error.
2023-08-07 17:12:10 +02:00
Carlos V
fa7582135e Update reporting.py
Added new code "VERSION" to report version in report file
Added new code "BUILD" to report version in report file
Updated "REPORT_DATE" comment tag
Updated "SERVER_NAME" comment tag
2023-08-07 17:09:01 +02:00
Carlos V
40e94e45a2 Update report_template_new_version.html
Fix banner creators
2023-08-07 14:51:02 +02:00
Carlos V
e119d51d08 Update report_template.html
Fix banner creators
2023-08-07 14:49:52 +02:00
jokob-sk
7c63a5e52f Merge pull request #318 from cvc90/Pi.Alert-New-Style-Reports
Modified the style of the reports v2
2023-08-07 21:56:15 +10:00
Carlos V
3a46c7eb27 Merge branch 'main' into Pi.Alert-New-Style-Reports 2023-08-07 12:41:45 +02:00
Jokob-sk
80bda24b5f ARPSCAN to plugin rewrite 2023-08-07 17:42:46 +10:00
Jokob-sk
5f3f4c1a73 ARPSCAN to plugin rewrite 2023-08-07 16:22:27 +10:00
Jokob-sk
1bdfc1962a Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-08-07 15:34:12 +10:00
Jokob-sk
ff9245c31d ARPSCAN to plugin rewrite 2023-08-07 15:33:41 +10:00
jokob-sk
085e7c80e7 Update systeminfo.php
Remove php error muting
2023-08-07 08:40:27 +10:00
Jokob-sk
9a13133a5f ARPSCAN to plugin rewrite 2023-08-07 08:23:39 +10:00
Carlos V
1baeeb99db Update report.php
Update variable "REPORT_TITLE"
2023-08-06 15:00:58 +02:00
Carlos V
8f1223c55b Update report.php
Create variable echo lang('REPORT_ERROR');
2023-08-06 14:55:48 +02:00
Carlos V
64ad2f6b80 Update de_de.json
Added variable "Navigation_Report"
Added variable "REPORT_TITLE"
Added variable "REPORT_ERROR
2023-08-06 14:13:10 +02:00
Carlos V
39282d51ac Update en_us.json
Added variable "Navigation_Report"
Added variable "REPORT_TITLE"
Added variable "REPORT_ERROR"
2023-08-06 14:07:28 +02:00
Carlos V
76c3f7e94e Merge branch 'jokob-sk:main' into Pi.Alert-Add-New-Menu-Report 2023-08-06 14:02:43 +02:00
Carlos V
2a14d59a45 Update es_es.json
Added variable "Navigation_Report"
Added variable "REPORT_TITLE"
Added variable "REPORT_ERROR"
2023-08-06 13:59:51 +02:00
jokob-sk
d848e18bc0 Merge pull request #320 from cvc90/Pi.Alert-MULTIPLE-FIX-ES_ES.JSON
Various fixes in es_es.json
2023-08-06 21:56:08 +10:00
Carlos V
3430118f09 Create report.php
Added new page "Report.php" to load the last report generated by Pi.Alert
2023-08-06 13:46:27 +02:00
Carlos V
e0c7ffbb12 Update header.php 2023-08-06 13:43:48 +02:00
Carlos V
ec669a701e Update es_es.json
Updated variable HelpFAQ_Cat_Network_601_text ("HelpFAQ_Cat_Network_601_text": "¡Sí, los hay! Marque <a target=\"_blank\" href=\"https://github.com/jokob-sk/Pi.Alert/blob/main/docs/\">all docs</a> para más información." --> "HelpFAQ_Cat_Network_601_text": "¡Sí, los hay! Marque <a target=\"_blank\" href=\"https://github.com/jokob-sk/Pi.Alert/blob/main/docs/\">todos los documentos</a> para más información.")
2023-08-06 12:27:15 +02:00
Carlos V
8da84e8d64 Update es_es.json
Added variable "DevDetail_Tab_Plugins" ("DevDetail_Tab_Plugins" : "<i class=\"fa fa-plug\"></i> Plugins")
2023-08-06 11:52:16 +02:00
Carlos V
90e94a14fb Update es_es.json
Added  variable "Plugins_History" ("Plugins_History" : "Historial de eventos")
Added  variable "Plugins_Filters_Mac" ("Plugins_Filters_Mac" : "Filtro MAC")
2023-08-06 11:45:03 +02:00
Carlos V
f33262d262 Update es_es.json
Added variable "Maintenance_built_on" ("Maintenance_built_on" : "Construido el")
2023-08-06 11:35:23 +02:00
Carlos V
2e137b4e07 Update es_es.json
Added variable HelpFAQ_Cat_Network_601_head ("HelpFAQ_Cat_Network_601_head": "¿Hay otros documentos?")
Added variable HelpFAQ_Cat_Network_601_text ("HelpFAQ_Cat_Network_601_text": "¡Sí, los hay! Marque <a target=\"_blank\" href=\"https://github.com/jokob-sk/Pi.Alert/blob/main/docs/\">all docs</a> para más información.")
2023-08-06 11:27:59 +02:00
Carlos V
634bc0744d Update es_es.json
Updated Navigation_HelpFAQ menu variable too long ("Navigation_HelpFAQ" : "Ayuda / Preguntas frecuentes" --> "Navigation_HelpFAQ" : "Ayuda / FAQ")
Added variable Navigation_Flows ("Navigation_Flows" : "Flows")
2023-08-06 11:16:42 +02:00
jokob-sk
8cbca4430a Merge pull request #317 from cvc90/Pi.Alert-FIX-Menu-Variable-Navigation_SystemInfo
Pi.alert fix menu variable navigation system info
2023-08-06 18:37:48 +10:00
Carlos V
6c166908a1 Create and update reporting.py
Added creator banner
Added import const
Changed color in headerProps variable (color:blue --> color:white)
Modified bgcolor in headerProps variable (bgcolor=#909090 --> bgcolor=#64a0d6)
Modified bgcolor in the thProps variable (bgcolor=#909090 --> bgcolor=#64a0d6)
2023-08-06 10:18:32 +02:00
Carlos V
42ebb687f8 Create and update report_template_new_version.html
Modified creator banner url (repot_template.html --> report_template_new_version.html)
Modified the creators banner adding to cvc90
Removed several white spaces between banner and tag
Changed the background color in the table (bgcolor=#00c0ef --> bgcolor=#4b99d3)
Changed the color of the text to white in the table ( bgcolor=#4b99d3 --> bgcolor=#ffffff)
Changed the background color in td (bgcolor=#F5F5F5 --> bgcolor=#F1F5F5)
Changed the background color in the footer table (bgcolor=#46802e --> bgcolor=#3c8dbc)
Added in the footer table the color of the text to white (color: white)
Changed footer text
2023-08-06 10:13:32 +02:00
Carlos V
d9761e771f Create and Update report_template.html
Modified creator banner url repot_template.html --> report_template.html
Modified the creators banner adding to cvc90
Removed several white spaces between banner and tag
Changed the background color in the table (bgcolor=#00c0ef --> bgcolor=#4b99d3)
Changed the color of the text to white in the table (bgcolor=#4b99d3 --> bgcolor=#ffffff)
Changed the background color in td (bgcolor=#F5F5F5 --> bgcolor=#F1F5F5)
Changed the background color in the footer table (bgcolor=#46802e --> bgcolor=#3c8dbc)
Added in the footer table the color of the text to white (color: white)
Changed footer text
2023-08-06 10:07:18 +02:00
Carlos V
2575b79c8b Update de_de.json
Changed the content of the "System info" menu variable ("Navigation_SystemInfo" : "Systeminformationen" --> "Navigation_SystemInfo" : "System info")
2023-08-06 08:54:41 +02:00
Carlos V
6009098c9c Update es_es.json
Changed the content of the "System info" menu variable ("Navigation_SystemInfo" : "Información del sistema" --> "Navigation_SystemInfo" : "Info del sistema")
2023-08-06 08:51:26 +02:00
Carlos V
2946e48321 Update en_us.json
Changed the content of the "System info" menu variable ("Navigation_SystemInfo" : "System Information" --> "Navigation_SystemInfo" : "System info")
2023-08-06 08:37:28 +02:00
Jokob-sk
8256a84efe ARPSCAN to plugin rewrite 2023-08-06 11:16:43 +10:00
Jokob-sk
c2da5c56b8 ARPSCAN to plugin rewrite 2023-08-06 10:50:03 +10:00
jokob-sk
ef64014100 Merge pull request #316 from jokob-sk/revert-315-Pi.Alert-New-Style-Reports
Revert "Modified the style of the reports"
2023-08-06 07:50:07 +10:00
jokob-sk
2bb5d332ff Revert "Modified the style of the reports" 2023-08-06 07:47:37 +10:00
jokob-sk
54d71c7cc9 Merge pull request #314 from cvc90/Pi.Alert-Add-New-Menu-SystemInfo
Added the new "System Info" menu and various fixes for the new menu - with thanks to @cvc90 🙏
2023-08-06 07:39:47 +10:00
jokob-sk
14437f2984 Merge pull request #315 from cvc90/Pi.Alert-New-Style-Reports
Modified the style of the reports
2023-08-06 07:29:44 +10:00
Carlos V
928ee52a7e Update report_template_new_version.html
Modified the creators banner
2023-08-05 23:19:18 +02:00
Carlos V
82d87db762 Update report_template.html
Modified the creators banner
2023-08-05 23:16:22 +02:00
Carlos V
f26507e540 Update systeminfo.php
Updated php opening at the beginning of the file
2023-08-05 19:47:42 +02:00
Carlos V
dcd32b9162 Update reporting.py
Added creator banner
Added import const
Changed color in headerProps variable (color:blue --> color:white)
Modified bgcolor in headerProps variable (bgcolor=#909090 --> bgcolor=#64a0d6)
Modified bgcolor in the thProps variable (bgcolor=#909090 --> bgcolor=#64a0d6)
2023-08-05 19:14:17 +02:00
Carlos V
d59eb03f40 Update report_template_new_version.html
Modified creator banner url report_template.html --> report_template.html
Modified the creators banner adding to cvc90
Removed several white spaces between banner and <html> tag
Changed the background color in the table (bgcolor=#00c0ef --> bgcolor=#4b99d3)
Changed the color of the text to white in the table ( bgcolor=#4b99d3 --> bgcolor=#ffffff)
Changed the background color in td (bgcolor=#F5F5F5 --> bgcolor=#F1F5F5)
Changed the background color in the footer table (bgcolor=#46802e --> bgcolor=#3c8dbc)
Added in the footer table the color of the text to white (color: white)
Changed footer text
2023-08-05 19:04:54 +02:00
Carlos V
d096b36434 Update report_template.html
Modified creator banner url report_template.html --> report_template.html
2023-08-05 18:55:02 +02:00
Carlos V
5624401fcf Update report_template.html
Modified creator banner url report_template.html --> report_template.html
Modified the creators banner adding to cvc90
Removed several white spaces between banner and <html> tag
Changed the background color in the table (bgcolor=#00c0ef --> bgcolor=#4b99d3)
Changed the color of the text to white in the table (bgcolor=#ffffff --> bgcolor=#4b99d3)
Changed the background color in td (bgcolor=#F5F5F5 --> bgcolor=#F1F5F5)
Changed the background color in the footer table (bgcolor=#46802e --> bgcolor=#3c8dbc)
Added in the footer table the color of the text to white (color: white)
Changed footer text
2023-08-05 18:51:45 +02:00
Carlos V
8c4992bf9a Merge branch 'jokob-sk:main' into Pi.Alert-Add-New-Menu-SystemInfo 2023-08-05 15:57:36 +02:00
Carlos V
a4984dc477 Update systeminfo.php
Fixed Server name query
2023-08-05 15:54:13 +02:00
Carlos V
c2676f9fda Update systeminfo.php
Added final section separator
Fixed end of submenu section
2023-08-05 15:49:32 +02:00
jokob-sk
9bb3820e82 Merge pull request #313 from cvc90/Pi.Alert-Fix-URL-Proxy-Header
Update header.php
2023-08-05 23:47:41 +10:00
Carlos V
72ccaf754f Update systeminfo.php
Add new content to the "Network" submenu
2023-08-05 15:42:41 +02:00
Carlos V
da0d387ae0 Update systeminfo.php
Updated some comments of variable sections
Added new section of variables "Network Hardware stat"
Add new content to the "Network Hardware" submenu
2023-08-05 15:38:14 +02:00
Carlos V
e06fe9146c Update systeminfo.php
Add new content to the "Storage" submenu
2023-08-05 15:27:24 +02:00
Carlos V
e5eb3ab297 Update systeminfo.php
Fixed comment space located in variable error_reporting(0); // Turn off php errors
2023-08-05 15:21:16 +02:00
Carlos V
012589b848 Update systeminfo.php
Add new content to the "USB" variables submenu
Add new content to the "USB" submenu
Add new content to the "Services" submenu
2023-08-05 15:19:23 +02:00
Carlos V
43a2c4870e Update systeminfo.php
Fix variable $memory_usage_percent
2023-08-05 15:09:47 +02:00
Carlos V
8fe10e6314 Update systeminfo.php
Fix variable 'mem_used'
2023-08-05 14:56:05 +02:00
Carlos V
cab6c0cefb Update Dockerfile
Change "lsusb" to "usbutils" in apt-get install
2023-08-05 14:48:59 +02:00
Carlos V
07c2c2b9ac Update Dockerfile
Fixes for the new System Info menu to work in Docker, added "systemctl", "lsusb" to the installation list
2023-08-05 14:39:13 +02:00
Carlos V
a4f8cfa287 Update systeminfo.php
Update variable lang  <!--  <?= lang('SYSTEM_TITLE') ;?> --> to <?= lang('SYSTEM_TITLE') ;?>
2023-08-05 14:30:03 +02:00
Carlos V
1bafee59c8 Update de_de.json
Added new translation to German, variable "Navigation_SystemInfo" : "Systeminformationen"
Added new translation to German, variable "SYSTEM_TITLE" : "Systeminformationen"
2023-08-05 14:26:51 +02:00
Carlos V
e8f9608372 Update en_us.json
Added new translation to English, variable "Navigation_SystemInfo" : "System Information"
Added new translation to English, variable "SYSTEM_TITLE" : "System Information"
2023-08-05 14:21:44 +02:00
Carlos V
d8904f7ac8 Update systeminfo.php
Update variable lang  <!--  <?= lang('SYSTEM_TITLE') ;?> -->
2023-08-05 14:16:54 +02:00
Carlos V
8f8e4334b9 Update es_es.json
Added new translation to Spanish, variable Navigation_SystemInfo" : "Información del sistema"

Added new translation to Spanish, variable "SYSTEM_TITLE" : "Información del sistema"
2023-08-05 14:15:25 +02:00
Carlos V
293e009321 Update systeminfo.php
Updated blanks
Updated OS-Version comment
2023-08-05 14:06:06 +02:00
Carlos V
5d53f1f605 Create systeminfo.php
Create page for the new "System Information" menu
2023-08-05 14:03:06 +02:00
Carlos V
87212bb25f Update header.php
Add new menu System Info
2023-08-05 13:34:37 +02:00
Carlos V
7076c83185 Update header.php
Change url href="/maintenance.php#tab_Logging" to url href="maintenance.php#tab_Logging", to work well for people with proxy settings
2023-08-05 13:01:01 +02:00
Jokob-sk
ccbf4defe8 Set PWD plugin #286 work 2023-08-05 16:36:40 +10:00
Jokob-sk
c3c3de01e0 network tree port/wifi icons + cleanup 2023-08-05 15:52:47 +10:00
Jokob-sk
7efe658503 network tree port/wifi icons 2023-08-05 15:42:26 +10:00
Jokob-sk
88301c97eb docs + template setting override work 2023-08-05 15:05:10 +10:00
Jokob-sk
e68a04ee5b docs 2023-08-05 13:35:09 +10:00
Jokob-sk
655fa96c67 docs 2023-08-05 13:31:47 +10:00
Jokob-sk
ce5d09ed2e #303 work 2023-08-05 12:59:51 +10:00
Jokob-sk
e34a7c032a #303 work 2023-08-05 12:58:30 +10:00
Jokob-sk
88ef46b2d4 Settings work + docs 2023-08-05 10:02:56 +10:00
Jokob-sk
d5f8cdda7d Setting template work + vendors fix 2023-08-05 09:37:32 +10:00
Jokob-sk
4fbaccc0f2 Docs + flows work 2023-08-05 06:52:23 +10:00
jokob-sk
b4dd34355e Merge pull request #311 from cvc90/Pi.Alert-Add-Footer-URL
Update footer.php
2023-08-05 06:18:28 +10:00
jokob-sk
2b02e6ee29 Merge pull request #310 from cvc90/Pi.Alert-Add-Back-Next-Button
Update header.php - thanks @cvc90 🙏
2023-08-05 06:17:50 +10:00
jokob-sk
a262a89e13 Merge pull request #312 from dlgreenwald/main
Mitigate race condition in update_device_names - thanks to @dlgreenwald 🙏
2023-08-05 06:17:11 +10:00
dlgreenwald
50233460b2 Mitigate race condition in update_device_names 2023-08-04 15:07:27 -04:00
Carlos V
8776fc1356 Update footer.php
Removed blank spaces
2023-08-04 17:18:18 +02:00
Carlos V
cd793c8e67 Update footer.php
Added Pi.Alert footer with url
2023-08-04 17:15:37 +02:00
Carlos V
9a6c5896dd Update header.php
Add Back Button
Add Next Button
2023-08-04 14:18:33 +02:00
jokob-sk
43e96a8708 Merge pull request #309 from cvc90/Add-Reload
Update header.php
2023-08-04 21:46:12 +10:00
Carlos V
38702d03ac Update header.php
Added Reload button
Modified function toggleFullscreen()
Modified Full Screen button
2023-08-04 05:59:46 +02:00
jokob-sk
335fa1b003 Merge pull request #308 from cvc90/Add-FullScreen
Update header.php by @cvc90 🙏
2023-08-04 13:20:32 +10:00
Carlos V
91140642ef Update header.php
Added function toggleFullscreen()
Added Full Screen button
2023-08-04 05:00:16 +02:00
jokob-sk
eb0c7fbf68 Merge pull request #306 from cvc90/cvc90-Update-README.md
Update README.md - thanks @cvc90 🙏
2023-08-04 11:06:58 +10:00
Carlos V
d8af423a9c Update README.md
In the submenu "♻ Misc"

Reverse proxy with SWAG --> Reverse proxy (Nginx, Apache, SWAG)
2023-08-04 01:10:56 +02:00
Jokob-sk
8693d4cae9 Email CSS tweaks #304 2023-08-04 06:47:18 +10:00
Jokob-sk
960a3ebe14 Flows work + #302 2023-08-04 06:41:11 +10:00
Jokob-sk
1105caed16 Docs 2023-08-03 07:05:58 +10:00
Jokob-sk
f35bb19f5a Attribution 🙏 2023-08-03 06:53:00 +10:00
Jokob-sk
eee7816a50 Reverse proxy guides by amazing @cvc90 2023-08-03 06:50:44 +10:00
Jokob-sk
58bb740e48 flows work + network UI improvements 2023-08-02 08:02:41 +10:00
Jokob-sk
1101bc9477 settings rewrite to JS 2023-08-01 08:11:52 +10:00
Jokob-sk
6fd750e4e1 settings rewrite to JS 2023-07-31 08:14:50 +10:00
Jokob-sk
55d7cb0fec lang to json fixes 2023-07-30 10:31:23 +10:00
Jokob-sk
cc5901ffb0 settings rewrite to JS + CSS fixes 2023-07-30 10:11:27 +10:00
Jokob-sk
e9c8be78ad settings rewrite to JS + metadata work + #298 work 2023-07-30 07:58:02 +10:00
Jokob-sk
779ce0e568 settings rewrite to JS 2023-07-28 08:00:31 +10:00
Jokob-sk
c351d2e8d4 settings rewrite to JS 2023-07-27 08:02:40 +10:00
Jokob-sk
dc2849f296 settings rewrite to JS 2023-07-26 22:08:12 +10:00
Jokob-sk
b10d259390 php lang files to json 2023-07-26 20:49:27 +10:00
Jokob-sk
aac46f97ce setings improvements/JS rewrite 2023-07-26 07:14:29 +10:00
Jokob-sk
46e4857a35 setings improvements/JS rewrite 2023-07-26 07:14:09 +10:00
Jokob-sk
35a0a91a02 setings improvements/JS rewrite 2023-07-25 08:09:04 +10:00
Jokob-sk
cd164793cc presence #294 work + setings improvements 2023-07-25 06:43:15 +10:00
Jokob-sk
56f35f5068 Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-07-23 09:43:38 +10:00
Jokob-sk
e83a622152 Flows + settings metadata work 2023-07-23 09:43:12 +10:00
jokob-sk
6cdc0c14df Update README.md
Ckeanup
2023-07-22 18:03:08 +10:00
Jokob-sk
d7fb478794 pics 2023-07-22 13:15:36 +10:00
Jokob-sk
2c2bf18562 docs 2023-07-22 12:58:44 +10:00
Jokob-sk
5faf6fb419 fixes 2023-07-22 12:43:09 +10:00
Jokob-sk
b1f946e1e6 fixes 2023-07-22 12:37:53 +10:00
Jokob-sk
bcea3e1a97 fixes 2023-07-22 12:37:36 +10:00
Jokob-sk
bcda186cbe fixes 2023-07-22 12:34:12 +10:00
Jokob-sk
02215c87eb fixes 2023-07-22 12:33:16 +10:00
Jokob-sk
024e97f138 fixes 2023-07-22 12:32:01 +10:00
Jokob-sk
c56c7609cc Plugin tweaks 2023-07-22 12:28:27 +10:00
Jokob-sk
d723b37622 Docs 2023-07-22 12:07:07 +10:00
Jokob-sk
b461bf4ef7 Docs 2023-07-22 11:09:29 +10:00
Jokob-sk
6e8bb4c2ea Plugins move back 2023-07-22 11:06:01 +10:00
Jokob-sk
0446f6302e Docs 2023-07-22 10:35:54 +10:00
Jokob-sk
a0b0c0ba19 Docs 2023-07-22 10:18:11 +10:00
Jokob-sk
cb0a62396f Plugins UI improvements 2023-07-22 08:40:42 +10:00
Jokob-sk
3315994356 #253 2023-07-22 07:07:21 +10:00
Jokob-sk
c3798ff102 #253 2023-07-21 08:22:01 +10:00
Jokob-sk
43c0df086a Plugins filter + #253 2023-07-21 08:19:11 +10:00
Jokob-sk
98745805d3 Plugins filter 2023-07-20 19:11:43 +10:00
Jokob-sk
1dbdf425d6 Plugins filter 2023-07-20 08:14:37 +10:00
Jokob-sk
b3d05332e5 Plugins filter 2023-07-19 08:18:07 +10:00
Jokob-sk
98fb02282b Debug tips 2023-07-18 08:06:32 +10:00
Jokob-sk
536d789535 Content moved notice 2023-07-17 12:13:42 +10:00
Jokob-sk
d0284a0603 Filter plugin prep 2023-07-16 09:30:55 +10:00
Jokob-sk
4d433b633f Settings changes, NEWDEV work, DOCS 2023-07-15 09:35:28 +10:00
jokob-sk
388844f2bc Merge pull request #284 from Final-Hawk/main
Fix update check interval Thanks to @Final-Hawk 🙏
2023-07-14 12:13:12 +10:00
Joshua P
2fc63daf23 Fix update check 2023-07-14 12:00:40 +10:00
Jokob-sk
c9bc3e9447 Version check debug 2023-07-14 08:05:02 +10:00
Jokob-sk
4a754cdae5 new device defaults work 2023-07-13 10:35:40 +10:00
Jokob-sk
1bb1d528f4 Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-07-09 22:19:44 +10:00
Jokob-sk
770d9bfe4a moving plugins & NEWDEV 2023-07-09 22:19:40 +10:00
jokob-sk
8e3aa0407a Update README.md 2023-07-08 23:04:29 +10:00
Jokob-sk
acb756a871 moving plugins 2023-07-08 22:48:49 +10:00
jokob-sk
85e6319760 Update README.md 2023-07-08 20:51:34 +10:00
jokob-sk
66ffb5ebca Update SUBNETS.md 2023-07-08 20:49:55 +10:00
jokob-sk
e548138b9f Update README.md
docs
2023-07-08 14:38:18 +10:00
Jokob-sk
2a5a2693ce New Devices cleanup #250 work 2023-07-08 14:30:33 +10:00
Jokob-sk
efee89dcc1 Device copy server side #276 work 2023-07-08 13:27:24 +10:00
Jokob-sk
74894b519f docs+CSV import logging 2023-07-08 10:29:47 +10:00
Jokob-sk
1a08a88b9e docs/debug 2023-07-08 09:56:07 +10:00
Jokob-sk
e3e0e62d77 docs 2023-07-08 09:39:43 +10:00
Jokob-sk
235264ed1e docs 2023-07-08 09:35:24 +10:00
Jokob-sk
a5aa3d550d docs 2023-07-08 09:24:46 +10:00
Jokob-sk
79b5429a01 docs 2023-07-07 08:05:21 +10:00
Jokob-sk
45dd94e5d5 arp-scan debug #261 work 2023-07-07 07:48:45 +10:00
Jokob-sk
e0d5970643 docs 2023-07-06 19:29:49 +10:00
Jokob-sk
1fc11cd49f info on the REPORT_FROM setting #279 work 2023-07-06 19:19:41 +10:00
Jokob-sk
e5be488b3f arp-scan debug #261 work 2023-07-06 07:56:57 +10:00
Jokob-sk
77ba2e1362 arp-scan debug #261 work 2023-07-05 08:04:10 +10:00
Jokob-sk
89aa38ecc1 arp-scan debug #261 work 2023-07-05 08:01:42 +10:00
Jokob-sk
0c35577a68 arp-scan debug #261 work 2023-07-05 08:00:58 +10:00
Jokob-sk
cd9e244efd New dev defaults #274 work 2023-07-02 10:37:21 +10:00
Jokob-sk
ae876484a4 Network diagram #278 work 2023-07-02 09:25:22 +10:00
Jokob-sk
7720bba5dc webhook #271 work 2023-07-02 08:52:57 +10:00
Jokob-sk
d1b1f078aa webhook #271 work 2023-07-02 08:45:57 +10:00
Jokob-sk
8839ed5932 nginx docs + webhook debug 2023-07-01 10:52:02 +10:00
Jokob-sk
c5987778b6 #269 2023-06-25 08:53:31 +10:00
Jokob-sk
abe9ff5b2c Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-06-25 08:25:29 +10:00
Jokob-sk
e231600b88 #266, docs, contact details 2023-06-25 08:24:53 +10:00
jokob-sk
3ccad7a564 Merge pull request #268 from sbe-arg/fix/docker
fix: github packages 403
2023-06-25 07:59:15 +10:00
Santiago Bernhardt
8cf034ed29 package permissions 2023-06-24 21:57:58 +12:00
jokob-sk
9784092c7f Merge pull request #267 from sbe-arg/fix/github-login
fix: docker cache to github registry mistake
2023-06-24 19:43:08 +10:00
Santiago Bernhardt
ef3fe4dd52 fix docker cache to github packages 2023-06-24 21:36:19 +12:00
jokob-sk
7530fb0e23 Merge pull request #265 from Data-Monkey/pialert-folder-documentation
Update README.md
2023-06-24 19:12:58 +10:00
Roland Beck
49211719f0 Update README.md
complete the list of modules
2023-06-24 18:50:11 +10:00
Jokob-sk
430e53820a Docs 2023-06-24 09:45:45 +10:00
Jokob-sk
170772eb7c HA Docs 2023-06-24 09:36:52 +10:00
Jokob-sk
6f1d795c60 HA Docs + Debug ARP scan 2023-06-24 09:29:49 +10:00
Jokob-sk
3d1178bd16 Docs 2023-06-24 08:32:34 +10:00
Jokob-sk
17f2421836 Debug and attempt for #261 2023-06-24 07:55:03 +10:00
Jokob-sk
c61a5bedcf Hypervisor added for #260 2023-06-24 07:09:02 +10:00
Jokob-sk
a318a15cad SNMP walk attempt at #258 2023-06-24 06:55:24 +10:00
Jokob-sk
f430587965 Suggest Oxsq in Readme #256 2023-06-24 06:21:18 +10:00
Jokob-sk
de3b0c7ffc .VERSION file creation prod built attempt fix #209 2023-06-18 10:25:34 +10:00
Jokob-sk
689f54cdc3 GitHub API rate limit handling 2023-06-18 09:22:43 +10:00
Jokob-sk
cee24e0b6c Table rowcount in Maintenance #253 2023-06-18 08:31:05 +10:00
Jokob-sk
2e713bf1d0 Fix Log Limit #255 2023-06-18 07:40:02 +10:00
Jokob-sk
d774901b6d change to dockerhub 2023-06-17 08:22:06 +10:00
jokob-sk
7d7f3df226 Merge pull request #254 from sbe-arg/docker/caches
Speedup docker builds with a cache, thanks @sbe-arg !
2023-06-17 08:02:01 +10:00
Santiago Bernhardt
07c2cd1af4 speedup docker builds with a cache 2023-06-16 11:00:30 +12:00
jokob-sk
ddd28a0607 Update docker_prod.yml 2023-06-16 08:30:59 +10:00
jokob-sk
fa92df6567 Update docker_prod.yml 2023-06-16 08:28:54 +10:00
Jokob-sk
76a3efe039 Load only last few lines from pialert.log 2023-06-16 08:05:47 +10:00
Jokob-sk
601ed15f20 conf. variable fix & #247 2023-06-12 15:41:09 +10:00
Jokob-sk
2a3b505dff PLugin reports not sent fix 2023-06-12 11:24:42 +10:00
Jokob-sk
9550227672 Readme 2023-06-10 21:49:29 +10:00
Jokob-sk
89c0750463 Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-06-10 21:48:11 +10:00
jokob-sk
0fa71362b8 Merge pull request #249 from jokob-sk/split-up-work-2023-05-30
Split up work 2023 05 30
2023-06-10 21:45:59 +10:00
Jokob-sk
d8df097e83 Fixes 2023-06-10 11:11:40 +10:00
Jokob-sk
67c20cabc3 Upgrade DB fixes + NTFY fix 2023-06-10 10:57:26 +10:00
Jokob-sk
5867961383 Upgrade DB fixes 2023-06-10 09:01:24 +10:00
jokob-sk
649e280ce1 Merge pull request #248 from Data-Monkey/split_it_up
fix issue #4 by @Data-Monkey
2023-06-10 08:02:44 +10:00
Data-Monkey
9d982eff1b fix issue #4 2023-06-09 08:44:50 +10:00
jokob-sk
6ac8225b19 Merge pull request #246 from Data-Monkey/split_it_up
Split it up
2023-06-05 18:23:03 +10:00
Data-Monkey
55ed3c4ae0 PiHole testing and fixing 2023-06-05 15:40:32 +10:00
Data-Monkey
5d0804639c attempt to fix issue #6 as well as db.read_one() 2023-06-05 13:31:14 +10:00
Data-Monkey
6edb623b9c fix issue #7 plugins not executed 2023-06-04 14:20:19 +10:00
jokob-sk
8c2a1e17d9 Merge pull request #245 from Data-Monkey/split_it_up
Split it up
2023-06-04 14:18:03 +10:00
Data-Monkey
2a2f96d726 Issue #4 - fixed fetachall, fetchone mismatch 2023-06-04 14:06:09 +10:00
Data-Monkey
ec705df38b fixing issue #3 - webhook 2023-06-04 13:45:48 +10:00
jokob-sk
cb20fad13b Merge pull request #244 from Data-Monkey/split_it_up
Split it up
2023-06-04 08:17:59 +10:00
Data-Monkey
969cae0343 send_webhook fixed parameters 2023-06-03 21:56:10 +10:00
Data-Monkey
f9652258e9 Merge branch 'split_it_up' of https://github.com/Data-Monkey/Pi.Alert into split_it_up 2023-06-03 21:42:28 +10:00
Data-Monkey
6bb891f830 added default DB
fixed re-import of config file
2023-06-03 21:42:04 +10:00
Jokob-sk
4659d2c941 PR - day view 2023-06-03 11:57:27 +10:00
Jokob-sk
8644818949 PR - docs 2023-06-03 11:48:33 +10:00
Jokob-sk
de62956c40 PR - dev setup fixes 2023-06-03 11:36:21 +10:00
Jokob-sk
3547aec75f PR - dev setup fixes 2023-06-03 09:39:50 +10:00
Jokob-sk
21b5d775d2 PR - gitignore DB 2023-06-03 09:26:21 +10:00
Jokob-sk
0973bc538e PR - default db 2023-06-03 09:24:20 +10:00
Jokob-sk
bf2c4b87ab PR - default db 2023-06-03 09:20:24 +10:00
jokob-sk
b03087c1c5 Merge pull request #243 from Data-Monkey/split_it_up
Split it up by @Data-Monkey - Huge thanks!
2023-06-03 09:18:09 +10:00
jokob-sk
b814a856d0 Merge branch 'main' into pr/243 2023-06-03 09:17:08 +10:00
Jokob-sk
f6b69a63e2 PR 2023-06-03 09:12:57 +10:00
jokob-sk
df499ea33c PR work 2023-06-03 09:04:09 +10:00
Data-Monkey
007611c429 manually added es translations from master 2023-05-30 18:57:56 +10:00
Data-Monkey
12bf4c7bcc more scanning 2023-05-30 18:47:28 +10:00
Data-Monkey
5b05be24ad split publishers 2023-05-29 16:35:22 +10:00
Data-Monkey
f50e3d4e92 split pubishers 2023-05-29 16:35:09 +10:00
Data-Monkey
7177cdd51d more cleanup and removed files.py module again 2023-05-28 16:10:58 +10:00
Data-Monkey
a71f16ee37 changed to __main__.py and scanners folder 2023-05-27 22:38:12 +10:00
jokob-sk
070e31ef19 Merge pull request #237 from Data-Monkey/patch-1
Update pialert.py - Thanks @Data-Monkey !
2023-05-27 10:00:03 +10:00
Roland Beck
42df2b255a Update pialert.py
add filter to ignore __pycache__ in plugin dir
2023-05-26 19:08:46 +10:00
Data-Monkey
52027c65b3 working docker version 2023-05-26 19:04:20 +10:00
Data-Monkey
a2f2bce3ab working docker version 2023-05-26 19:04:11 +10:00
Data-Monkey
ebcf6fa49b Merge branch 'split_it_up' of https://github.com/Data-Monkey/Pi.Alert into split_it_up 2023-05-25 19:51:11 +10:00
Data-Monkey
c14c762bde cleanup 2023-05-25 19:51:03 +10:00
Roland Beck
fd50ab7deb Create README.md 2023-05-25 13:53:08 +10:00
Data-Monkey
0db7521bee change to import conf 2023-05-24 22:34:09 +10:00
Data-Monkey
3adfa2c268 resolved cirqular imports 2023-05-23 21:18:44 +10:00
Data-Monkey
e27610a199 everything split out ut not tested 2023-05-22 22:05:54 +10:00
Data-Monkey
bd43a16975 everything split out not tested 2023-05-22 22:05:21 +10:00
jokob-sk
eb56126224 Merge pull request #235 from BanCrash/spanish
Update spanish strings by @BanCrash - thanks a lot!
2023-05-22 14:40:32 +10:00
BanCrash
7945fce65d Added new string 2023-05-21 16:21:18 +02:00
BanCrash
8a7ddfbb47 Added remaining spanish translations
Big thanks to @antoniog for giving me the file with all new english strings added!

Co-Authored-By: Antonio Caro <2288057+antoniog@users.noreply.github.com>
2023-05-21 16:03:11 +02:00
Data-Monkey
03163e424f more splitting done 2023-05-21 21:22:51 +10:00
Data-Monkey
d5b7023927 more splitting 2023-05-21 21:22:09 +10:00
Data-Monkey
884aca149a more splitting done 2023-05-21 17:40:05 +10:00
Data-Monkey
1836567f97 to keep up with jakob 2023-05-21 15:18:57 +10:00
Data-Monkey
78f71abd31 moved database out 2023-05-21 15:03:16 +10:00
Data-Monkey
0f63497847 split const and logger from main 2023-05-21 12:08:15 +10:00
Jokob-sk
8a1e472fed Established plugin_helper.py as best practice 2023-05-21 11:37:00 +10:00
Jokob-sk
3831b5a50a SUpport for unauthenticated SMTP #234 2023-05-21 11:04:03 +10:00
Jokob-sk
3756e1a327 re-add DB dir to gitignore 2023-05-21 10:58:12 +10:00
Jokob-sk
c9eb866acd add DB 2023-05-21 10:56:40 +10:00
jokob-sk
55530c05f9 Merge pull request #233 from Data-Monkey/undiscoverables_plugin
Un-Discoverable Devices Plugin by @Data-Monkey
2023-05-21 10:51:31 +10:00
Jokob-sk
422997be9b php errors log 2023-05-20 13:33:45 +10:00
Jokob-sk
13ff086412 Setting select presence statuses #221 2023-05-20 12:42:30 +10:00
Jokob-sk
298b5ac03e Attempt at fixing #228 2023-05-20 11:08:24 +10:00
Jokob-sk
e9af2efbd1 DOnt Awesome Pro docs 2023-05-20 10:56:01 +10:00
Roland Beck
4027970975 Update README.md
added some pictures
2023-05-18 17:57:48 +10:00
Data-Monkey
0ca7116167 Merge branches 'undiscoverables_plugin' and 'undiscoverables_plugin' of https://github.com/Data-Monkey/Pi.Alert into undiscoverables_plugin 2023-05-18 17:51:21 +10:00
Data-Monkey
1474cf424b code and documentation tidied up 2023-05-18 17:43:16 +10:00
Roland Beck
b763d75703 Merge branch 'jokob-sk:main' into undiscoverables_plugin 2023-05-17 22:33:32 +10:00
Data-Monkey
a0501d88ec working version of UnDIS plugin 2023-05-17 22:25:33 +10:00
Jokob-sk
f62d94ba61 database docs 0.1 2023-05-17 22:15:42 +10:00
Jokob-sk
e99d855284 database docs 0.1 2023-05-17 22:15:03 +10:00
Jokob-sk
31b78ff106 Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-05-17 22:09:31 +10:00
Jokob-sk
ae0c45a716 database docs 2023-05-17 22:09:03 +10:00
jokob-sk
0105844410 Merge pull request #231 from Data-Monkey/plugin_config_dir
get_plugin_config changed to top level folders - Thanks to @Data-Monkey 🙏
2023-05-17 21:08:06 +10:00
Data-Monkey
07e8395536 file path fixed 2023-05-17 13:45:21 +10:00
Data-Monkey
6c8fc093af update git ignore to ignore pycache 2023-05-17 13:05:50 +10:00
Data-Monkey
95a7dcc7fc undiscoverables initial version 2023-05-17 12:55:34 +10:00
Data-Monkey
c54156ca1e get_plugin_config changed to top level folders 2023-05-17 11:39:29 +10:00
Jokob-sk
941a8ef661 Version number to foorter #209 0.1 2023-05-13 14:14:54 +10:00
Jokob-sk
fc79ffc956 Version number to foorter #209 2023-05-13 14:09:19 +10:00
jokob-sk
8e86343942 Merge pull request #229 from jordantrizz/main
feat: Place buildnumber and version in footer. Thanks @jordantrizz !
2023-05-13 09:49:58 +10:00
Jordan Trask
bb87e65745 feat: Place buildnumber and version in footer. 2023-05-11 15:06:59 -04:00
jokob-sk
d1989acd5c Merge pull request #227 from Data-Monkey/patch-1
Update README.md
2023-05-10 20:56:09 +10:00
Roland Beck
e5bc4ad41b Update README.md
added statement about file format and example
2023-05-10 20:46:58 +10:00
jokob-sk
927bdc2f2b Merge pull request #226 from Final-Hawk/patch-1
Fix table mobile view thanks to @Final-Hawk 👍
2023-05-10 19:35:19 +10:00
Joshua
2ff57d8272 Fix table mobile view
Remove obsolete column changing for mobile. 

This is now handled by the column selector in the maintenance tab.
2023-05-10 12:05:40 +10:00
Jokob-sk
49baf4b613 Docs 2023-05-07 10:27:41 +10:00
Jokob-sk
a573fd9841 Docs README 2023-05-07 09:56:37 +10:00
Jokob-sk
e91b640bff Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-05-07 09:03:52 +10:00
Jokob-sk
8ee47e2fcc Versions docs 2023-05-07 09:03:27 +10:00
jokob-sk
092797e75c Merge pull request #220 from webysther/patch-1
Update DEVICE_MANAGEMENT.md
2023-05-06 08:07:56 +10:00
Webysther Sperandio
816a01f8af Update DEVICE_MANAGEMENT.md 2023-05-05 20:52:16 +02:00
Jokob-sk
3578bbfcad emty columns fixes 2023-05-05 22:42:11 +10:00
Jokob-sk
b4b15af887 FIX SNMDSCV, NMAPSRV, UNFIDSCR bugs 2023-05-05 21:21:01 +10:00
Jokob-sk
c74ef127d1 update only unknown vendors 2023-05-05 19:08:10 +10:00
Jokob-sk
90b3a491c7 Icons docs 2023-04-29 09:10:52 +10:00
jokob-sk
ad41d02eeb Update README.md 2023-04-14 04:31:04 +00:00
jokob-sk
19fe48c7ec Merge pull request #207 from macf0x/patch-1
Update README.md
2023-04-14 14:15:40 +10:00
Macfox
f3d05ca222 Update README.md 2023-04-14 00:33:39 +09:30
Jokob-sk
4aa1848ece Code cleanup 2023-04-13 22:30:27 +10:00
Jokob-sk
2176c58cb5 SNMPDSC plugin 0.4 2023-04-12 20:06:22 +10:00
Jokob-sk
2b95daa248 Fix MAC not passed - #205 2023-04-10 17:00:29 +10:00
Jokob-sk
e7c0bcf419 SNMPDSC plugin 0.3 2023-04-10 12:37:03 +10:00
Jokob-sk
063682510e SNMPDSC plugin 0.2 2023-04-10 12:27:10 +10:00
Jokob-sk
8542d05f66 SNMPDSC plugin 0.1 + PLUG README updates 2023-04-08 13:45:15 +10:00
Jokob-sk
42aa89971d Update README 2023-04-02 12:31:24 +10:00
Jokob-sk
abd607ea10 Update docker README 2023-04-02 10:52:27 +10:00
Jokob-sk
5936ba4626 Improve Plugins README 0.1 2023-04-02 10:22:22 +10:00
Jokob-sk
a6c2b9254b Fix ENABLE_PLUGINS bug discovered in #203 2023-04-02 09:50:50 +10:00
Jokob-sk
62669fd181 Fix empty Plugin header tabs 2023-04-02 09:37:16 +10:00
Jokob-sk
c8fcf6227e UNIFI import plugin 0.2 2023-04-01 22:11:14 +11:00
Jokob-sk
310b6de2cc UNIFI import plugin 0.1 2023-04-01 21:02:36 +11:00
Jokob-sk
306535a2a6 UNIFI import plugin 0.1 2023-04-01 21:01:16 +11:00
Jokob-sk
5944b1b6f5 expanded Plugins readme 0.1 2023-03-30 16:13:33 +11:00
Jokob-sk
6de9e1d4bd expanded Plugins readme 2023-03-30 15:58:16 +11:00
Jokob-sk
4bf6ab9c8c Possible fix for #202 2023-03-27 22:14:29 +11:00
Jokob-sk
1e93dfa35e Expanding on plugins in README 2023-03-27 22:04:14 +11:00
Jokob-sk
7f2567264c Support for mapping plun obj to DB table 2023-03-26 12:12:30 +11:00
Jokob-sk
d9a9246f1b Attempt at Fixing #199 & Rougue DHCP fix 2023-03-26 09:47:56 +11:00
Jokob-sk
aa8fb62f15 README update #200 2023-03-25 08:03:04 +11:00
Jokob-sk
6d5eeb88d3 dhcp.leases v0.1 2023-03-19 15:48:20 +11:00
Jokob-sk
ea1d710209 Merge branch 'main' of https://github.com/jokob-sk/Pi.Alert 2023-03-19 12:22:57 +11:00
Jokob-sk
032b787b66 Optimizing API updates #193 2023-03-19 12:22:25 +11:00
Jokob-sk
7024cd22de update vendors 2023-03-18 08:21:50 +11:00
jokob-sk
b9b66d5af1 Merge pull request #198 from pbek/patch-1
fix: remove trailing slash for REPORT_DASHBOARD_URL
2023-03-15 08:06:00 +00:00
Jokob-sk
b73a0d6347 Fix how to set pwd #196 2023-03-15 18:39:55 +11:00
Patrizio Bekerle
a0bc318ff9 fix: remove trailing slash for REPORT_DASHBOARD_URL 2023-03-15 08:29:08 +01:00
Jokob-sk
642e8464cd better widescreen support 2023-03-15 18:13:21 +11:00
Jokob-sk
63a9e55d4e Rougue DHCP plugin based on work of @leiweibau 2023-03-12 19:31:59 +11:00
Jokob-sk
a07c73155f Spanish strings - based on work of @mariorodriguezlopez 2023-03-12 11:03:10 +11:00
Jokob-sk
efbc32d3ed Vlan info & setting CSS tuning 2023-03-12 10:21:42 +11:00
Jokob-sk
83f50bd0d8 Vlan config sample 2023-03-12 10:11:39 +11:00
Jokob-sk
87cb0f50b5 Plugins - small screen optimization 2023-03-12 09:57:18 +11:00
Jokob-sk
73c779c238 Wake on Lan by @leiweibau 2023-03-12 09:33:47 +11:00
Jokob-sk
40615cf17a Setting to disable/enable plugins 2023-03-12 08:21:32 +11:00
Jokob-sk
6dd1448667 Fix #165 2023-03-12 07:32:35 +11:00
Jokob-sk
d8b4091043 Plugins 1 - Readme 2023-03-11 17:18:02 +11:00
Jokob-sk
7ea920efa9 Plugins 1 - Readme 2023-03-11 17:16:23 +11:00
Jokob-sk
7306dfbdd3 Plugins 1 - Readme 2023-03-11 17:14:22 +11:00
Jokob-sk
53c8c41133 Plugins 1 - Readme 2023-03-11 17:00:09 +11:00
Jokob-sk
395dfe5fe7 Plugins 1 - JSON UI / Settings mapping sample 2023-03-11 16:51:00 +11:00
Jokob-sk
2ec0074a45 Plugins 1 - Readme 2023-03-11 16:32:46 +11:00
Jokob-sk
93dce378ea Plugins 1 - Screen 2023-03-11 16:25:53 +11:00
Jokob-sk
df6fae7aa5 Plugins 1 - Screen 2023-03-11 16:24:59 +11:00
Jokob-sk
57e0705e64 Plugins 1 - Readme 2023-03-11 16:12:29 +11:00
Jokob-sk
f3b31479c4 Plugins 1 - Screenshot + fixes 2023-03-11 15:55:00 +11:00
Jokob-sk
b914be9f0e Plugins 1 - Screenshot + fixes 2023-03-11 15:49:20 +11:00
Jokob-sk
2d0a4b79d8 Plugins 0.4 - ForeignKey support added 2023-03-11 13:57:25 +11:00
Jokob-sk
d090b29c55 Plugins 0.4 - UI work + bugfixes 2023-03-11 08:33:43 +11:00
Jokob-sk
5a8be94cdc Plugins 0.4 - UI work + refactoring 2023-03-09 22:30:36 +11:00
Jokob-sk
176a436ad4 Removed pialert_pholus.log 2023-03-04 20:47:25 +11:00
Jokob-sk
1a05435691 Plugins 0.4 - Further UI work 2023-03-04 20:41:48 +11:00
Jokob-sk
49ce3edbdb Invalid JSON Debug readme 2023-03-04 09:11:27 +11:00
Jokob-sk
51df759e25 debug image 2023-02-28 09:56:13 +11:00
Jokob-sk
992aa00c3c Plugins 0.3 - UI fixes 0.1 2023-02-26 16:27:14 +11:00
Jokob-sk
d87d933058 Nmap fix - Results not written into DB 2023-02-26 15:40:38 +11:00
Jokob-sk
e0d639cba0 Plugins 0.3 - Readme 0.3 2023-02-26 13:06:08 +11:00
Jokob-sk
1cbbfb25cc Plugins 0.3 - Readme 0.2 2023-02-26 12:59:23 +11:00
Jokob-sk
f205e6f5c1 Plugins 0.3 - Readme 0.1 2023-02-26 12:53:04 +11:00
Jokob-sk
5e67ea22f5 Plugins 0.3 - Readme 2023-02-26 12:46:20 +11:00
Jokob-sk
99f522e625 Plugins 0.3 - SQL support, UI CSS tweks, Lang fixes 2023-02-26 12:28:15 +11:00
Jokob-sk
f04cd7e28b Plugins 0.3 - dbHelper & remove unnecessary API settings 2023-02-25 15:29:01 +11:00
Jokob-sk
3392a1f17c Fix logout #181 2023-02-25 13:24:24 +11:00
Jokob-sk
d0d9a1a65d Plugins 0.3 - SQL call fix and additional UI controls 2023-02-25 12:56:40 +11:00
Jokob-sk
16d04fe485 Plugins 0.3 - UI custom form controls 2023-02-25 09:31:29 +11:00
Jokob-sk
43d5c51e7c Plugins 0.2 - UI fixes 2023-02-20 20:45:18 +11:00
Jokob-sk
647013f3ff Plugins 0.2 - Readme 2023-02-19 13:12:08 +11:00
Jokob-sk
2ef631a440 Plugins 0.2 - Reports working + Report status setting 2023-02-19 13:08:41 +11:00
Jokob-sk
86315a245b Plugins 0.2 - Fixed issues detecting changes + added UserData column 2023-02-18 15:14:31 +11:00
Jokob-sk
b0ce1b87a9 Plugins 0.2 - Show objects in UI 2023-02-14 22:24:12 +11:00
Jokob-sk
541c16aea6 Fix #175 2023-02-14 18:11:02 +11:00
Jokob-sk
ee1a3fc683 Plugins 0.2 - Show unprocessed events in UI 2023-02-13 22:20:48 +11:00
Jokob-sk
b90edcccbd Plugins 0.1 - Readme update 0.3 2023-02-12 18:19:55 +11:00
Jokob-sk
4614b93780 Plugins 0.1 - Readme update 0.2 2023-02-12 17:58:17 +11:00
Jokob-sk
4f548803cb Plugins 0.1 - Readme update 0.1 2023-02-12 17:50:49 +11:00
Jokob-sk
d16dd95d65 Plugins 0.1 - Readme update 2023-02-12 17:45:49 +11:00
Jokob-sk
97f7494c34 Plugin UI 0.1 2023-02-12 17:03:04 +11:00
Jokob-sk
6179dabfa6 Fixed empty settings 2023-02-12 14:30:35 +11:00
Jokob-sk
05ca683f91 LOG_LEVEL added 2023-02-12 13:22:55 +11:00
Jokob-sk
170e61e73f Plugins 0.1 - List param working 2023-02-11 16:11:27 +11:00
Jokob-sk
33f0356ca7 Fix CSV import 0.1 #175 2023-02-10 20:51:56 +11:00
Jokob-sk
4b9117dcb4 Fix CSV import #175 2023-02-10 20:20:26 +11:00
Jokob-sk
ec274c90da Plugins 0.1 - Adding LIST setting 0.2 2023-02-09 21:06:38 +11:00
Jokob-sk
e7a1f013df Plugins 0.1 - Adding LIST setting 0.1 2023-02-08 23:49:53 +11:00
Jokob-sk
c287bc2f22 Plugins 0.1 - Multi-Execution support + Fix #177 2023-02-08 22:53:05 +11:00
Jokob-sk
5b8f8f2c5d Plugins 0.1 - ONCE execution support 2023-02-07 21:48:06 +11:00
Jokob-sk
887c2d0f42 Plugins 0.1 - ONCE execution support 2023-02-07 21:42:02 +11:00
Jokob-sk
06d7aa6623 Plugins 0.1 - Lang Strings in DB 2023-02-06 21:49:25 +11:00
Jokob-sk
5ed142a6b8 Plugins 0.1 - Surfaced setings 2023-02-05 16:35:25 +11:00
Jokob-sk
da9ca8a1f4 Plugins 0.1 - Website monitoring cleanup 2023-02-05 15:24:46 +11:00
Jokob-sk
1cb5375a92 Plugins 0.1 - Basic definition 2023-02-05 13:02:38 +11:00
jokob-sk
fd11cc30f5 Merge pull request #167 from jokob-sk/revert-161-main
Revert "Change in front"
2023-02-04 00:24:04 +00:00
jokob-sk
a1bfdc0f18 Revert "Change in front" 2023-02-04 11:20:25 +11:00
jokob-sk
e88362ce80 Merge pull request #161 from mariorodriguezlopez/main
Change in front
2023-02-04 00:04:24 +00:00
Jokob-sk
b5f0a64e7c Bugfix issues 165, 163 0.1 2023-02-04 10:40:21 +11:00
Jokob-sk
e3623420b0 Bugfix issues 165, 163 2023-02-04 10:38:57 +11:00
Mario Rodriguez
3344ed4b99 Changes front 2023-02-02 13:06:05 +01:00
Mario Rodriguez
b0c91f7804 Merge branch 'jokob-sk:main' into main 2023-02-02 12:56:53 +01:00
Mario Rodriguez
f1dc33761d Merge pull request #3 from jokob-sk/main
Sync from main
2023-02-01 07:48:39 +01:00
210 changed files with 22439 additions and 6346 deletions

View File

@@ -7,40 +7,40 @@ assignees: ''
---
**Describe the issue**
## Describe the issue
> When submitting an issue ❗[enable debug](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/DEBUG_TIPS.md)❗ and [have a look at the docs](https://github.com/jokob-sk/Pi.Alert/tree/main/docs)
**Paste last few lines from `pialert.log`**
[describe your issue]
## Paste your `pialert.conf` (remove personal info)
```
paste here
paste_here
```
**Paste your `pialert.conf` (remove personal info)**
```
paste here
```
**Paste your `docker-compose.yml` and `.env` (remove personal info)**
## Paste your `docker-compose.yml` and `.env` (remove personal info)
`docker-compose.yml`
```
paste here
```
paste_here
```
`.env`
```
paste here
```
**Screenshots**
If applicable, add screenshots to help explain your problem.
paste_here
```
## Screenshots
[If applicable, add screenshots to help explain your problem.]
## Paste last few lines from `pialert.log`
> You can use `tail -100 /home/pi/pialert/front/log/pialert.log`
```bash
# paste code below

25
.github/workflows/docker_cache-cleaner.yml vendored Executable file
View File

@@ -0,0 +1,25 @@
name: ci-package-cleaner
on:
workflow_dispatch: # manual option
schedule:
- cron: '15 22 * * 1' # every Monday 10.15pm UTC (~11.15am Tuesday NZT)
jobs:
package-cleaner:
name: package-cleaner
runs-on: ubuntu-latest
timeout-minutes: 5
permissions:
packages: write
steps:
- uses: actions/delete-package-versions@v4
with:
package-name: pi.alert
package-type: container
min-versions-to-keep: 0
delete-only-untagged-versions: true

View File

@@ -14,7 +14,13 @@ on:
jobs:
docker_dev:
runs-on: ubuntu-latest
if: contains(github.event.head_commit.message, 'PUSHPROD') != 'True'
timeout-minutes: 30
permissions:
contents: read
packages: write
if: >
contains(github.event.head_commit.message, 'PUSHPROD') != 'True' &&
github.repository == 'jokob-sk/Pi.Alert'
steps:
- name: Checkout
uses: actions/checkout@v3
@@ -26,9 +32,16 @@ jobs:
uses: docker/setup-buildx-action@v2
- name: Set up dynamic build ARGs
id: getargs
id: getargs
run: echo "version=$(cat ./stable/VERSION)" >> $GITHUB_OUTPUT
- name: Get release version
id: get_version
run: echo "::set-output name=version::${{ 'Dev' }}"
- name: Create .VERSION file
run: echo "${{ steps.get_version.outputs.version }}" >> .VERSION
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
@@ -47,6 +60,13 @@ jobs:
type=semver,pattern={{major}}
type=sha
- name: Log in to Github Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: jokob-sk
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
@@ -62,3 +82,5 @@ jobs:
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=registry,ref=ghcr.io/jokob-sk/pi.alert:buildcache
cache-to: type=registry,ref=ghcr.io/jokob-sk/pi.alert:buildcache,mode=max

View File

@@ -12,10 +12,15 @@ name: Publish Docker image
on:
release:
types: [published]
tags:
- '*.*.*'
jobs:
docker:
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
packages: write
steps:
- name: Checkout
uses: actions/checkout@v3
@@ -30,6 +35,13 @@ jobs:
id: getargs
run: echo "version=$(cat ./stable/VERSION)" >> $GITHUB_OUTPUT
- name: Get release version
id: get_version
run: echo "::set-output name=version::${GITHUB_REF#refs/tags/}"
- name: Create .VERSION file
run: echo "${{ steps.get_version.outputs.version }}" >> .VERSION
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
@@ -39,14 +51,20 @@ jobs:
jokobsk/pi.alert
# generate Docker tags based on the following events/attributes
tags: |
type=raw,value=latest
type=schedule
type=ref,event=branch
type=semver,pattern={{version}},value=${{ inputs.version }}
type=semver,pattern={{major}}.{{minor}},value=${{ inputs.version }}
type=semver,pattern={{major}},value=${{ inputs.version }}
type=ref,event=branch,suffix=-{{ sha }}
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
type=raw,value=latest,enable=${{ github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/') }}
- name: Log in to Github Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: jokob-sk
password: ${{ secrets.GITHUB_TOKEN }}
- name: Login to DockerHub
if: github.event_name != 'pull_request'
uses: docker/login-action@v2
@@ -62,3 +80,5 @@ jobs:
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=registry,ref=ghcr.io/jokob-sk/pi.alert:buildcache
cache-to: type=registry,ref=ghcr.io/jokob-sk/pi.alert:buildcache,mode=max

9
.gitignore vendored
View File

@@ -2,7 +2,16 @@
.DS_Store
config/pialert.conf
db/*
db/pialert.db
front/log/*
front/api/*
**/plugins/**/*.log
**/%40eaDir/
**/@eaDir/
__pycache__/
*.py[cod]
*$py.class
**/last_result.log
**/script.log

View File

@@ -1,14 +1,15 @@
FROM debian:bullseye-slim
# default UID and GID
ENV USER=pi USER_ID=1000 USER_GID=1000 TZ=Europe/London PORT=20211
ENV USER=pi USER_ID=1000 USER_GID=1000 PORT=20211
#TZ=Europe/London
# Todo, figure out why using a workdir instead of full paths don't work
# Todo, do we still need all these packages? I can already see sudo which isn't needed
RUN apt-get update \
&& apt-get install --no-install-recommends tini ca-certificates curl libwww-perl arp-scan perl apt-utils cron sudo nginx-light php php-cgi php-fpm php-sqlite3 php-curl sqlite3 dnsutils net-tools python3 iproute2 nmap python3-pip zip -y \
&& pip3 install requests paho-mqtt scapy cron-converter pytz json2table \
&& apt-get install --no-install-recommends tini snmp ca-certificates curl libwww-perl arp-scan perl apt-utils cron sudo nginx-light php php-cgi php-fpm php-sqlite3 php-curl sqlite3 dnsutils net-tools python3 iproute2 nmap python3-pip zip systemctl usbutils traceroute -y \
&& pip3 install requests paho-mqtt scapy cron-converter pytz json2table dhcp-leases pyunifi \
&& update-alternatives --install /usr/bin/python python /usr/bin/python3 10 \
&& apt-get clean autoclean \
&& apt-get autoremove \
@@ -46,3 +47,8 @@ RUN rm /etc/nginx/sites-available/default \
ENTRYPOINT ["tini", "--"]
CMD ["/home/pi/pialert/dockerfiles/start.sh"]
## command to build docker: DOCKER_BUILDKIT=1 docker build . --iidfile dockerID

116
README.md
View File

@@ -7,7 +7,6 @@ Scans for devices connected to your WIFI / LAN and alerts you if new and unknown
![Main screen][main]
# 🐳 Docker image
[![Docker](https://img.shields.io/github/actions/workflow/status/jokob-sk/Pi.Alert/docker_prod.yml?label=Build&logo=GitHub)](https://github.com/jokob-sk/Pi.Alert/actions/workflows/docker_prod.yml)
[![GitHub Committed](https://img.shields.io/github/last-commit/jokob-sk/Pi.Alert?color=40ba12&label=Committed&logo=GitHub&logoColor=fff)](https://github.com/jokob-sk/Pi.Alert)
@@ -15,83 +14,66 @@ Scans for devices connected to your WIFI / LAN and alerts you if new and unknown
[![Docker Pulls](https://img.shields.io/docker/pulls/jokobsk/pi.alert?label=Pulls&logo=docker&color=0aa8d2&logoColor=fff)](https://hub.docker.com/r/jokobsk/pi.alert)
[![Docker Pushed](https://img.shields.io/badge/dynamic/json?color=0aa8d2&logoColor=fff&label=Pushed&query=last_updated&url=https%3A%2F%2Fhub.docker.com%2Fv2%2Frepositories%2Fjokobsk%2Fpi.alert%2F&logo=docker&link=http://left&link=https://hub.docker.com/repository/docker/jokobsk/pi.alert)](https://hub.docker.com/r/jokobsk/pi.alert)
🐳 [Docker hub](https://registry.hub.docker.com/r/jokobsk/pi.alert) | 📄 [Dockerfile](https://github.com/jokob-sk/Pi.Alert/blob/main/Dockerfile) | 📚 [Docker instructions](https://github.com/jokob-sk/Pi.Alert/blob/main//dockerfiles/README.md) | 🆕 [Release notes](https://github.com/jokob-sk/Pi.Alert/releases)
🐳 [Docker hub](https://registry.hub.docker.com/r/jokobsk/pi.alert) | 📑 [Docker guide](https://github.com/jokob-sk/Pi.Alert/blob/main/dockerfiles/README.md) | 🆕 [Release notes](https://github.com/jokob-sk/Pi.Alert/releases) | 📚 [All Docs](https://github.com/jokob-sk/Pi.Alert/tree/main/docs)
## 🔍 Scan Methods
The system continuously scans the network for, **New devices**, **New connections** (re-connections), **Disconnections**, **"Always Connected" devices down**, Devices **IP changes** and **Internet IP address changes**. Scanning methods are:
- **Method 1: arp-scan**. The arp-scan system utility is used to search
for devices on the network using arp frames.
- **Method 2: Pi-hole**. This method is optional and complementary to
method 1. If the Pi-hole DNS server is active, Pi.Alert examines its
activity looking for active devices using DNS that have not been
detected by method 1.
- **Method 3. dnsmasq**. This method is optional and complementary to the
previous methods. If the DHCP server dnsmasq is active, Pi.Alert
examines the DHCP leases (addresses assigned) to find active devices
that were not discovered by the other methods.
The system continuously scans the network for, **New devices**, **New connections** (re-connections), **Disconnections**, **"Always Connected" devices down**, Devices **IP changes** and **Internet IP address changes**. Discovery & scan methods include:
- **arp-scan**. The arp-scan system utility is used to search for devices on the network using arp frames.
- **Pi-hole - DB import**. The PiHole database is used as a source for events for devices
- **Pi-hole - DHCP leases**. Import of devices from the PiHole dhcp.leases file
- **Generic DHCP leases**. Import of devices from the generic dhcp.leases file
- **UNIFI import**. Import of devices from the UNIFI controller
- **SNMP-enabled router import**. Import of devices from an SNMP-enabled router
## 🧩 Integrations
- [Apprise](https://hub.docker.com/r/caronc/apprise), [Pushsafer](https://www.pushsafer.com/), [NTFY](https://ntfy.sh/)
- [Webhooks](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/WEBHOOK_N8N.md) ([sample JSON](docs/webhook_json_sample.json))
- Home Assistant via [MQTT](https://www.home-assistant.io/integrations/mqtt/)
- discovery ~10s per device, deleting not supported, use [MQTT Explorer](https://mqtt-explorer.com/) for now
- A simple [API endpoint](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/API.md)
## 🔐 Security
- Configurable login to prevent unauthorized use.
## 📑 Features
- Display:
- Sessions, Connected devices, Favorites, Events, Presence, Concurrent devices, Down alerts, IP's
- Manual Nmap scans, Optional speedtest for Device "Internet"
- Simple Network relationship display
- Maintenance tasks and Settings like:
- Status Infos (active scans, database size, backup counter)
- Theme Selection (blue, red, green, yellow, black, purple) and Light/Dark-Mode Switch
- Language Selection (English, German, Spanish)
- Pause arp-scan
- DB maintenance, Backup, Restore tools and CSV Export / Import
- Help/FAQ Section
| ![Screen 1][screen1] | ![Screen 2][screen2] |
|----------------------|----------------------|
| ![Screen 3][screen3] | ![Screen 4][screen4] |
| ![Screen 5][screen5] | ![Screen 6][screen6] |
| ![Report 1][report1] | ![Report 2][report2] |
- [Webhooks](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/WEBHOOK_N8N.md)
- [Home Assistant](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/HOME_ASSISTANT.md)
- [API endpoint](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/API.md)
- [Plugin system](https://github.com/jokob-sk/Pi.Alert/tree/main/front/plugins) for custom scripts monitoring and framework for extending the app
# 📥 Installation
<!--- --------------------------------------------------------------------- --->
This [fork (jokob-sk)](https://github.com/jokob-sk/Pi.Alert) is only tested as a [docker container](dockerfiles/README.md). Check out [leiweibau's fork](https://github.com/leiweibau/Pi.Alert/) if you want to install Pi.Alert on the server directly.
Only tested as a [docker container - follow the guide here](dockerfiles/README.md).
> Check out [leiweibau's fork](https://github.com/leiweibau/Pi.Alert/) if you want to install Pi.Alert on the server directly or check instructions for [pucherot's original code](https://github.com/pucherot/Pi.Alert/)
Instructions for [pucherot's original code can be found here](https://github.com/pucherot/Pi.Alert/)
# 📑 Features
- Display:
- Sessions, Connected devices, Favorites, Events, Presence, Concurrent devices, Down alerts, IP's
- Manual Nmap scans, Optional speedtest for Device "Internet"
- Simple Network relationship display
- Maintenance tasks and Settings like:
- Theme Selection (blue, red, green, yellow, black, purple) and Light/Dark-Mode Switch
- DB maintenance, Backup, Restore tools and CSV Export / Import
- Simple login Support
- 🌟[Plugin system](https://github.com/jokob-sk/Pi.Alert/tree/main/front/plugins)
- Create custom plugins with automatically generated settings and UI.
- Monitor anything for changes
- Check the [instructions](https://github.com/jokob-sk/Pi.Alert/tree/main/front/plugins) carefully if you are up for a challenge! Current plugins include:
- Detecting Rogue DHCP servers via NMAP
- Monitoring HTTP status changes of domains/URLs
- Import devices from DHCP.leases files, a UniFi controller, or an SNMP enabled router
- Creation of dummy devices to visualize your [network map](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/NETWORK_TREE.md)
| ![Screen 1][screen1] | ![Screen 2][screen2] | ![Screen 5][screen5] |
|----------------------|----------------------| ----------------------|
| ![Screen 3][screen3] | ![Screen 4][screen4] | ![Screen 6][screen6] |
| ![Screen 8][screen8] | ![Report 2][report2] | ![Screen 9][screen9] |
## 🔗 Other
<!--- --------------------------------------------------------------------- --->
<!--- --------------------------------------------------------------------- --->
### Alternatives
### 🔗 Other Alternatives
- [WatchYourLAN](https://github.com/aceberg/WatchYourLAN) - Lightweight network IP scanner with web GUI (Open source)
- [Fing](https://www.fing.com/) - Network scanner app for your Internet security (Commercial, Phone App, Proprietary hardware)
### Old docs
### 📚 Documentation
- [Device Management instructions](docs/DEVICE_MANAGEMENT.md)
- [Versions History](docs/VERSIONS_HISTORY.md)
- Initial Docker Setup: [Docker instructions](https://github.com/jokob-sk/Pi.Alert/blob/main/dockerfiles/README.md)
- App Usage and Configuration: [All Documentation](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/README.md)
### License
GPL 3.0
- [Read more here](LICENSE.txt)
- Source of the [animated GIF (Loading Animation)](https://commons.wikimedia.org/wiki/File:Loading_Animation.gif)
- Source of the [selfhosted Fonts](https://github.com/adobe-fonts/source-sans)
GPL 3.0 | [Read more here](LICENSE.txt) | Source of the [animated GIF (Loading Animation)](https://commons.wikimedia.org/wiki/File:Loading_Animation.gif) | Source of the [selfhosted Fonts](https://github.com/adobe-fonts/source-sans)
### 🥇 Special thanks
@@ -102,8 +84,16 @@ Instructions for [pucherot's original code can be found here](https://github.com
- [Macleykun](https://github.com/Macleykun): Help with Dockerfile clean-up
- [Final-Hawk](https://github.com/Final-Hawk): Help with NTFY, styling and other fixes
- [TeroRERO](https://github.com/terorero): Spanish translation
- [jokob-sk](https://github.com/jokob-sk/Pi.Alert): DB Maintenance tools
- Please see the [Git commit history](https://github.com/jokob-sk/Pi.Alert/commits/main) for a full list of people and their contributions to the project
- [Data-Monkey](https://github.com/Data-Monkey): Split-up of the python.py file and more
- Please see the [Git contributors](https://github.com/jokob-sk/Pi.Alert/graphs/contributors) for a full list of people and their contributions to the project
## ☕ Support me
<a href="https://github.com/sponsors/jokob-sk" target="_blank"><img src="https://i.imgur.com/X6p5ACK.png" alt="Sponsor Me on GitHub" style="height: 30px !important;width: 117px !important;" width="150px" ></a>
<a href="https://www.buymeacoffee.com/jokobsk" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 30px !important;width: 117px !important;" width="117px" height="30px" ></a>
<a href="https://www.patreon.com/user?u=84385063" target="_blank"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Patreon_logo_with_wordmark.svg/512px-Patreon_logo_with_wordmark.svg.png" alt="Support me on patreon" style="height: 30px !important;width: 117px !important;" width="117px" ></a>
BTC: 1N8tupjeCK12qRVU2XrV17WvKK7LCawyZM
<!--- --------------------------------------------------------------------- --->
[main]: ./docs/img/devices_split.png "Main screen"
@@ -113,7 +103,9 @@ Instructions for [pucherot's original code can be found here](https://github.com
[screen4]: ./docs/img/maintenance.png "Screen 4"
[screen5]: ./docs/img/network.png "Screen 5"
[screen6]: ./docs/img/settings.png "Screen 6"
[screen7]: ./docs/img/help_faq.png "Screen 6"
[screen7]: ./docs/img/help_faq.png "Screen 7"
[screen8]: ./docs/img/plugins_rogue_dhcp.png "Screen 8"
[screen9]: ./docs/img/device_nmap.png "Screen 9"
[report1]: ./docs/img/4_report_1.jpg "Report sample 1"
[report2]: ./docs/img/4_report_2.jpg "Report sample 2"
[main_dark]: /docs/img/1_devices_dark.jpg "Main screen dark"

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@
#
# repot_template.html - Back module. Template to email reporting in HTML format
#-------------------------------------------------------------------------------
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3
# Puche 2021 GNU GPLv3
#--------------------------------------------------------------------------- -->
<html>
<head></head>
@@ -12,7 +12,7 @@
<font face=sans-serif>
<table align=center width=100% cellpadding=0 cellspacing=0 style="border-radius: 5px;">
<tr>
<td bgcolor=#EFB956 align=center style="padding: 20px 10px 10px 10px; font-size: 30px; font-weight: bold; color:#000000; border-top-right-radius: 5px; border-top-left-radius: 5px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2)">
<td bgcolor=#3c8dbc align=center style="padding: 20px 10px 10px 10px; font-size: 30px; font-weight: bold; color:#ffffff; border-top-right-radius: 5px; border-top-left-radius: 5px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2)">
Pi.Alert Report
</td>
</tr>
@@ -23,7 +23,7 @@
</tr>
<tr>
<td>
<table width=100% border=0 bgcolor=#FFD966 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 15px; text-align:center; color:#404040">
<table width=100% border=0 bgcolor=#00c0ef cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 15px; text-align:center; color:#404040">
<tr>
<td width=100%> Report Date: <b>2023-01-30 22:17</b> </td>
</tr>

View File

@@ -1,11 +1,16 @@
<!-- ---------------------------------------------------------------------------
# Pi.Alert
# Open Source Network Guard / WIFI & LAN intrusion detector
#
# repot_template.html - Back module. Template to email reporting in HTML format
#-------------------------------------------------------------------------------
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3
#--------------------------------------------------------------------------- -->
<!--
#---------------------------------------------------------------------------------#
# Pi.Alert #
# Open Source Network Guard / WIFI & LAN intrusion detector #
# #
# report_template.html - Back module. Template to email reporting in HTML format #
#---------------------------------------------------------------------------------#
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3 #
# jokob-sk 2022 jokob.sk@gmail.com GNU GPLv3 #
# leiweibau 2022 https://github.com/leiweibau GNU GPLv3 #
# cvc90 2023 https://github.com/cvc90 GNU GPLv3 #
#---------------------------------------------------------------------------------#
-->
<html>
@@ -16,40 +21,45 @@
<font face=sans-serif>
<table align=center width=100% cellpadding=0 cellspacing=0 style="border-radius: 5px;">
<tr>
<td bgcolor=#EFB956 align=center style="padding: 20px 10px 10px 10px; font-size: 30px; font-weight: bold; color:#000000; border-top-right-radius: 5px; border-top-left-radius: 5px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2)">
<td bgcolor=#3c8dbc align=center style="padding: 20px 10px 10px 10px; font-size: 30px; font-weight: bold; color:#ffffff; border-top-right-radius: 5px; border-top-left-radius: 5px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2)">
Pi.Alert Report
</td>
</tr>
<tr>
<td>
<table width=100% border=0 bgcolor=#FFD966 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 15px; text-align:center; color:#404040"> <tr>
<td width=100%> Report Date: <b><REPORT_DATE></b> </td>
<table width=100% border=0 bgcolor=#4b99d3 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 15px; text-align:center; color:#ffffff"> <tr>
<td width=100% bgcolor="#3c8dbc"> Report Date: <b><REPORT_DATE></b> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td bgcolor=#F5F5F5 height=200 valign=top style="padding: 10px">
<td height=200 valign=top style="padding: 10px">
<INTERNET_TABLE>
<NEW_DEVICES_TABLE>
<DOWN_DEVICES_TABLE>
<EVENTS_TABLE>
<PORTS_TABLE>
<NEW_DEVICES_TABLE>
<DOWN_DEVICES_TABLE>
<EVENTS_TABLE>
<PLUGINS_TABLE>
</td>
</tr>
<tr>
<td>
<table width=100% bgcolor=#46802e cellpadding=5px cellspacing=0 style="font-size: 13px; font-weight: bold; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px;">
<table width=100% bgcolor=#3c8dbc cellpadding=5px cellspacing=0 style="font-size: 13px; font-weight: bold; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px;">
<tr>
<td width=50% style="text-align:center"> Pi.Alert - <SERVER_NAME></td>
<td width=50% style="text-align:center;color: white;" bgcolor="#3c8dbc">
<a href="https://github.com/jokob-sk/Pi.Alert" target="_blank" style="color: white">Pi.Alert</a>
<a href=".." target="_blank" style="color: white"> (<SERVER_NAME>)</a>
<br><span style="display:inline-block;color: white; transform: rotate(180deg)">&copy;</span>2020 Puche (2022+
<a style="color: white" href="mailto:jokob@duck.com?subject=PiAlert">jokob-sk</a>) | <b>Built on: <BUILD_PIALERT> </b> | <b> Version: <VERSION_PIALERT> </b> |
<a href="https://github.com/jokob-sk/Pi.Alert/tree/main/docs" target="_blank" style="color: white">
<span>Docs <i class="fa fa-circle-question"></i>
</a><span>
</td>
</tr>
</table>
</td>
@@ -57,4 +67,4 @@
</table>
</font>
</body>
</html>
</html>

View File

@@ -5,4 +5,4 @@ Server: <SERVER_NAME>
<SECTION_DEVICES_DOWN>
<SECTION_EVENTS>
<SECTION_INTERNET>
<PORTS_TABLE>
<PLUGINS_TABLE>

View File

@@ -1,11 +1,16 @@
<!-- ---------------------------------------------------------------------------
# Pi.Alert
# Open Source Network Guard / WIFI & LAN intrusion detector
#
# repot_template.html - Back module. Template to email reporting in HTML format
#-------------------------------------------------------------------------------
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3
#--------------------------------------------------------------------------- -->
<!--
#---------------------------------------------------------------------------------#
# Pi.Alert #
# Open Source Network Guard / WIFI & LAN intrusion detector #
# #
# report_template_new_version - Back module. Template to email reporting in text #
#---------------------------------------------------------------------------------#
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3 #
# jokob-sk 2022 jokob.sk@gmail.com GNU GPLv3 #
# leiweibau 2022 https://github.com/leiweibau GNU GPLv3 #
# cvc90 2023 https://github.com/cvc90 GNU GPLv3 #
#---------------------------------------------------------------------------------#
-->
<html>
@@ -16,7 +21,7 @@
<font face=sans-serif>
<table align=center width=100% cellpadding=0 cellspacing=0 style="border-radius: 5px;">
<tr>
<td bgcolor=#EFB956 align=center style="padding: 20px 10px 10px 10px; font-size: 30px; font-weight: bold; color:#000000; border-top-right-radius: 5px; border-top-left-radius: 5px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2)">
<td bgcolor=#3c8dbc align=center style="padding: 20px 10px 10px 10px; font-size: 30px; font-weight: bold; color:#ffffff; border-top-right-radius: 5px; border-top-left-radius: 5px; box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2)">
Pi.Alert Report
</td>
</tr>
@@ -25,40 +30,46 @@
<a style="color:#ffffff;cursor:pointer;" href="https://github.com/jokob-sk/Pi.Alert/releases">🆕 New version available 🆕</a>
</td>
</tr>
<tr>
<td>
<table width=100% border=0 bgcolor=#FFD966 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 15px; text-align:center; color:#404040"> <tr>
<td width=100%> Report Date: <b><REPORT_DATE></b> </td>
<table width=100% border=0 bgcolor=#4b99d3 cellpadding=5px cellspacing=0 style="border-collapse: collapse; font-size: 15px; text-align:center; color:#ffffff"> <tr>
<td width=100% bgcolor="#3c8dbc"> Report Date: <b><REPORT_DATE></b> </td>
</tr>
</table>
</td>
</tr>
<tr>
<td bgcolor=#F5F5F5 height=200 valign=top style="padding: 10px">
<INTERNET_TABLE>
<NEW_DEVICES_TABLE>
<DOWN_DEVICES_TABLE>
<EVENTS_TABLE>
<PORTS_TABLE>
<td height=200 valign=top style="padding: 10px">
<INTERNET_TABLE>
<NEW_DEVICES_TABLE>
<DOWN_DEVICES_TABLE>
<EVENTS_TABLE>
<PLUGINS_TABLE>
</td>
</tr>
<tr>
<td>
<table width=100% bgcolor=#46802e cellpadding=5px cellspacing=0 style="font-size: 13px; font-weight: bold; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px;">
<table width=100% bgcolor=#3c8dbc cellpadding=5px cellspacing=0 style="font-size: 13px; font-weight: bold; border-bottom-left-radius: 5px; border-bottom-right-radius: 5px;">
<tr>
<td width=50% style="text-align:center"> Pi.Alert - <SERVER_NAME></td>
<td width=50% style="text-align:center;color: white;" bgcolor="#3c8dbc">
<a href="https://github.com/jokob-sk/Pi.Alert" target="_blank" style="color: white">Pi.Alert</a>
<a href=".." target="_blank" style="color: white"> (<SERVER_NAME>)</a>
<br><span style="display:inline-block;color: white; transform: rotate(180deg)">&copy;</span>2020 Puche (2022+
<a style="color: white" href="mailto:jokob@duck.com?subject=PiAlert">jokob-sk</a>) | <b>Built on: <BUILD_PIALERT> </b> | <b> Version: <VERSION_PIALERT> </b> |
<a href="https://github.com/jokob-sk/Pi.Alert/tree/main/docs" target="_blank" style="color: white">
<span>Docs <i class="fa fa-circle-question"></i>
</a><span>
</td>
</tr>
</table>
</td>
</tr>
</table>
</font>
</body>
</html>
</html>

View File

@@ -26,16 +26,16 @@ sudo cp *.csv 2_backup
echo ""
echo Download Start
echo ""
sudo curl $1 -O https://standards-oui.ieee.org/iab/iab.csv \
-O https://standards-oui.ieee.org/iab/iab.txt \
-O https://standards-oui.ieee.org/oui28/mam.csv \
-O https://standards-oui.ieee.org/iab/iab.txt \
-O https://standards-oui.ieee.org/oui28/mam.csv \
-O https://standards-oui.ieee.org/oui28/mam.txt \
-O https://standards-oui.ieee.org/oui36/oui36.csv \
-O https://standards-oui.ieee.org/oui36/oui36.txt \
-O https://standards-oui.ieee.org/oui/oui.csv \
-O https://standards-oui.ieee.org/oui/oui.txt
sudo curl $1 -LO https://standards-oui.ieee.org/iab/iab.csv \
-LO https://standards-oui.ieee.org/iab/iab.txt \
-LO https://standards-oui.ieee.org/oui28/mam.csv \
-LO https://standards-oui.ieee.org/iab/iab.txt \
-LO https://standards-oui.ieee.org/oui28/mam.csv \
-LO https://standards-oui.ieee.org/oui28/mam.txt \
-LO https://standards-oui.ieee.org/oui36/oui36.csv \
-LO https://standards-oui.ieee.org/oui36/oui36.txt \
-LO https://standards-oui.ieee.org/oui/oui.csv \
-LO https://standards-oui.ieee.org/oui/oui.txt
echo ""
echo Download Finished

View File

@@ -23,7 +23,8 @@ PIALERT_WEB_PASSWORD='8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923a
INCLUDED_SECTIONS=['internet','new_devices','down_devices','events']
SCAN_CYCLE_MINUTES=5
DAYS_TO_KEEP_EVENTS=90
REPORT_DASHBOARD_URL='http://pi.alert/'
# Used for generating links in emails. Make sure not to add a trailing slash!
REPORT_DASHBOARD_URL='http://pi.alert'
# Email

View File

@@ -2,36 +2,58 @@ version: "3"
services:
pialert:
privileged: true
build: .
build:
dockerfile: Dockerfile
context: .
cache_from:
- type=registry,ref=docker.io/jokob-sk/pi.alert:buildcache
container_name: pialert
network_mode: "host"
restart: unless-stopped
network_mode: host
# restart: unless-stopped
volumes:
- ${APP_DATA_LOCATION}/pialert/config2:/home/pi/pialert/config
# - ${APP_DATA_LOCATION}/pialert/db/pialert.db:/home/pi/pialert/db/pialert.db
- ${APP_DATA_LOCATION}/pialert/db2:/home/pi/pialert/db
- ${APP_DATA_LOCATION}/pialert_dev/config:/home/pi/pialert/config
# - ${APP_DATA_LOCATION}/pialert/config:/home/pi/pialert/config
- ${APP_DATA_LOCATION}/pialert_dev/db:/home/pi/pialert/db
# - ${APP_DATA_LOCATION}/pialert/db:/home/pi/pialert/db
# (optional) useful for debugging if you have issues setting up the container
- ${LOGS_LOCATION}:/home/pi/pialert/front/log
# ---------------------------------------------------------------------------
# DELETE START anyone trying to use this file: comment out / delete BELOW lines, they are only for development purposes
- ${DEV_LOCATION}/back/pialert.py:/home/pi/pialert/back/pialert.py
- ${DEV_LOCATION}/pholus:/home/pi/pialert/pholus
- ${APP_DATA_LOCATION}/pialert/dhcp_samples/dhcp1.leases:/mnt/dhcp1.leases
- ${APP_DATA_LOCATION}/pialert/dhcp_samples/dhcp2.leases:/mnt/dhcp2.leases
- ${APP_DATA_LOCATION}/pialert/dhcp_samples/pihole_dhcp_full.leases:/etc/pihole/dhcp.leases
- ${APP_DATA_LOCATION}/pihole/etc-pihole/pihole-FTL.db:/etc/pihole/pihole-FTL.db
- ${DEV_LOCATION}/pialert:/home/pi/pialert/pialert
- ${DEV_LOCATION}/back/report_template.html:/home/pi/pialert/back/report_template.html
- ${DEV_LOCATION}/back/report_template_new_version.html:/home/pi/pialert/back/report_template_new_version.html
- ${DEV_LOCATION}/back/report_template.txt:/home/pi/pialert/back/report_template.txt
- ${DEV_LOCATION}/dockerfiles:/home/pi/pialert/dockerfiles
- ${APP_DATA_LOCATION}/pialert/php.ini:/etc/php/7.4/fpm/php.ini
- ${DEV_LOCATION}/front/api:/home/pi/pialert/front/api
# - ${DEV_LOCATION}/front/api:/home/pi/pialert/front/api
- ${DEV_LOCATION}/front/css:/home/pi/pialert/front/css
- ${DEV_LOCATION}/front/lib/AdminLTE:/home/pi/pialert/front/lib/AdminLTE
- ${DEV_LOCATION}/front/js:/home/pi/pialert/front/js
- ${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/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/flows.php:/home/pi/pialert/front/flows.php
- ${DEV_LOCATION}/front/donations.php:/home/pi/pialert/front/donations.php
- ${DEV_LOCATION}/front/plugins:/home/pi/pialert/front/plugins
# DELETE END anyone trying to use this file: comment out / delete ABOVE lines, they are only for development purposes
# ---------------------------------------------------------------------------
environment:
- TZ=${TZ}
- PORT=${PORT}

View File

@@ -6,7 +6,7 @@
# 🐳 A docker image for Pi.Alert
🐳 [Docker hub](https://registry.hub.docker.com/r/jokobsk/pi.alert) | 📄 [Dockerfile](https://github.com/jokob-sk/Pi.Alert/blob/main/Dockerfile) | 📚 [Docker instructions](https://github.com/jokob-sk/Pi.Alert/blob/main//dockerfiles/README.md) | 🆕 [Release notes](https://github.com/jokob-sk/Pi.Alert/releases)
🐳 [Docker hub](https://registry.hub.docker.com/r/jokobsk/pi.alert) | 📑 [Docker instructions](https://github.com/jokob-sk/Pi.Alert/blob/main/dockerfiles/README.md) | 🆕 [Release notes](https://github.com/jokob-sk/Pi.Alert/releases) | 📚 [All Docs](https://github.com/jokob-sk/Pi.Alert/tree/main/docs)
<a href="https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/devices_split.png" target="_blank">
<img src="https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/devices_split.png" width="300px" />
@@ -47,43 +47,45 @@ docker run -d --rm --network=host \
| **Required** | `:/home/pi/pialert/db` | Folder which will contain the `pialert.db` file |
|Optional| `:/home/pi/pialert/front/log` | Logs folder useful for debugging if you have issues setting up the container |
|Optional| `:/etc/pihole/pihole-FTL.db` | PiHole's `pihole-FTL.db` database file. Required if you want to use PiHole |
|Optional| `:/etc/pihole/dhcp.leases` | PiHole's `dhcp.leases` file. Required if you want to use PiHole |
|Optional| `:/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`)|
|Optional| `:/home/pi/pialert/front/api` | A simple [API endpoint](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/API.md) containing static (but regularly updated) json and other files. |
|Optional| `:/home/pi/pialert/front/plugins/<plugin>/ignore_plugin` | Map a file `ignore_plugin` to ignore a plugin. Plugins can be soft-disabled via settings. More in the [Plugin docs](/front/plugins/README.md). |
### Config (`pialert.conf`)
- Modify [pialert.conf](https://github.com/jokob-sk/Pi.Alert/tree/main/config) or manage the configuration via Settings.
- ❗ Set the `SCAN_SUBNETS` variable.
* The adapter will probably be `eth0` or `eth1`. (Run `iwconfig` to find your interface name(s))
* Specify the network filter (which **significantly** speeds up the scan process). For example, the filter `192.168.1.0/24` covers IP ranges 192.168.1.0 to 192.168.1.255.
* Examples for one and two subnets (❗ Note the `['...', '...']` format):
* One subnet: `SCAN_SUBNETS = ['192.168.1.0/24 --interface=eth0']`
* Two subnets: `SCAN_SUBNETS = ['192.168.1.0/24 --interface=eth0', '192.168.1.0/24 --interface=eth1']`
- If unavailable, the app generates a default `pialert.conf` and `pialert.db` file on the first run.
- 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/Pi.Alert/tree/main/config) directly, if needed.
#### Important settings
### 🛑 **Common issues**
These are the most important settings to get at least some output in your Devices screen. Usually, only one approach is used, but you should be able to combine these approaches.
##### For arp-scan: ARPSCAN_RUN, SCAN_SUBNETS
- ❗ To use the arp-scan method, you need to set the `SCAN_SUBNETS` variable. See the documentation on how [to setup SUBNETS, VLANs & limitations](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/SUBNETS.md)
##### For pihole: PIHOLE_RUN, DHCPLSS_RUN
There are 2 approaches how to get PiHole devices imported. Via the PiHole import (PIHOLE) plugin or DHCP leases (DHCPLSS) plugin.
**PiHole (Device sync)**
* `PIHOLE_RUN`: You need to map `:/etc/pihole/pihole-FTL.db` in the `docker-compose.yml` file if you enable this setting.
**DHCP Leases (Device import)**
* `DHCPLSS_RUN`: You need to map `:/etc/pihole/dhcp.leases` in the `docker-compose.yml` file if you enable this setting.
* The above setting has to be matched with a corresponding `DHCPLSS_paths_to_check` setting entry (the path in the container must contain `pihole` as PiHole uses a different format of the `dhcp.leases` file).
> It's recommended to use the same schedule interval for all plugins responsible for discovering new devices.
### **Common issues**
💡 Before creating a new issue, please check if a similar issue was [already resolved](https://github.com/jokob-sk/Pi.Alert/issues?q=is%3Aissue+is%3Aclosed).
**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 also try to create a DB backup and then run a DB Restore via the **Maintenance > Backup/Restore** section.
* You can try also setting the owner and group of the `pialert.db` by executing the following on the host system: `docker exec pialert chown -R www-data:www-data /home/pi/pialert/db/pialert.db`.
* Map to local User and Group IDs. Specify the enviroment variables `HOST_USER_ID` and `HOST_USER_GID` if needed.
* Map the pialert.db file (⚠ not folder) to `:/home/pi/pialert/db/pialert.db` (see Examples below for details)
**Container restarts / crashes**
* Check the logs for details. Often a required setting for a notification method is missing.
**unable to resolve host**
* Check that your `SCAN_SUBNETS` variable is using the correct mask and `--interface` as outlined in the instructions above.
Docker-compose examples can be found below.
⚠ Check also common issues and [debugging tips](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/DEBUG_TIPS.md).
## 📄 Examples
@@ -94,6 +96,8 @@ version: "3"
services:
pialert:
container_name: pialert
# use the below line if you want to test the latest dev image
# image: "jokobsk/pi.alert_dev:latest"
image: "jokobsk/pi.alert:latest"
network_mode: "host"
restart: unless-stopped
@@ -113,6 +117,29 @@ To run the container execute: `sudo docker-compose up -d`
### Example 2
Example by [SeimuS](https://github.com/SeimusS).
```yaml
pialert:
container_name: PiAlert
hostname: PiAlert
privileged: true
# use the below line if you want to test the latest dev image
# image: "jokobsk/pi.alert_dev:latest"
image: jokobsk/pi.alert:latest
environment:
- TZ=Europe/Bratislava
restart: always
volumes:
- ./pialert/pialert_db:/home/pi/pialert/db
- ./pialert/pialert_config:/home/pi/pialert/config
network_mode: host
```
To run the container execute: `sudo docker-compose up -d`
### Example 3
`docker-compose.yml`
```yaml
@@ -120,6 +147,8 @@ version: "3"
services:
pialert:
container_name: pialert
# use the below line if you want to test the latest dev image
# image: "jokobsk/pi.alert_dev:latest"
image: "jokobsk/pi.alert:latest"
network_mode: "host"
restart: unless-stopped
@@ -158,12 +187,14 @@ DEV_LOCATION=/path/to/local/source/code
To run the container execute: `sudo docker-compose --env-file /path/to/.env up`
### Example 3
### 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.
```yaml
pialert:
# use the below line if you want to test the latest dev image
# image: "jokobsk/pi.alert_dev:latest"
image: jokobsk/pi.alert
ports:
- "80:20211/tcp"
@@ -188,8 +219,8 @@ Big thanks to <a href="https://github.com/Macleykun">@Macleykun</a> for help and
## ☕ Support me
Disclaimer: Please only donate if you don't have any debt yourself. Support yourself first, then others.
<a href="https://github.com/sponsors/jokob-sk" target="_blank"><img src="https://i.imgur.com/X6p5ACK.png" alt="Sponsor Me on GitHub" style="height: 30px !important;width: 117px !important;" width="150px" ></a>
<a href="https://www.buymeacoffee.com/jokobsk" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 30px !important;width: 117px !important;" width="117px" height="30px" ></a>
<a href="https://www.patreon.com/user?u=84385063" target="_blank"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Patreon_logo_with_wordmark.svg/512px-Patreon_logo_with_wordmark.svg.png" alt="Support me on patreon" style="height: 30px !important;width: 117px !important;" width="117px" ></a>
BTC: 1N8tupjeCK12qRVU2XrV17WvKK7LCawyZM

232
dockerfiles/README_ES.md Executable file
View File

@@ -0,0 +1,232 @@
[![Docker](https://img.shields.io/github/actions/workflow/status/jokob-sk/Pi.Alert/docker_prod.yml?label=Build&logo=GitHub)](https://github.com/jokob-sk/Pi.Alert/actions/workflows/docker_prod.yml)
[![GitHub Committed](https://img.shields.io/github/last-commit/jokob-sk/Pi.Alert?color=40ba12&label=Committed&logo=GitHub&logoColor=fff)](https://github.com/jokob-sk/Pi.Alert)
[![Docker Size](https://img.shields.io/docker/image-size/jokobsk/pi.alert?label=Tamaño&logo=Docker&color=0aa8d2&logoColor=fff)](https://hub.docker.com/r/jokobsk/pi.alert)
[![Docker Pulls](https://img.shields.io/docker/pulls/jokobsk/pi.alert?label=Pulls&logo=docker&color=0aa8d2&logoColor=fff)](https://hub.docker.com/r/jokobsk/pi.alert)
[![Docker Pushed](https://img.shields.io/badge/dynamic/json?color=0aa8d2&logoColor=fff&label=Pushed&query=last_updated&url=https%3A%2F%2Fhub.docker.com%2Fv2%2Frepositories%2Fjokobsk%2Fpi.alert%2F&logo=docker&link=http://left&link=https://hub.docker.com/repository/docker/jokobsk/pi.alert)](https://hub.docker.com/r/jokobsk/pi.alert)
# 🐳 Una imagen docker para Pi.Alert
🐳 [Docker hub](https://registry.hub.docker.com/r/jokobsk/pi.alert) | 📑 [Instrucciones para Docker](https://github.com/jokob-sk/Pi.Alert/blob/main/dockerfiles/README.md) | 🆕 [Release notes](https://github.com/jokob-sk/Pi.Alert/releases) | 📚 [Todos los Docs](https://github.com/jokob-sk/Pi.Alert/tree/main/docs)
<a href="https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/devices_split.png" target="_blank">
<img src="https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/devices_split.png" width="300px" />
</a>
<a href="https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/network.png" target="_blank">
<img src="https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/network.png" width="300px" />
</a>
## 📕 Uso básico
- Tendrás que ejecutar el contenedor en la red del host, por ejemplo:
```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 \
-e TZ=Europe/Berlin \
-e PORT=20211 \
jokobsk/pi.alert:latest
```
- El escaneo inicial puede tardar hasta 15 minutos (con 50 dispositivos y MQTT). Los siguientes pueden durar entre 3 y 5 minutos, así que espere a que se ejecuten todos los escaneos.
### Variables de entorno Docker
| Variable | Descripción | Predeterminado |
| :------------- |:-------------| -----:|
| `PORT` |Puerto de la interfaz web | `20211` |
|`TZ` |Zona horaria para mostrar correctamente las estadísticas. Encuentre su zona horaria [aquí](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) | `Europe/Berlin` |
|`HOST_USER_GID` |ID de usuario (UID) para asignar el usuario del contenedor a un usuario del servidor con suficientes permisos de lectura y escritura en los archivos asignados | `1000` |
|`HOST_USER_ID` |ID de grupo de usuarios (GID) para asignar el grupo de usuarios del contenedor a un grupo de usuarios del servidor con suficientes permisos de lectura y escritura en los archivos asignados | `1000` |
### Rutas Docker
| | Ruta | Descripción |
| :------------- | :------------- |:-------------|
| **Obligatorio** | `:/home/pi/pialert/config` | Carpeta que contendrá el archivo `pialert.conf` (para más detalles, véase más abajo) |
| **Obligatorio** | `:/home/pi/pialert/db` | Carpeta que contendrá el archivo `pialert.db` |
|Opcional| `:/home/pi/pialert/front/log` | Carpeta de registros útil para depurar si tiene problemas al configurar el contenedor |
|Opcional| `:/etc/pihole/pihole-FTL.db` | Archivo de base de datos `pihole-FTL.db` de PiHole. Necesario si desea utilizar PiHole |
|Opcional| `:/etc/pihole/dhcp.leases` | Archivo `dhcp.leases` de PiHole. Obligatorio si desea utilizar el archivo `dhcp.leases` de PiHole. Tiene que coincidir con la correspondiente entrada de configuración `DHCPLSS_paths_to_check`. (La ruta en el contenedor debe contener `pihole`)|
|Opcional| `:/home/pi/pialert/front/api` | Una simple [API endpoint](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/API.md) que contiene archivos json estáticos (pero actualizados regularmente) y otros archivos. |
### Configurar (`pialert.conf`)
- Si no está disponible, la aplicación genera un archivo `pialert.conf` y `pialert.db` por defecto en la primera ejecución.
- La forma preferida es gestionar la configuración a través de la sección "Configuración" de la interfaz de usuario.
- Puede modificar [pialert.conf](https://github.com/jokob-sk/Pi.Alert/tree/main/config) directamente, si es necesario.
#### Ajustes importantes
Estos son los ajustes más importantes para obtener al menos alguna salida en la pantalla de tus Dispositivos. Por lo general, sólo se utiliza un enfoque, pero usted debe ser capaz de combinar estos enfoques.
##### Para arp-scan: ARPSCAN_RUN, SCAN_SUBNETS
- ❗ Para usar el método arp-scan, necesitas configurar la variable `SCAN_SUBNETS`. Consulte la documentación sobre cómo [configurar SUBNETS, VLANs y limitaciones](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/SUBNETS.md)
##### Para pihole: PIHOLE_RUN, DHCPLSS_RUN
Hay dos maneras de importar dispositivos PiHole. A través del plugin de importación PiHole (PIHOLE) o del plugin DHCP leases (DHCPLSS).
**PiHole (Sincronización de dispositivos)**
* `PIHOLE_RUN`: Necesitas mapear `:/etc/pihole/pihole-FTL.db` en el fichero `docker-compose.yml` si activas esta opción.
**DHCP Leases (Importación de dispositivos)**
* `DHCPLSS_RUN`: Es necesario mapear `:/etc/pihole/dhcp.leases` en el fichero `docker-compose.yml` si se activa esta opción.
* La configuración anterior tiene que coincidir con una entrada de configuración correspondiente `DHCPLSS_paths_to_check` (la ruta en el contenedor debe contener `pihole` ya que PiHole utiliza un formato diferente del archivo `dhcp.leases`).
> Se recomienda utilizar el mismo intervalo de programación para todos los plugins responsables de descubrir nuevos dispositivos.
### **Problemas comunes**
💡 Antes de crear una nueva incidencia, comprueba si ya se ha resuelto una [incidencia similar](https://github.com/jokob-sk/Pi.Alert/issues?q=is%3Aissue+is%3Aclosed).
⚠ Compruebe también los problemas comunes y los [consejos de depuración](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/DEBUG_TIPS.md).
## 📄 Ejemplos
### Ejemplo 1
```yaml
version: "3"
services:
pialert:
container_name: pialert
# Utilice la siguiente línea si desea probar la última imagen de desarrollo
# image: "jokobsk/pi.alert_dev:latest"
image: "jokobsk/pi.alert:latest"
network_mode: "host"
restart: unless-stopped
volumes:
- local/path/pialert/config:/home/pi/pialert/config
- local/path/pialert/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
- HOST_USER_ID=1000
- HOST_USER_GID=1000
- PORT=20211
```
Para ejecutar el contenedor ejecute: `sudo docker-compose up -d`
### Ejemplo 2
Ejemplo de [SeimuS](https://github.com/SeimusS).
```yaml
pialert:
container_name: PiAlert
hostname: PiAlert
privileged: true
# Utilice la siguiente línea si desea probar la última imagen de desarrollo
# image: "jokobsk/pi.alert_dev:latest"
image: jokobsk/pi.alert:latest
environment:
- TZ=Europe/Bratislava
restart: always
volumes:
- ./pialert/pialert_db:/home/pi/pialert/db
- ./pialert/pialert_config:/home/pi/pialert/config
network_mode: host
```
Para ejecutar el contenedor ejecute: `sudo docker-compose up -d`
### Ejemplo 3
`docker-compose.yml`
```yaml
version: "3"
services:
pialert:
container_name: pialert
# Utilice la siguiente línea si desea probar la última imagen de desarrollo
# image: "jokobsk/pi.alert_dev:latest"
image: "jokobsk/pi.alert:latest"
network_mode: "host"
restart: unless-stopped
volumes:
- ${APP_DATA_LOCATION}/pialert/config:/home/pi/pialert/config
- ${APP_DATA_LOCATION}/pialert/db/pialert.db:/home/pi/pialert/db/pialert.db
# (optional) useful for debugging if you have issues setting up the container
- ${LOGS_LOCATION}:/home/pi/pialert/front/log
environment:
- TZ=${TZ}
- HOST_USER_ID=${HOST_USER_ID}
- HOST_USER_GID=${HOST_USER_GID}
- PORT=${PORT}
```
`.env` file
```yaml
#VARIABLES DE RUTA GLOBAL
APP_DATA_LOCATION=/path/to/docker_appdata
APP_CONFIG_LOCATION=/path/to/docker_config
LOGS_LOCATION=/path/to/docker_logs
#VARIABLES DE ENTORNO
TZ=Europe/Paris
HOST_USER_ID=1000
HOST_USER_GID=1000
PORT=20211
#VARIABLES DE DESARROLLO
DEV_LOCATION=/path/to/local/source/code
```
Para ejecutar el contenedor ejecute: `sudo docker-compose --env-file /path/to/.env up`
### Example 4
Por cortesía de [pbek](https://github.com/pbek). El volumen `pialert_db` es utilizado por el directorio db. Los dos archivos de configuración se montan directamente desde una carpeta local a sus lugares en la carpeta config. Puedes hacer una copia de seguridad de la carpeta `docker-compose.yaml` y de la carpeta docker volumes.
```yaml
pialert:
# Utilice la siguiente línea si desea probar la última imagen de desarrollo
# image: "jokobsk/pi.alert_dev:latest"
image: jokobsk/pi.alert
ports:
- "80:20211/tcp"
environment:
- TZ=Europe/Vienna
networks:
local:
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
```
## 🏅 Reconocimientos
Muchas gracias a <a href="https://github.com/Macleykun">@Macleykun</a> por ayudarme en consejos y trucos para Dockerfile(s):
<a href="https://github.com/Macleykun">
<img src="https://avatars.githubusercontent.com/u/26381427?size=50">
</a>
Muchas gracias a <a href="https://github.com/cvc90">@cvc90</a> por ayudarme y realizar esta traduccion:
<a href="https://github.com/cvc90">
<img src="https://avatars.githubusercontent.com/u/76731844?size=50">
</a>
## ☕ Apóyame
<a href="https://github.com/sponsors/jokob-sk" target="_blank"><img src="https://i.imgur.com/X6p5ACK.png" alt="Sponsor Me on GitHub" style="height: 30px !important;width: 117px !important;" width="150px" ></a>
<a href="https://www.buymeacoffee.com/jokobsk" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 30px !important;width: 117px !important;" width="117px" height="30px" ></a>
<a href="https://www.patreon.com/user?u=84385063" target="_blank"><img src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Patreon_logo_with_wordmark.svg/512px-Patreon_logo_with_wordmark.svg.png" alt="Support me on patreon" style="height: 30px !important;width: 117px !important;" width="117px" ></a>
BTC: 1N8tupjeCK12qRVU2XrV17WvKK7LCawyZM

View File

@@ -1,15 +1,15 @@
#!/bin/sh
/home/pi/pialert/dockerfiles/user-mapping.sh
# if custom variables not set we do not need to do anything
if [ -n "${TZ}" ]; then
FILECONF=/home/pi/pialert/config/pialert.conf
if [ -f "$FILECONF" ]; then
sed -ie "s|Europe/Berlin|${TZ}|g" /home/pi/pialert/config/pialert.conf
else
sed -ie "s|Europe/Berlin|${TZ}|g" /home/pi/pialert/back/pialert.conf_bak
fi
fi
# # if custom variables not set we do not need to do anything
# if [ -n "${TZ}" ]; then
# FILECONF=/home/pi/pialert/config/pialert.conf
# if [ -f "$FILECONF" ]; then
# sed -ie "s|Europe/Berlin|${TZ}|g" /home/pi/pialert/config/pialert.conf
# else
# sed -ie "s|Europe/Berlin|${TZ}|g" /home/pi/pialert/back/pialert.conf_bak
# fi
# fi
if [ -n "${PORT}" ]; then
sed -ie 's/listen 20211/listen '${PORT}'/g' /etc/nginx/sites-available/default
@@ -28,4 +28,6 @@ chmod -R a+rw /home/pi/pialert/config
/etc/init.d/nginx start
# cron -f
python /home/pi/pialert/back/pialert.py
#python /home/pi/pialert/back/pialert.py
# echo "[DEBUG] DATA MONKEY VERSION ..."
python /home/pi/pialert/pialert/

View File

@@ -5,12 +5,7 @@ PiAlert comes with a simple API. These API endpoints are static files, that are
### When are the endpoints updated
Once you enable the API (`ENABLE_API` setting), the endpoints are updated during these events:
1) Always during a notification event.
2) (optional) If `API_RUN` is set to `schedule` on a specified cron-like schedule specified by the `API_RUN_SCHD` setting.
3) (optional) If `API_RUN` is set to `interval` every N seconds specified by the `API_RUN_INTERVAL` setting (minimum 5).
The endpoints are updated when objects in the API endpoints are changed.
### Location of the endpoints
@@ -25,11 +20,14 @@ You can access the following files:
| `notification_text.txt` | The plain text version of the last notification. |
| `notification_text.html` | The full HTML of the last email notification. |
| `notification_json_final.json` | The json version of the last notification (e.g. used for webhooks - [sample JSON](https://github.com/jokob-sk/Pi.Alert/blob/main/back/webhook_json_sample.json)). |
| `table_devices.json` | The current (at the time of the last update as mentioned above on this page) state of all of the available Devices detected by the app. |
| `table_nmap_scan.json` | The current state of the discovered ports by the regular NMAP scans. |
| `table_devices.json` | The current (at the time of the last update as mentioned above on this page) state of all of the available Devices detected by the app. |
| `table_pholus_scan.json` | The latest state of the [pholus](https://github.com/jokob-sk/Pi.Alert/tree/main/pholus) (A multicast DNS and DNS Service Discovery Security Assessment Tool) scan results. |
| `table_events_pending_alert.json` | The list of the unprocessed (pending) notification events. |
| `table_plugins_events.json` | The list of the unprocessed (pending) notification events (plugins_events DB table). |
| `table_plugins_history.json` | The list of notification events history. |
| `table_plugins_objects.json` | The content of the plugins_objects table. Find more info on the [Plugin system here](https://github.com/jokob-sk/Pi.Alert/tree/main/front/plugins)|
| `language_strings.json` | The content of the language_strings table, which in turn is loaded from the plugins `config.json` definitions. |
| `table_custom_endpoint.json` | A custom endpoint generated by the SQL query specified by the `API_CUSTOM_SQL` setting. |
| `table_settings.json` | The content of the settings table. |
Current/latest state of the aforementioned files depends on your settings.

39
docs/DATABASE.md Executable file
View File

@@ -0,0 +1,39 @@
# A high-level description of the datbase 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.
The MAC address is used as a foreign key in most cases.
## 🔍Tables overview
| Table name | Description | Sample data |
|----------------------|----------------------| ----------------------|
| CurrentScan | Result of the current scan | ![Screen1][screen1] |
| Devices | The main devices database that also contains the Network tree mappings. If `ScanCycle` is set to `0` device is not scanned. | ![Screen2][screen2] |
| Events | Used to collect connection/disconnection events. | ![Screen4][screen4] |
| Online_History | Used to display the `Device presence over time` chart | ![Screen6][screen6] |
| Parameters | Used to pass values between the frontend and backend. | ![Screen7][screen7] |
| Pholus_Scan | Scan results of the Pholus python network penetration script. | ![Screen8][screen8] |
| Plugins_Events | For capturing events exposed by a plugin via the `last_result.log` file. If unique then saved into the `Plugins_Objects` table. Entries are deleted once processed and stored in the `Plugins_History` and/or `Plugins_Objects` tables. | ![Screen10][screen10] |
| Plugins_History | History of all entries from the `Plugins_Events` table | ![Screen11][screen11] |
| 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] |
[screen1]: /docs/img/DATABASE/CurrentScan.png
[screen2]: /docs/img/DATABASE/Devices.png
[screen4]: /docs/img/DATABASE/Events.png
[screen6]: /docs/img/DATABASE/Online_History.png
[screen7]: /docs/img/DATABASE/Parameters.png
[screen8]: /docs/img/DATABASE/Pholus_Scan.png
[screen10]: /docs/img/DATABASE/Plugins_Events.png
[screen11]: /docs/img/DATABASE/Plugins_History.png
[screen12]: /docs/img/DATABASE/Plugins_Language_Strings.png
[screen13]: /docs/img/DATABASE/Plugins_Objects.png
[screen15]: /docs/img/DATABASE/Sessions.png
[screen16]: /docs/img/DATABASE/Settings.png

31
docs/DEBUG_INVALID_JSON.md Executable file
View File

@@ -0,0 +1,31 @@
# How to debug the Invalid JSON response error
Check the the HTTP response of the failing backend call by following these steps:
- Open developer console in your browser (usually, e. g. for Chrome, key F12 on the keyboard).
- Follow the steps in this screenshot:
![F12DeveloperConsole][F12DeveloperConsole]
- Copy the URL causing the error and enter it in the address bar of your browser directly and hit enter. The copied URLs could look something like this (notice the query strings at the end):
- `http://<pialert URL>:20211/php/server/devices.php?action=getDevicesTotals`
- `http://<pialert URL>:20211/php/server/devices.php?action=getDevicesList&status=all`
- Post the error response in the existing issue thread on GitHub or create a new issue and include the redacted response of the failing query.
For reference, the above queries should return results in the following format:
First URL:
![array][array]
Second URL:
![json][json]
You can copy and paste any JSON result (result of the second query) into an online JSON checker, such as [this one](https://jsonchecker.com/) to check if it's valid.
[F12DeveloperConsole]: ./img/DEBUG/Invalid_JSON_repsonse_debug.png "F12DeveloperConsole"
[array]: ./img/DEBUG/array_result_example.png "array"
[json]: ./img/DEBUG/JSON_result_example.png "json"

84
docs/DEBUG_TIPS.md Executable file
View File

@@ -0,0 +1,84 @@
# Debugging and troubleshooting
Please follow tips 1 - 4 to get a more detailed error.
## 1. More Logging 📃
When debugging an issue always set the highest log level:
`LOG_LEVEL='debug'`
## 2. Surfacing errors when container restarts 🔁
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 \
-e TZ=Europe/Berlin \
-e PORT=20211 \
jokobsk/pi.alert:latest
```
> ⚠ Please note, don't use the `-d` parameter so you see the error when the container crashes. Use this error in your issue description.
## 3. Check the _dev image and open issues ❓
If possible, check if your issue got fixed in the `_dev` image before opening a new issue. The container is:
`jokobsk/pi.alert_dev:latest`
> ⚠ Please backup your DB and config beforehand!
Please also search [open issues](https://github.com/jokob-sk/Pi.Alert/issues).
## 4. Disable restart behavior 🛑
To prevent a Docker container from automatically restarting in a Docker Compose file, specify the restart policy as `no`:
```yaml
version: '3'
services:
your-service:
image: your-image:tag
restart: no
# Other service configurations...
```
## 📃Common issues
### 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 pialert chown -R www-data:www-data /home/pi/pialert/db/pialert.db`.
* Map to local User and Group IDs. Specify the enviroment variables `HOST_USER_ID` and `HOST_USER_GID` if needed.
* If still facing issues, try to map the pialert.db file (⚠ not folder) to `:/home/pi/pialert/db/pialert.db` (see Examples below for details)
### Container restarts / crashes
* Check the logs for details. Often a required setting for a notification method is missing.
### unable to resolve host
* Check that your `SCAN_SUBNETS` variable is using the correct mask and `--interface` as outlined in the instructions above.
### Invalid JSON
Check the [Invalid JSON errors debug help](/docs/DEBUG_INVALID_JSON.md) docs on how to proceed.
### sudo execution failing (e.g.: on arpscan) on a Raspberry Pi 4
> sudo: unexpected child termination condition: 0
Resolution based on [this issue](https://github.com/linuxserver/docker-papermerge/issues/4#issuecomment-1003657581)
```
wget ftp.us.debian.org/debian/pool/main/libs/libseccomp/libseccomp2_2.5.3-2_armhf.deb
sudo dpkg -i libseccomp2_2.5.3-2_armhf.deb
```
The link above will probably break in time too. Go to https://packages.debian.org/sid/armhf/libseccomp2/download to find the new version number and put that in the url.

View File

@@ -18,7 +18,7 @@ To edit device information:
- **Owner**: Device owner (The list is self-populated with existing owners)
- **Type**: Select a device type from the dropdown list (Smartphone, Table,
Laptop, TV, router, ....) or type a new device type
- **Vendor**: Automatically updated by Pi.Alert
- **Vendor**: Automatically updated by Pi.Alert when empty or unknown
- **Favorite**: Mark the device as favorite and then it will appears at the
begining of the device list
- **Group**: Select a grouper ('Always on', 'Personal', Friends') or type
@@ -81,9 +81,17 @@ decides to change the MAC).
GPL 3.0
[Read more here](../LICENSE.txt)
### Contact
pi.alert.application@gmail.com
### Contact
Always use the Issue tracker for the correct fork, for example:
[jokob-sk/Pi.Alert](https://github.com/jokob-sk/Pi.Alert/issues). Please also follow the guidelines on:
- [Pull Request guidelines](https://github.com/jokob-sk/Pi.Alert/tree/main/docs#-pull-requests-prs)
- 🙏 [Feature request guidelines](https://github.com/jokob-sk/Pi.Alert/tree/main/docs#-feature-requests)
- 🐛 [Issue guidelines](https://github.com/jokob-sk/Pi.Alert/tree/main/docs#-submitting-an-issue-or-bug)
***Suggestions and comments are welcome***

46
docs/FRONTEND_DEVELOPMENT.md Executable file
View File

@@ -0,0 +1,46 @@
# 🖼 Frontend development
This page contains tips for frontend development when extending PiAlert. Guiding principles are:
1. Maintainability
2. Extendability
3. Reusability
4. Placing more functionality into Plugins and enhancing core Plugins functionality
That means that, when writing code, focus on reusing what's available instead of writing quick fixes. Or creating reusable functions, instead of bespoke functionaility.
## 🔍 Examples
Some examples how to apply the above:
> Example 1
>
> I want to implement a scan fucntion. Options would be:
>
> 1. To add a manual scan functionality to the `deviceDetails.php` page.
> 2. To create a separate page that handles the execution of the scan.
> 3. To create a configurable Plugin.
>
> From the above, number 3 would be the most appropriate solution. Then followed by number 2. Number 1 would be approved only in special circumstances.
> Example 2
>
> I want to change the behavior of the application. Options to implement this could be:
>
> 1. Hard-code the changes in the code.
> 2. Implement the changes and add settings to influence the behavior in the `initialize.py` file so the user can adjust these.
> 3. Implement the changes and add settings via a setting-only plugin.
> 4. Implement the changes in a way so the behavior can be toggled on each plugin so the core capabilities of Plugins get extended.
>
> From the above, number 4 would be the most appropriate solution. Then followed by number 3. Number 1 or 2 would be approved only in special circumstances.
## 💡 Frontend tips
Some useful frontend JavaScript functions:
- `getDeviceDataByMacAddress(macAddress, devicesColumn)` - method to retrieve any device data (database column) based on MAC address in the frontend
- `getString(string stringKey)` - method to retrieve translated strings in the frontend
- `getSetting(string stringKey)` - method to retrieve settings in the frontend
Check the [pialert_common.js](https://github.com/jokob-sk/Pi.Alert/blob/main-2023-06-10/front/js/pialert_common.js) file for more frontend functions.

42
docs/HOME_ASSISTANT.md Executable file
View File

@@ -0,0 +1,42 @@
# Overview
PiAlert comes with MQTT support, allowing you to show all detected devices as devices in Home Assistant. It also supplies a collection of stats, such as number of online devices.
## ⚠ Note
- Please note that discovery takes about ~10s per device.
- Deleting of devices is not handled automatically. Please use [MQTT Explorer](https://mqtt-explorer.com/) to delete devices in the broker (Home Assistant), if needed.
## 🧭 Guide
> 💡 This guide was tested only with the Mosquitto MQTT broker
1. Enable Mosquitto MQTT in Home Assistant by following the [documentation](https://www.home-assistant.io/integrations/mqtt/)
2. Configure a user name and password on your broker.
3. Note down the following details that you will need to configure PiAlert:
- MQTT host url (usually your Home Assistant IP)
- MQTT broker port
- User
- Password
4. Ope the `PiAlert` > `Settings` > `MQTT` settings group
- Enable MQTT
- Fill in the details from above
- Fill in remaining settings as per description
## 📷 Screenshots
| ![Screen 1][sensors] | ![Screen 2][history] |
|----------------------|----------------------|
| ![Screen 3][list] | ![Screen 4][overview] |
[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"

30
docs/ICONS.md Executable file
View File

@@ -0,0 +1,30 @@
## Icons overview
Icons are used to visually distinguish devices in the app in most of the device listing tables and the [network tree](/docs/NETWORK_TREE.md). Currently only free [Font Awesome](https://fontawesome.com/search?o=r&m=free) icons (up-to v 6.4.0) are supported (I have an unblockable [sponsorship goal](https://github.com/sponsors/jokob-sk) to add the material design icon pack).
![Raspberry Pi with a brand icon](/docs/img/ICONS/devices-icons.png)
## ⚙ How to use custom device Icons
You can assign icons individually on each device in the Details tab.
![Raspberry Pi device details](/docs/img/ICONS/device-icon.png)
- You can click into the `Icon` field or click the Pencil (2) icon in the above screenshot to enter any text. Only [free Font Awesome](https://fontawesome.com/search?o=r&m=free) icons in the following format will work:
1. For any value that is only prefixed with `fa-`, you can enter the value directly, such as `server`, `tv`, `ethernet`.
2. If you want to add another classname, e.g. `fa-brands`, you can enter `brands fa-[fontawesome-icon-name]`, so for `apple` that is using the syntax`fa-brands fa-apple`, you would enter `brands fa-apple`.
- If you want to mass-apply an icon to all devices of the same device type (Field marked (4) in the above screenshot), you can click the copy button (Marked (1) in the above screenshot). A confirmation prompt is displayed. If you proceed, icons of all devices set to the same device type as the current device, will be overwritten with the current device's icon.
- The dropdown (3) contains all icons already used in the app for device icons. You need to navigate away or refresh the page once you add a new icon.
## 🌟 Pro Font Awesome icons
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
```
You can use the full range of Font Awesome icons afterwards.

View File

@@ -1,8 +1,24 @@
## How to setup your Network page
Make sure you have a root device with the MAC `Internet` (No other MAC addresses are currently support as root)
Make sure you have a root device with the MAC `Internet` (No other MAC addresses are currently supported as the root node).
To setup a device named `rapberrypi` as a `Switch` in our network.
> 💡 Tip: You can add dummy devices via the [Undiscoverables plugin](https://github.com/jokob-sk/Pi.Alert/blob/main/front/plugins/undiscoverables/README.md)
> 💡 Tip: Export your configuration of the Network and Devices once in a while via the Export CSV feature under **Maintenance** -> **Backup/Restore** -> **CSV Export**.
## ⚡Quick setup:
* Go to Devices > Device Details.
* Find the device(s) you want to use as network devices (network nodes).
* Set the Type of such a device to one of the following: AP, Firewall, Gateway, PLC, Powerline, Router, Switch, USB LAN Adapter, USB WIFI Adapter and WLAN.
* Save and go to Network where the devices you've marked as network devices (by selecting the Type as mentioned above) will show up as tabs.
* You can now assign the Unassigend devices to the correct network node.
* If port is empty or 0 a wifi icon is rendered, otherwise a ethernet port icon
## 🔍Detailed example:
In this example you will setup a device named `rapberrypi` as a `Switch` in our network.
### 1) Device details page
@@ -13,9 +29,9 @@ To setup a device named `rapberrypi` as a `Switch` in our network.
- In the (2) `Details` tab navigate to the the `Type` (3) dropdown and select the type `Switch` (4).
> Note: Only the following device types will show up as selectable Network nodes ( = devices you can connect other devices to):
> AP, Firewall, Gateway, PLC, Powerline, Router, Switch, USB LAN Adapter, USB WIFI Adapter and WLAN.
> AP, Firewall, Gateway, Hypervisor, PLC, Powerline, Router, Switch, USB LAN Adapter, USB WIFI Adapter and WLAN.
- Assign a device to your root device from the `Node` (5) dropdown whitch has the MAC `Internet` (6) (Your name may differ, but the MAC needs to be set to `Internet` - this is done by default).
- Assign a device to your root device from the `Node` (5) dropdown which has the MAC `Internet` (6) (Your name may differ, but the MAC needs to be set to `Internet` - this is done by default).
- Save your changes (7)

View File

@@ -33,7 +33,14 @@ decides to change the MAC).
[Read more here](../LICENSE.txt)
### Contact
pi.alert.application@gmail.com
Always use the Issue tracker for the correct fork, for example:
[jokob-sk/Pi.Alert](https://github.com/jokob-sk/Pi.Alert/issues). Please also follow the guidelines on:
- [Pull Request guidelines](https://github.com/jokob-sk/Pi.Alert/tree/main/docs#-pull-requests-prs)
- 🙏 [Feature request guidelines](https://github.com/jokob-sk/Pi.Alert/tree/main/docs#-feature-requests)
- 🐛 [Issue guidelines](https://github.com/jokob-sk/Pi.Alert/tree/main/docs#-submitting-an-issue-or-bug)
***Suggestions and comments are welcome***

115
docs/README.md Executable file
View File

@@ -0,0 +1,115 @@
## Documentation overview
In the app hover over settings or fields/labels or click blue in-app ❔ (question-mark) icons to get to relevant documentation pages.
![In-app help](/docs/img/GENERAL/in-app-help.png)
There is also an in-app Help / FAQ section that should be answering frequently asked questions.
### 📥 Installation
⚠ Only tested as a [docker container - follow these instructions here](https://github.com/jokob-sk/Pi.Alert/blob/main/dockerfiles/README.md).
> Check out [leiweibau's fork](https://github.com/leiweibau/Pi.Alert/) if you want to install Pi.Alert on the server directly or original instructions for [pucherot's original code](https://github.com/pucherot/Pi.Alert/)
### 📚 Table of contents
#### 🐛 Debugging help & tips
- [Debugging tips](/docs/DEBUG_TIPS.md)
- [Invalid JSON errors debug help](/docs/DEBUG_INVALID_JSON.md)
#### 🔝 Popular/Suggested
- [Network treemap configuration](/docs/NETWORK_TREE.md)
- [Gmail as SMTP server for sending emails](/docs/SMTP_GMAIL.md)
- [Subnets and VLANs configuration for arp-scan](/docs/SUBNETS.md)
- [Home Assistant](/docs/HOME_ASSISTANT.md)
#### ⚙ System Management
- [Manage devices (legacy docs)](/docs/DEVICE_MANAGEMENT.md)
- [Random MAC/MAC icon meaning (legacy docs)](/docs/RANDOM_MAC.md)
- [Custom Icons configuration and support](/docs/ICONS.md)
#### 🔎 Examples
- [N8N webhook example](/docs/WEBHOOK_N8N.md)
#### ♻ Misc
- [Version history (legacy)](/docs/VERSIONS_HISTORY.md)
- [Reverse proxy (Nginx, Apache, SWAG)](/docs/REVERSE_PROXY.md)
#### 👩💻For Developers👨💻
- [APP code structure](/pialert/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)
- [Settings system](/docs/SETTINGS_SYSTEM.md)
- [New Version notifications](/docs/VERSIONS.md)
- [Frontend development tips](/docs/FRONTEND_DEVELOPMENT.md)
Feel free to suggest or submit new docs via a PR.
## 👨‍💻 Development priorities
Priorities from highest to lowest:
* 🔼 Fixing core functionality bugs not solvable with workarounds
* 🔵 New core functionality unlocking other opportunities (e.g.: plugins)
* 🔵 Refactoring enabling faster implementation of future functionality
* 🔽 (low) UI functionality & improvements (PRs welcome 😉)
Design philosophy: Focus on core functionality and leverage existing apps and tools to make PiAlert integrate into other workflows.
Examples:
1. Supporting apprise makes more sense than implementing multiple individual notification gateways
2. Implementing regular expression support across settings for validation makes more sense than validating one setting with a specific expression.
UI-specific requests are a low priority as the framework picked by the original developer is not very extensible (and afaik doesn't support components) and has limited mobile support. Also, I argue the value proposition is smaller than working on something else.
Feel free to submit PRs if interested. try to **keep the PRs small/on-topic** so they are easier to review and approve.
That being said, I'd reconsider if more people and or recurring sponsors file a request 😉.
## 🙏 Feature requests
Please be as detailed as possible with **workarounds** you considered and why a native feature is the better way. This gives me better context and will make it more likely to be implemented. Ideally, a feature request should be in the format "I want to be able to do XYZ so that ZYX. I considered these approaches XYZ".
## Pull requests (PRs)
If you submit a PR please:
1. Check that your changes are backward compatible with existing installations and with a blank setup.
2. Existing features should always be preserved.
3. Keep the PR small, on-topic and don't change code that is not necessary for the PR to work
4. New features code should ideally be re-usable for different purposes, not be for a very narrow use-case.
5. New functionality should ideally be implemented via the Plugins system, if possible.
Suggested test cases:
- Blank setup with no DB or config
- Existing DB / config
- Sending a notification (e. g. Delete a device and wait for a scan to run) and testing all notification gateways, especially:
- Email, Apprise (e.g. via Telegram), webhook (e.g. via Discord), MQTT (e.g. via HomeAssitant)
- Saving settings
- Test a couple of plugins
- Check the Error log for anything unusual
Some additional context:
* Permanent settings/config is stored in the `pialert.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
Before submitting a new issue please spend a couple of minutes on research:
* Check [🛑 Common issues](https://github.com/jokob-sk/Pi.Alert/tree/main/dockerfiles#-common-issues)
* Check [💡 Closed issues](https://github.com/jokob-sk/Pi.Alert/issues?q=is%3Aissue+is%3Aclosed) if a similar issue was solved in the past.
* When submitting an issue ❗[enable debug](https://github.com/jokob-sk/Pi.Alert/blob/main/docs/DEBUG_TIPS.md)❗
⚠ Please follow the pre-defined issue template to resolve your issue faster.

350
docs/REVERSE_PROXY.md Executable file
View File

@@ -0,0 +1,350 @@
# Reverse Proxy Configuration
> Submitted by amazing [cvc90](https://github.com/cvc90) 🙏
## NGINX HTTP Configuration (Direct Path)
1. On your NGINX server, create a new file called /etc/nginx/sites-available/pialert
2. In this file, paste the following code:
```
server {
listen 80;
server_name pi.alert;
proxy_preserve_host on;
proxy_pass http://localhost:20211/;
proxy_pass_reverse http://localhost:20211/;
}
```
3. Activate the new website by running the following command:
`nginx -s reload` or `systemctl restart nginx`
4. Once NGINX restarts, you should be able to access the proxy website at http://pi.alert/
<br>
## NGINX HTTP Configuration (Sub Path)
1. On your NGINX server, create a new file called /etc/nginx/sites-available/pialert
2. In this file, paste the following code:
```
server {
listen 80;
server_name pi.alert;
proxy_preserve_host on;
location ^~ /pi.alert/ {
proxy_pass http://localhost:20211/;
proxy_pass_reverse http://localhost:20211/;
proxy_redirect ~^/(.*)$ /pi.alert/$1;
rewrite ^/pi.alert/?(.*)$ /$1 break;
}
}
```
3. Activate the new website by running the following command:
`nginx -s reload` or `systemctl restart nginx`
4. Once NGINX restarts, you should be able to access the proxy website at http://pi.alert/pi.alert/
<br>
## NGINX HTTP Configuration (Sub Path) with module ngx_http_sub_module
1. On your NGINX server, create a new file called /etc/nginx/sites-available/pialert
2. In this file, paste the following code:
```
server {
listen 80;
server_name pi.alert;
proxy_preserve_host on;
location ^~ /pi.alert/ {
proxy_pass http://localhost:20211/;
proxy_pass_reverse http://localhost:20211/;
proxy_redirect ~^/(.*)$ /pi.alert/$1;
rewrite ^/pi.alert/?(.*)$ /$1 break;
sub_filter_once off;
sub_filter_types *;
sub_filter 'href="/' 'href="/pi.alert/';
sub_filter '(?>$host)/css' '/pi.alert/css';
sub_filter '(?>$host)/js' '/pi.alert/js';
sub_filter '/img' '/pi.alert/img';
sub_filter '/lib' '/pi.alert/lib';
sub_filter '/php' '/pi.alert/php';
}
}
```
3. Activate the new website by running the following command:
`nginx -s reload` or `systemctl restart nginx`
4. Once NGINX restarts, you should be able to access the proxy website at http://pi.alert/pi.alert/
<br>
**NGINX HTTPS Configuration (Direct Path)**
1. On your NGINX server, create a new file called /etc/nginx/sites-available/pialert
2. In this file, paste the following code:
```
server {
listen 443;
server_name pi.alert;
SSLEngine On;
SSLCertificateFile /etc/ssl/certs/pi.alert.pem;
SSLCertificateKeyFile /etc/ssl/private/pi.alert.key;
proxy_preserve_host on;
proxy_pass http://localhost:20211/;
proxy_pass_reverse http://localhost:20211/;
}
```
3. Activate the new website by running the following command:
`nginx -s reload` or `systemctl restart nginx`
4. Once NGINX restarts, you should be able to access the proxy website at https://pi.alert/
<br>
**NGINX HTTPS Configuration (Sub Path)**
1. On your NGINX server, create a new file called /etc/nginx/sites-available/pialert
2. In this file, paste the following code:
```
server {
listen 443;
server_name pi.alert;
SSLEngine On;
SSLCertificateFile /etc/ssl/certs/pi.alert.pem;
SSLCertificateKeyFile /etc/ssl/private/pi.alert.key;
location ^~ /pi.alert/ {
proxy_pass http://localhost:20211/;
proxy_pass_reverse http://localhost:20211/;
proxy_redirect ~^/(.*)$ /pi.alert/$1;
rewrite ^/pi.alert/?(.*)$ /$1 break;
}
}
```
3. Activate the new website by running the following command:
`nginx -s reload` or `systemctl restart nginx`
4. Once NGINX restarts, you should be able to access the proxy website at https://pi.alert/pi.alert/
<br>
## NGINX HTTPS Configuration (Sub Path) with module ngx_http_sub_module
1. On your NGINX server, create a new file called /etc/nginx/sites-available/pialert
2. In this file, paste the following code:
```
server {
listen 443;
server_name pi.alert;
SSLEngine On;
SSLCertificateFile /etc/ssl/certs/pi.alert.pem;
SSLCertificateKeyFile /etc/ssl/private/pi.alert.key;
location ^~ /pi.alert/ {
proxy_pass http://localhost:20211/;
proxy_pass_reverse http://localhost:20211/;
proxy_redirect ~^/(.*)$ /pi.alert/$1;
rewrite ^/pi.alert/?(.*)$ /$1 break;
sub_filter_once off;
sub_filter_types *;
sub_filter 'href="/' 'href="/pi.alert/';
sub_filter '(?>$host)/css' '/pi.alert/css';
sub_filter '(?>$host)/js' '/pi.alert/js';
sub_filter '/img' '/pi.alert/img';
sub_filter '/lib' '/pi.alert/lib';
sub_filter '/php' '/pi.alert/php';
}
}
```
3. Activate the new website by running the following command:
`nginx -s reload` or `systemctl restart nginx`
4. Once NGINX restarts, you should be able to access the proxy website at https://pi.alert/pi.alert/
<br>
## Apache HTTP Configuration (Direct Path)
1. On your Apache server, create a new file called /etc/apache2/sites-available/pialert.conf.
2. In this file, paste the following code:
```
<VirtualHost *:80>
ServerName pi.alert
ProxyPreserveHost On
ProxyPass / http://localhost:20211/
ProxyPassReverse / http://localhost:20211/
</VirtualHost>
```
3. Activate the new website by running the following command:
`a2ensite pialert` or `service apache2 reload`
4. Once Apache restarts, you should be able to access the proxy website at http://pi.alert/
<br>
## Apache HTTP Configuration (Sub Path)
1. On your Apache server, create a new file called /etc/apache2/sites-available/pialert.conf.
2. In this file, paste the following code:
```
<VirtualHost *:80>
ServerName pi.alert
location ^~ /pi.alert/ {
ProxyPreserveHost On
ProxyPass / http://localhost:20211/
ProxyPassReverse / http://localhost:20211/
}
</VirtualHost>
```
3. Activate the new website by running the following command:
`a2ensite pialert` or `service apache2 reload`
4. Once Apache restarts, you should be able to access the proxy website at http://pi.alert/
<br>
## Apache HTTPS Configuration (Direct Path)
1. On your Apache server, create a new file called /etc/apache2/sites-available/pialert.conf.
2. In this file, paste the following code:
```
<VirtualHost *:443>
ServerName pi.alert
SSLEngine On
SSLCertificateFile /etc/ssl/certs/pi.alert.pem
SSLCertificateKeyFile /etc/ssl/private/pi.alert.key
ProxyPreserveHost On
ProxyPass / http://localhost:20211/
ProxyPassReverse / http://localhost:20211/
</VirtualHost>
```
3. Activate the new website by running the following command:
`a2ensite pialert` or `service apache2 reload`
4. Once Apache restarts, you should be able to access the proxy website at https://pi.alert/
<br>
## Apache HTTPS Configuration (Sub Path)
1. On your Apache server, create a new file called /etc/apache2/sites-available/pialert.conf.
2. In this file, paste the following code:
```
<VirtualHost *:443>
ServerName pi.alert
SSLEngine On
SSLCertificateFile /etc/ssl/certs/pi.alert.pem
SSLCertificateKeyFile /etc/ssl/private/pi.alert.key
location ^~ /pi.alert/ {
ProxyPreserveHost On
ProxyPass / http://localhost:20211/
ProxyPassReverse / http://localhost:20211/
}
</VirtualHost>
```
3. Activate the new website by running the following command:
`a2ensite pialert` or `service apache2 reload`
4. Once Apache restarts, you should be able to access the proxy website at https://pi.alert/pi.alert/
## Reverse proxy example by using LinuxServer's SWAG container.
> Submitted by [s33d1ing](https://github.com/s33d1ing). 🙏
## [linuxserver/swag](https://github.com/linuxserver/docker-swag)
In the SWAG container create `/config/nginx/proxy-confs/pialert.subfolder.conf` with the following contents:
``` nginx
## Version 2023/02/05
# make sure that your pialert container is named pialert
# pialert does not require a base url setting
# Since Pi.Alert uses a Host network, you may need to use the IP address of the system running Pi.Alert for $upstream_app.
location /pialert {
return 301 $scheme://$host/pialert/;
}
location ^~ /pialert/ {
# enable the next two lines for http auth
#auth_basic "Restricted";
#auth_basic_user_file /config/nginx/.htpasswd;
# enable for ldap auth (requires ldap-server.conf in the server block)
#include /config/nginx/ldap-location.conf;
# enable for Authelia (requires authelia-server.conf in the server block)
#include /config/nginx/authelia-location.conf;
# enable for Authentik (requires authentik-server.conf in the server block)
#include /config/nginx/authentik-location.conf;
include /config/nginx/proxy.conf;
include /config/nginx/resolver.conf;
set $upstream_app pialert;
set $upstream_port 20211;
set $upstream_proto http;
proxy_pass $upstream_proto://$upstream_app:$upstream_port;
proxy_set_header Accept-Encoding "";
proxy_redirect ~^/(.*)$ /pialert/$1;
rewrite ^/pialert/?(.*)$ /$1 break;
sub_filter_once off;
sub_filter_types *;
sub_filter 'href="/' 'href="/pialert/';
sub_filter '(?>$host)/css' '/pialert/css';
sub_filter '(?>$host)/js' '/pialert/js';
sub_filter '/img' '/pialert/img';
sub_filter '/lib' '/pialert/lib';
sub_filter '/php' '/pialert/php';
}
```

77
docs/SETTINGS_SYSTEM.md Executable file
View File

@@ -0,0 +1,77 @@
## ⚙ Setting system
This is an explanation how settings are handled intended for anyone thinking about writing their own plugin or contributing to the project.
If you are a user of the app, settings should be described in the `Settings` section of the app. Open an issue if you'd like to clarify any of the settings.
### 🛢 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.
#### 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 databse structure can be found in the [database documentation](/docs/DATABASE.md).
#### table_settings.json
This is the [API endpoint](/docs/API.md) that reflects the state of the `Settings` database table. Settings can be accessed with the:
* `getSetting(key)` JavaScript method
The json file is also cached on the client-side local storage of the browser.
#### pialert.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. This should helps the future extensibility of 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](/front/plugins/README.md), 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 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.
Here's a high-level description of the code:
1. Function Definitions:
- `ccd`: This function is used to handle user-defined settings and configurations. It takes several parameters related to the setting's name, default value, input type, options, group, and more. It saves the settings and their metadata in different lists (`conf.mySettingsSQLsafe` and `conf.mySettings`).
- `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.
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.
- The function reads the configuration file using the `read_config_file` function, which returns a dictionary of settings.
- The script then initializes various user-defined settings using the `ccd` function, based on the values read from the configuration file. These settings are categorized into groups such as "General," "Email," "Webhooks," "Apprise," and more.
3. Plugin Handling:
- The script loads and handles plugins dynamically. It retrieves plugin configurations and iterates through each plugin.
- For each plugin, it extracts the prefix and settings related to that plugin and processes them similarly to other user-defined settings.
- It also handles scheduling for plugins with specific `RUN_SCHD` settings.
4. Saving Settings to the Database:
- The script clears the existing settings in the database and inserts the updated settings into the database using SQL queries.
5. Updating the API and Performing Cleanup:
- After importing the configurations, the script updates the API to reflect the changes in the settings.
- It saves the current timestamp to determine the next import time.
- Finally, it logs the successful import of the new configuration.
_____________________
[screen1]: https://raw.githubusercontent.com/jokob-sk/Pi.Alert/main/docs/img/plugins_json_settings.png "Screen 1"

96
docs/SUBNETS.md Executable file
View File

@@ -0,0 +1,96 @@
# Subnets configuration for arp-scan
You need to specify the network interface and the network mask. You can also configure multiple subnets and specify VLANS (see exceptions below).
## Examples
* Examples for one and two subnets (❗ Note the `['...', '...']` format):
* One subnet: `SCAN_SUBNETS = ['192.168.1.0/24 --interface=eth0']`
* Two subnets: `SCAN_SUBNETS = ['192.168.1.0/24 --interface=eth0', '192.168.1.0/24 --interface=eth1 -vlan=107']`
## Explanation
### Network mask
**Example value: `192.168.1.0/24`**
The arp-scan time itself depends on the number of IP addresses to check.
> The number of IPs to check depends on the [network mask](https://www.calculator.net/ip-subnet-calculator.html) you set on the `SCAN_SUBNETS` setting.
> For example, a `/24` mask results in 256 IPs to check, whereas a `/16` mask checks around 65,536. Every IP takes a couple of seconds. This means that with an incorrect configuration, the arp-scan will take hours to complete instead of seconds.
Specify the network filter (which **significantly** speeds up the scan process). For example, the filter `192.168.1.0/24` covers IP ranges 192.168.1.0 to 192.168.1.255.
### Network interface (adapter)
**Example value: `--interface=eth0`**
The adapter will probably be `eth0` or `eth1`. (Run `iwconfig` in the container to find your interface name(s))
> Run `iwconfig` in your container to find your interface name(s) (e.g.: `eth0`, `eth1`).
### VLANs
**Example value: `-vlan=107`**
- Append e.g.: ` -vlan=107` to the interface field (e.g.: `eth0 -vlan=107`) for multiple vlans. More details in this [comment in this issue](https://github.com/jokob-sk/Pi.Alert/issues/170#issuecomment-1419902988)
#### VLANs on a Hyper-V setup
> Community sourced content by [mscreations](https://github.com/mscreations) from this [discussion](https://github.com/jokob-sk/Pi.Alert/discussions/404).
> [!NOTE]
> The setup this was tested on: Bare Metal -> Hyper-V on Win Server 2019 -> Ubuntu 22.04 VM -> Docker -> PiAlert.
**Approach 1 (may cause issues):**
Configure multiple network adapters in Hyper-V with distinct VLANs connected to each one using Hyper-V's network setup. However, this action can potentially lead to the Docker host's inability to handle network traffic correctly. The issue may stem from the creation of routes for network time servers or domain controllers on every interface, thereby preventing proper synchronization of the underlying Ubuntu VM. This interference can affect the performance of other applications such as Authentik.
**Approach 2 (working example)**
Network connections to switches are configured as trunk and allow all VLANs access to the server.
By default Hyper-V only allows untagged packets through to the VM interface and no VLAN tagged packets get through. In order to fix this follow these steps:
1) Run the following command in Powershell on the Hyper-V machine:
```shell
Set-VMNetworkAdapterVlan -VMName <Docker VM Name> -Trunk -NativeVlanId 0 -AllowedVlanIdList "<comma separated list of vlans>"
```
(There might be other ways how adjust this.)
2) Within the VM, set up sub-interfaces for each of the VLANs so they can be scanned. On Ubuntu 22.04 Netplan can be used.
In /etc/netplan/00-installer-config.yaml, add vlan definitions:
```
network:
ethernets:
eth0:
dhcp4: yes
vlans:
eth0.2:
id: 2
link: eth0
addresses: [ "192.168.2.2/24" ]
routes:
- to: 192.168.2.0/24
via: 192.168.1.1
```
3) Run `sudo netplan apply` and the interfaces are then available to scan in PiAlert.
4) In this case, use `192.168.2.0/24 --interface=eth0.2` in PiAlert
#### VLAN 🔍Example:
![Vlan configuration example](/docs/img/SUBNETS/subnets_vlan.png)
#### Support for VLANS (& exceptions)
Please note the accessibility of the macvlans when they are configured on the same computer. My understanding this is a general networking behavior, but feel free to clarify via a PR/issue.
- Pi.Alert does not detect the macvlan container when it is running on the same computer.
- Pi.Alert recognizes the macvlan container when it is running on a different computer.

25
docs/VERSIONS.md Executable file
View File

@@ -0,0 +1,25 @@
## Am I running the latest released version?
Since version 23.01.14 PiAlert uses a simple timestamp-based version check to verify if a new version is available. You can check the [current and past releases here](https://github.com/jokob-sk/Pi.Alert/releases), or have a look at what I'm [currently working on](https://github.com/jokob-sk/Pi.Alert/issues/138).
If you are not on the latest version, the app will notify you, that a new released version is avialable the following way:
### 📧 Via email on a notification event
If any notification occurs and an email is sent, the email will contain a note that a new version is available. See the sample email below:
![Sample email if a new version is available](/docs/img/VERSIONS/new-version-available-email.png)
### 🆕 In the UI
In the UI via a notification Icon and via a custom message in the Maintenance section.
![UI screenshot if a new version is available](/docs/img/VERSIONS/new-version-available-maintenance.png)
For a comparison, this is how the UI looks like if you are on the latest stable image:
![UI screenshot if on latest version](/docs/img/VERSIONS/latest-version-maintenance.png)
## Implementation details
During build a [/home/pi/pialert/front/buildtimestamp.txt](https://github.com/jokob-sk/Pi.Alert/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).

View File

@@ -77,4 +77,11 @@
[Read more here](../LICENSE.txt)
### Contact
pi.alert.application@gmail.com
Always use the Issue tracker for the correct fork, for example:
[jokob-sk/Pi.Alert](https://github.com/jokob-sk/Pi.Alert/issues). Please also follow the guidelines on:
- [Pull Request guidelines](https://github.com/jokob-sk/Pi.Alert/tree/main/docs#-pull-requests-prs)
- 🙏 [Feature request guidelines](https://github.com/jokob-sk/Pi.Alert/tree/main/docs#-feature-requests)
- 🐛 [Issue guidelines](https://github.com/jokob-sk/Pi.Alert/tree/main/docs#-submitting-an-issue-or-bug)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 32 KiB

BIN
docs/img/DATABASE/CurrentScan.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

BIN
docs/img/DATABASE/DHCP_Leases.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

BIN
docs/img/DATABASE/Devices.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

BIN
docs/img/DATABASE/Events.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
docs/img/DATABASE/Nmap_Scan.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

BIN
docs/img/DATABASE/Parameters.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
docs/img/DATABASE/Pholus_Scan.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

BIN
docs/img/DATABASE/ScanCycles.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
docs/img/DATABASE/Sessions.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
docs/img/DATABASE/Settings.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

BIN
docs/img/GENERAL/in-app-help.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

BIN
docs/img/ICONS/device-icon.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

BIN
docs/img/ICONS/devices-icons.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

BIN
docs/img/SUBNETS/subnets_vlan.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

BIN
docs/img/device_nmap.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

BIN
docs/img/plugins.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 202 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

BIN
docs/img/plugins_json_ui.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

BIN
docs/img/plugins_rogue_dhcp.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

BIN
docs/img/plugins_settings.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 158 KiB

BIN
docs/img/plugins_webmon.png Executable file

Binary file not shown.

After

Width:  |  Height:  |  Size: 92 KiB

2
front/api/.gitignore vendored Executable file
View File

@@ -0,0 +1,2 @@
*
!.gitignore

0
front/buildtimestamp.txt Executable file
View File

View File

@@ -591,7 +591,14 @@ height: 50px;
}
.nav-tabs-custom .tab-content {
background-color: white;
background-color: white;
}
@media (max-width: 767px) {
.nav-tabs-custom .tab-content {
overflow: scroll;
}
}
.top_small_box_gray_text {
@@ -623,20 +630,26 @@ height: 50px;
width:30%;
}
}
@media (min-width: 768px) {
.setting_description {
/* color: green; */
display: block;
}
.setting_input{
width:35%;
/* background-color: green; */
}
.setting_name
{
width:19%;
}
}
@media (min-width: 768px) {
.setting_description {
/* color: green; */
display: block;
}
.setting_input{
width:40%;
/* background-color: green; */
}
.setting_name
{
width:19%;
}
}
.settingswrap .metadata
{
display: none;
}
.table_row {
padding: 3px;
@@ -663,7 +676,7 @@ height: 50px;
.setting_description
{
width:46%;
width:40%;
}
.myhidden
@@ -685,6 +698,8 @@ height: 50px;
margin-top: 50px;
}
/* Settings */
.settings_content {
padding: 10px;
/* background-color: #272c30; */
@@ -707,6 +722,28 @@ height: 50px;
width: auto
}
.override{
padding: 5px;
}
.override .override-text
{
float:left;
width: 80%;
}
.override .override-check
{
float:left;
width: 20%;
}
input[readonly] {
/* Apply styles to the readonly input */
background-color: #646566 !important;
color: #000;
cursor: not-allowed;
}
/* Devices */
.drp-edit
@@ -727,6 +764,15 @@ height: 50px;
{
cursor:pointer;
}
.drag
{
cursor: move; /* fallback if grab cursor is unsupported */
cursor: grab;
cursor: -moz-grab;
cursor: -webkit-grab;
}
.db_info_table_row .select2-container--default .select2-selection--multiple .select2-selection__choice
{
background-color:#258744;
@@ -747,24 +793,52 @@ height: 50px;
margin-bottom: 6px;
}
.pageHelp{
position: absolute;
font-size: x-small;
margin-bottom: 6px;
}
/* NETWORK page */
/* AdminLTE overrides */
#networkTree .box
{
padding:2px;
margin:2px;
border-top:1px;
border-top-color:grey;
padding:0px;
padding-top:6px;
margin:0px;
align-items:center;
border-radius:20px;
width:180px;
display:flex;
flex-direction:column;
justify-content:center;
}
#networkTree .netNodeText
{
top: 2px;
margin: 2px;
{
position: absolute;
}
#networkTree .netPort
{
float:left;
display:inline;
}
#networkTree .portBckgIcon
{
opacity: 0.3;
display: initial;
float: left;
}
#networkTree
{
margin-left: 16px;
/* border: solid;
border-color:#606060; */
position: relative;
font-size: 0.75em;
position: relative;
}
#networkTree .netIcon
{
@@ -776,7 +850,7 @@ height: 50px;
{
display: block;
position: absolute;
margin-left: 156px;
margin-left: 170px;
top: -3px;
font-size: large;
left: -15px;
@@ -799,5 +873,64 @@ height: 50px;
text-overflow: ellipsis;
}
.plugin-filters
{
margin: 7px;
margin-right: 7px;
margin-bottom: 9px;
padding-bottom: 8px;
}
.plugin-content
{
padding-bottom: 0px;
}
.plugin-content .left-nav{
width: 100%;
padding-right: 0px;
}
.plugin-content #tabs-content-location
{
margin: 0px;
}
.plugins-description
{
padding-top: 20px;
}
.login-page .login-custom
{
width:480px;
}
/*Hidden special button*/
@media (max-width: 464px) {
#back-button {
display: none;
}
}
@media (max-width: 432px) {
#next-button {
display: none;
}
}
@media (max-width: 400px) {
#reload-button {
display: none;
}
}
@media (max-width: 365px) {
#fullscreen-button {
display: none;
}
}

View File

@@ -1,11 +1,16 @@
<!-- ---------------------------------------------------------------------------
# Pi.Alert
# Open Source Network Guard / WIFI & LAN intrusion detector
#
# deviceDetails.php - Front module. Device management page
#-------------------------------------------------------------------------------
# Puche 2021 / 2022+ jokob jokob@duck.com GNU GPLv3
#--------------------------------------------------------------------------- -->
<!--
#---------------------------------------------------------------------------------#
# Pi.Alert #
# Open Source Network Guard / WIFI & LAN intrusion detector #
# #
# deviceDetails.php - Front module. Device management page #
#---------------------------------------------------------------------------------#
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3 #
# jokob-sk 2022 jokob.sk@gmail.com GNU GPLv3 #
# leiweibau 2022 https://github.com/leiweibau GNU GPLv3 #
# cvc90 2023 https://github.com/cvc90 GNU GPLv3 #
#---------------------------------------------------------------------------------#
-->
<?php
require 'php/templates/header.php';
@@ -94,19 +99,14 @@
<div class="row">
<div class="col-lg-12 col-sm-12 col-xs-12">
<!-- <div class="box-transparent"> -->
<div id="navDevice" class="nav-tabs-custom">
<ul class="nav nav-tabs" style="fon t-size:16px;">
<li> <a id="tabDetails" href="#panDetails" data-toggle="tab"> <?= lang('DevDetail_Tab_Details');?> </a></li>
<?php
if ($_REQUEST['mac'] == 'Internet') { $DevDetail_Tap_temp = "Tools"; } else { $DevDetail_Tap_temp = lang('DevDetail_Tab_Nmap');}
?>
<li> <a id="tabNmap" href="#panNmap" data-toggle="tab"> <?php echo $DevDetail_Tap_temp;?> </a></li>
<li> <a id="tabTools" href="#panTools" data-toggle="tab"> <?= lang('DevDetail_Tab_Tools');?> </a></li>
<li> <a id="tabSessions" href="#panSessions" data-toggle="tab"> <?= lang('DevDetail_Tab_Sessions');?> </a></li>
<li> <a id="tabPresence" href="#panPresence" data-toggle="tab"> <?= lang('DevDetail_Tab_Presence');?> </a></li>
<li> <a id="tabEvents" href="#panEvents" data-toggle="tab"> <?= lang('DevDetail_Tab_Events');?> </a></li>
<li> <a id="tabPholus" href="#panPholus" data-toggle="tab"> <?= lang('DevDetail_Tab_Pholus');?> </a></li>
<li> <a id="tabEvents" href="#panEvents" data-toggle="tab"> <?= lang('DevDetail_Tab_Events');?> </a></li>
<li> <a id="tabPlugins" href="#panPlugins" data-toggle="tab"> <?= lang('DevDetail_Tab_Plugins');?> </a></li>
<div class="btn-group pull-right">
<button type="button" class="btn btn-default" style="padding: 10px; min-width: 30px;"
@@ -119,9 +119,7 @@
id="btnNext" onclick="recordSwitch('next')"> <i class="fa fa-chevron-right"></i> </button>
</div>
</ul>
<div class="tab-content" style="min-height: 430px;">
<!-- tab page 1 ------------------------------------------------------------ -->
@@ -156,7 +154,7 @@
</div>
<!-- Owner -->
<div class="form-group">
<div class="form-group" title="<?= lang('DevDetail_Owner_hover');?>">
<label class="col-sm-3 control-label"><?= lang('DevDetail_MainInfo_Owner');?></label>
<div class="col-sm-9">
<div class="input-group">
@@ -173,7 +171,7 @@
</div>
<!-- Type -->
<div class="form-group">
<div class="form-group" title="<?= lang('DevDetail_Type_hover');?>">
<label class="col-sm-3 control-label"><?= lang('DevDetail_MainInfo_Type');?></label>
<div class="col-sm-9">
<div class="input-group">
@@ -191,14 +189,14 @@
</div>
<!-- Icon -->
<div class="form-group">
<div class="form-group" title="<?= lang('DevDetail_Icon_Descr');?>">
<label class="col-sm-3 control-label">
<?= lang('DevDetail_Icon');?>
<a href="https://fontawesome.com/search?q=laptop&o=r&m=free" target="_blank"> <span><i class="fa fa-fw fa-arrow-up-right-from-square"></i></a><span>
<a href="https://github.com/jokob-sk/Pi.Alert/blob/main/docs/ICONS.md" target="_blank"> <span><i class="fa fa-circle-question"></i></a><span>
</label>
<div class="col-sm-9">
<div class="input-group">
<input class="form-control" title="<?= lang('DevDetail_Icon_Descr');?>" id="txtIcon" type="text" value="--">
<input class="form-control" id="txtIcon" type="text" value="--">
<span class="input-group-addon" title='<?= lang('DevDetail_button_OverwriteIcons_Tooltip');?>'><i class="fa fa-copy pointer" onclick="askOverwriteIconType();"></i></span>
<span class="input-group-addon"><i class="fa fa-pencil pointer" onclick="editDrp('txtIcon');"></i></span>
<div class="input-group-btn">
@@ -213,7 +211,7 @@
</div>
<!-- Vendor -->
<div class="form-group">
<div class="form-group" title="<?= lang('DevDetail_Vendor_hover');?>">
<label class="col-sm-3 control-label"><?= lang('DevDetail_MainInfo_Vendor');?></label>
<div class="col-sm-9">
<input class="form-control" id="txtVendor" type="text" value="--">
@@ -324,7 +322,7 @@
<!-- Network -->
<h4 class="bottom-border-aqua"><?= lang('DevDetail_MainInfo_Network_Title');?><span class="networkPageHelp"> <a target="_blank" href="https://github.com/jokob-sk/Pi.Alert/blob/main/docs/NETWORK_TREE.md"><i class="fa fa-circle-question"></i></a><span></h4>
<div class="form-group">
<div class="form-group" title="<?= lang('DevDetail_Network_Node_hover');?>">
<label class="col-sm-3 control-label"><?= lang('DevDetail_MainInfo_Network');?></label>
<div class="col-sm-9">
<div class="input-group">
@@ -341,12 +339,14 @@
</div>
</div>
</div>
<div class="form-group">
<div class="form-group" title="<?= lang('DevDetail_Network_Port_hover');?>">
<label class="col-sm-3 control-label"><?= lang('DevDetail_MainInfo_Network_Port');?></label>
<div class="col-sm-9">
<input class="form-control" id="txtNetworkPort" type="text" value="--">
</div>
</div>
</div>
</div>
@@ -428,7 +428,7 @@
</div>
<!-- Randomized MAC -->
<div class="form-group" >
<div class="form-group" title="<?= lang('RandomMAC_hover');?>" >
<label class="col-sm-5 control-label"><?= lang('DevDetail_EveandAl_RandomMAC');?>:</label>
<div class="col-sm-7" style="padding-top:6px;">
<span id="iconRandomMACinactive" data-toggle="tooltip" data-placement="right" title="Random MAC is Inactive">
@@ -441,10 +441,57 @@
<i class="fa fa-info-circle"></i> </a>
</div>
</div>
</div>
</div>
<div class="col-lg-4 col-sm-6 col-xs-12">
<h4 class="bottom-border-aqua"><?= lang('DevDetail_Run_Actions_Title');?></h4>
<div class="box-body form-horizontal">
<label class="col-sm-3 control-label">
<?= lang('Gen_Action');?>
</label>
<div class="col-sm-9">
<div class="input-group">
<input class="form-control" title="<?= lang('DevDetail_Run_Actions_Tooltip');?>" id="txtAction" type="text" value="--">
<span class="input-group-addon" title='<?= lang('Gen_Run');?>'><i class="fa fa-play pointer" onclick="askRunAction();"></i></span>
<div class="input-group-btn">
<button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<span class="fa fa-caret-down"></span>
</button>
<ul id="dropdownAction" class="dropdown-menu dropdown-menu-right">
</ul>
</div>
</div>
</div>
</div>
<h4 class="bottom-border-aqua"><?= lang('DevDetail_Copy_Device_Title');?></h4>
<div class="box-body form-horizontal">
<label class="col-sm-3 control-label">
<?= lang('Navigation_Devices');?>
</label>
<div class="col-sm-9">
<div class="input-group">
<input class="form-control" title="<?= lang('DevDetail_Copy_Device_Tooltip');?>" id="txtFromDevice" type="text" value="--">
<span class="input-group-addon" title='<?= lang('Gen_Copy');?>'><i class="fa fa-copy pointer" onclick="askCopyFromDevice();"></i></span>
<div class="input-group-btn">
<button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<span class="fa fa-caret-down"></span>
</button>
<ul id="dropdownDevices" class="dropdown-menu dropdown-menu-right">
</ul>
</div>
</div>
</div>
</div>
</div>
<!-- Buttons -->
<div class="col-xs-12">
<div class="pull-right">
@@ -480,116 +527,18 @@
</table>
</div>
<!-- tab page "Tools" ------------------------------------------------------------ -->
<!-- tab page 5 ------------------------------------------------------------ -->
<div class="tab-pane fade" id="panTools">
<div class="tab-pane fade" id="panNmap">
<?php
if ($_REQUEST['mac'] == 'Internet') {
?>
<h4 class="">Online Speedtest</h4>
<div style="width:100%; text-align: center; margin-bottom: 50px;">
<button type="button" id="speedtestcli" class="btn btn-primary pa-btn" style="margin: auto;" onclick="speedtestcli()">Start Speedtest</button>
</div>
<script>
function speedtestcli() {
$( "#scanoutput" ).empty();
$.ajax({
method: "POST",
url: "./php/server/speedtestcli.php",
beforeSend: function() { $('#scanoutput').addClass("ajax_scripts_loading"); },
complete: function() { $('#scanoutput').removeClass("ajax_scripts_loading"); },
success: function(data, textStatus) {
$("#scanoutput").html(data);
}
})
}
</script>
<?php
}
?>
<h4 class="">Nmap Scans</h4>
<div style="width:100%; text-align: center;">
<script>
setTimeout(function(){
document.getElementById('piamanualnmap_fast').innerHTML='<?= lang('DevDetail_Nmap_buttonFast');?> (' + document.getElementById('txtLastIP').value +')';
document.getElementById('piamanualnmap_normal').innerHTML='<?= lang('DevDetail_Nmap_buttonDefault');?> (' + document.getElementById('txtLastIP').value +')';
document.getElementById('piamanualnmap_detail').innerHTML='<?= lang('DevDetail_Nmap_buttonDetail');?> (' + document.getElementById('txtLastIP').value +')';
document.getElementById('piamanualnmap_skipdiscovery').innerHTML='<?= lang('DevDetail_Nmap_buttonSkipDiscovery');?> (' + document.getElementById('txtLastIP').value +')';
}, 2000);
</script>
<button type="button" id="piamanualnmap_fast" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(document.getElementById('txtLastIP').value, 'fast')">Loading...</button>
<button type="button" id="piamanualnmap_normal" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(document.getElementById('txtLastIP').value, 'normal')">Loading...</button>
<button type="button" id="piamanualnmap_detail" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(document.getElementById('txtLastIP').value, 'detail')">Loading...</button>
<button type="button" id="piamanualnmap_skipdiscovery" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(document.getElementById('txtLastIP').value, 'skipdiscovery')">Loading...</button>
<div style="text-align: left;">
<ul style="padding:20px;">
<li><?= lang('DevDetail_Nmap_buttonFast_text');?></li>
<li><?= lang('DevDetail_Nmap_buttonDefault_text');?></li>
<li><?= lang('DevDetail_Nmap_buttonDetail_text');?></li>
<li><?= lang('DevDetail_Nmap_buttonSkipDiscovery_text');?></li>
<li><a onclick="setCache('activeMaintenanceTab', 'tab_Logging_id')" href="/maintenance.php#tab_Logging"><?= lang('DevDetail_Nmap_resultsLink');?></a></li>
</ul>
</div>
</div>
<div id="scanoutput" style="margin-top: 30px;"></div>
<script>
function manualnmapscan(targetip, mode) {
$( "#scanoutput" ).empty();
$.ajax({
method: "POST",
url: "./php/server/nmap_scan.php",
data: { scan: targetip, mode: mode },
beforeSend: function() { $('#scanoutput').addClass("ajax_scripts_loading"); },
complete: function() { $('#scanoutput').removeClass("ajax_scripts_loading"); },
success: function(data, textStatus) {
console.log(data);
$("#scanoutput").html(data);
}
})
}
</script>
<h3><?= lang("DevDetail_Tab_NmapTableHeader");?></h3>
<div><?= lang("DevDetail_Tab_NmapTableText");?></div>
<table id="tableNmap" class="table table-bordered table-hover table-striped ">
<thead>
<tr>
<th>Index</th>
<th>Time</th>
<th>Port</th>
<th>State</th>
<th>Service</th>
<th>Extra (Notes)</th>
</tr>
</thead>
<!-- Comment out tbody when trying to implement better table with datatables here -->
<!-- IDEA: Show unmatched pholus entries? -->
<tbody id="tableNmapBody">
<tr id="tableNmapPlc" class="text-center"><td colspan='7'><span><?= lang("DevDetail_Tab_NmapEmpty"); ?></span></td></tr>
</tbody>
</table>
<?php
require 'deviceDetailsTools.php';
?>
</div>
<!-- ----------------------------------------------------------------------- -->
<!-- tab page 3 ------------------------------------------------------------ -->
<div class="tab-pane fade table-responsive" id="panPresence">
@@ -597,7 +546,7 @@
<div id="loading" style="display: none">
<div class="pa_semitransparent-panel"></div>
<div class="panel panel-default pa_spinner">
<table><td width="130px" align="middle">Loading...</td><td><i class="ion ion-ios-loop-strong fa-spin fa-2x fa-fw"></td></table>
<table><td width="130px" align="middle"><?= lang("DevDetail_Loading");?></td><td><i class="ion ion-ios-loop-strong fa-spin fa-2x fa-fw"></td></table>
</div>
</div>
@@ -621,35 +570,24 @@
<table id="tableEvents" class="table table-bordered table-hover table-striped ">
<thead>
<tr>
<th>Date</th>
<th>Event type</th>
<th>IP</th>
<th>Additional info</th>
<th><?= lang("DevDetail_Tab_EventsTableDate");?></th>
<th><?= lang("DevDetail_Tab_EventsTableEvent");?></th>
<th><?= lang("DevDetail_Tab_EventsTableIP");?></th>
<th><?= lang("DevDetail_Tab_EventsTableInfo");?></th>
</tr>
</thead>
</table>
</div>
<!-- tab page 6 ------------------------------------------------------------ -->
<div class="tab-pane fade table-responsive" id="panPholus">
<!-- Datatable Events -->
<table id="tablePholus" class="table table-bordered table-hover table-striped ">
<thead>
<tr>
<th>Index</th>
<th>Info</th>
<th>Time</th>
<th>IP</th>
<th>Entry Type</th>
<th>Value</th>
<th>Extra</th>
</tr>
</thead>
<!-- Comment out tbody when trying to implement better table with datatables here -->
<!-- IDEA: Show unmatched pholus entries? -->
<tbody id="tablePholusBody">
<tr id="tablePholusPlc" class="text-center"><td colspan='7'><span><?= lang("DevDetail_Tab_PholusEmpty"); ?></span></td></tr>
</tbody>
</table>
<!-- tab page 7 ------------------------------------------------------------ -->
<div class="tab-pane fade table-responsive" id="panPlugins">
<?php
// Include the other page
include 'pluginsCore.php';
?>
</div>
</div>
@@ -711,20 +649,6 @@ if ($ENABLED_DARKMODE === True) {
return params.mac
}
// ------------------------------------------------------------
function getDevicesListValue(idColumn, idValue, returnColumn)
{
// Read cache
devicesListAll = JSON.parse(getCache('devicesListAll'));
if(emptyArr.includes(devicesListAll) || emptyArr.includes(idValue))
{
return '';
}
return devicesListAll.find((item) => {return item[idColumn] == idValue})[returnColumn]
}
// ------------------------------------------------------------
function getDevicesList()
{
@@ -742,30 +666,9 @@ if ($ENABLED_DARKMODE === True) {
// ------------------------------------------------------------
mac = getMac() // can also be rowID!! not only mac
var devicesList = []; // this will contain a list the database row IDs of the devices ordered by the position displayed in the UI
var devicesListAll = []; // this will contain a list off all devices
$.get('php/server/devices.php?action=getDevicesList&status=all&forceDefaultOrder', function(data) {
rawData = JSON.parse (data)
devicesListAll = rawData["data"].map(item => { return {
"name":item[0],
"type":item[2],
"icon":item[3],
"mac":item[11],
"parentMac":item[14],
"rowid":item[13],
"status":item[10]
}})
setCache('devicesListAll', JSON.stringify(devicesListAll))
// Read parameters & Initialize components
main();
});
var devicesList = []; // this will contain a list the database row IDs of the devices ordered by the position displayed in the UI
main();
var pos = -1;
var parPeriod = 'Front_Details_Period';
@@ -784,13 +687,13 @@ if ($ENABLED_DARKMODE === True) {
// -----------------------------------------------------------------------------
function main () {
// Initialize MAC
var urlParams = new URLSearchParams(window.location.search);
if (urlParams.has ('mac') == true) {
mac = urlParams.get ('mac');
setCache("piaDeviceDetailsMac", mac); // set cookie
} else {
$('#pageTitle').html ('Device not found');
}
@@ -924,7 +827,9 @@ function initializeCombos () {
initializeCombo ( '#dropdownGroup', 'getGroups', 'txtGroup', true);
initializeCombo ( '#dropdownLocation', 'getLocations', 'txtLocation', true);
initializeCombo ( '#dropdownNetworkNodeMac', 'getNetworkNodes', 'txtNetworkNodeMac', false);
initializeCombo ( '#dropdownIcon', 'getIcons', 'txtIcon', false);
initializeCombo ( '#dropdownIcon', 'getIcons', 'txtIcon', false);
initializeCombo ( '#dropdownAction', 'getActions', 'txtAction', false);
initializeCombo ( '#dropdownDevices', 'getDevices', 'txtFromDevice', false);
// Initialize static combos
initializeComboSkipRepeated ();
@@ -1060,7 +965,7 @@ function initializeDatatables () {
// Processing
'processing' : true,
'language' : {
processing: '<table><td width="130px" align="middle">Loading...</td>'+
processing: '<table><td width="130px" align="middle"><?= lang("DevDetail_Loading");?></td>'+
'<td><i class="ion ion-ios-loop-strong fa-spin fa-2x fa-fw">'+
'</td></table>',
emptyTable: 'No data',
@@ -1099,7 +1004,7 @@ function initializeDatatables () {
// Processing
'processing' : true,
'language' : {
processing: '<table><td width="130px" align="middle">Loading...</td>'+
processing: '<table><td width="130px" align="middle"><?= lang("DevDetail_Loading");?></td>'+
'<td><i class="ion ion-ios-loop-strong fa-spin fa-2x fa-fw">'+
'</td></table>',
emptyTable: 'No data',
@@ -1168,6 +1073,16 @@ function initializeCalendar () {
duration : { month: 1 },
buttonText : '<?= lang('Presence_CalHead_month');?>',
columnHeaderFormat : 'D'
},
agendaWeek: {
buttonText : '<?= lang('Presence_CalHead_week');?>',
},
agendaDay: {
type : 'agenda',
duration : { day: 1 },
buttonText : '<?= lang('Presence_CalHead_day');?>',
slotLabelFormat : 'H',
slotDuration : '01:00:00'
}
},
@@ -1214,7 +1129,7 @@ function initializeCalendar () {
},
eventRender: function (event, element) {
$(element).tooltip({container: 'body', placement: 'right',
$(element).tooltip({container: 'body', placement: 'bottom',
title: event.tooltip});
// element.attr ('title', event.tooltip); // Alternative tooltip
},
@@ -1326,7 +1241,7 @@ function getDeviceData (readAllData=false) {
// Name
if (deviceData['dev_Owner'] == null || deviceData['dev_Owner'] == '' ||
(deviceData['dev_Name']).indexOf (deviceData['dev_Owner']) != -1 ) {
(deviceData['dev_Name'].toString()).indexOf (deviceData['dev_Owner']) != -1 ) {
$('#pageTitle').html (deviceData['dev_Name']);
} else {
$('#pageTitle').html (deviceData['dev_Name'] + ' ('+ deviceData['dev_Owner'] +')');
@@ -1384,9 +1299,12 @@ function getDeviceData (readAllData=false) {
$('#txtGroup').val (deviceData['dev_Group']);
$('#txtLocation').val (deviceData['dev_Location']);
$('#txtComments').val (deviceData['dev_Comments']);
$('#txtNetworkNodeMac').val (getDevicesListValue('mac', deviceData['dev_Network_Node_MAC_ADDR'] ,'name'));
$('#txtNetworkNodeMac').val ( getDeviceDataByMacAddress(deviceData['dev_Network_Node_MAC_ADDR'], "dev_Name")) ;
$('#txtNetworkNodeMac').attr ('data-mynodemac', deviceData['dev_Network_Node_MAC_ADDR']);
$('#txtNetworkPort').val (deviceData['dev_Network_Node_port']);
// disabling network node configuration if root Internet node
$('#txtNetworkNodeMac').prop('readonly', mac == 'Internet' );
$('#txtNetworkPort').prop('readonly', mac == 'Internet' );
$('#txtFirstConnection').val (deviceData['dev_FirstConnection']);
$('#txtLastConnection').val (deviceData['dev_LastConnection']);
@@ -1481,7 +1399,10 @@ function performSwitch(direction)
// get new mac from the devicesList. Don't change to the commented out line below, the mac query string in the URL isn't updated yet!
// mac = params.mac;
mac = devicesList[pos].mac.toString();
setCache("piaDeviceDetailsMac", mac);
getDeviceData (true);
@@ -1547,8 +1468,6 @@ function setDeviceData (direction='', refreshCallback='') {
});
}
// -----------------------------------------------------------------------------
function askSkipNotifications () {
// Check MAC
@@ -1601,6 +1520,62 @@ function deleteDeviceEvents () {
$('#panDetails :input').attr('disabled', true);
}
// -----------------------------------------------------------------------------
function askCopyFromDevice() {
// Ask
showModalWarning('<?= lang('BackDevDetail_Copy_Title');?>', '<?= lang('BackDevDetail_Copy_Ask');?>',
'<?= lang('Gen_Cancel');?>', '<?= lang('Gen_Run');?>', 'copyFromDevice');
}
function copyFromDevice() {
// Execute
$.get('php/server/devices.php?action=copyFromDevice&'
+ '&macTo=' + $('#txtMAC').val()
+ '&macFrom=' + $('#txtFromDevice').val()
, function(msg) {
showMessage (msg);
setTimeout(function() {
window.location.reload();
}, 2000);
});
}
// -----------------------------------------------------------------------------
function askRunAction() {
// Ask
showModalWarning('<?= lang('BackDevDetail_Actions_Title_Run');?>', '<?= lang('BackDevDetail_Actions_Ask_Run');?>',
'<?= lang('Gen_Cancel');?>', '<?= lang('Gen_Run');?>', 'runAction');
}
function runAction() {
action = $('#txtAction').val();
switch(action)
{
case 'wake-on-lan':
wakeonlan();
break;
default:
showMessage (`<?= lang('BackDevDetail_Actions_Not_Registered');?> ${action} `);
break;
}
}
function wakeonlan() {
// Execute
$.get('php/server/devices.php?action=wakeonlan&'
+ '&mac=' + $('#txtMAC').val()
+ '&ip=' + $('#txtLastIP').val()
, function(msg) {
showMessage (msg);
});
}
// -----------------------------------------------------------------------------
// Overwrite all devices of the same type with the currently selected icon
function askOverwriteIconType () {
@@ -1623,7 +1598,7 @@ function overwriteIconType () {
var icon = $('#txtIcon').val();
// Delete device events
// Mass update icons
$.get('php/server/devices.php?action=overwriteIconType&mac='+ mac + '&icon=' + icon, function(msg) {
showMessage (msg);
});
@@ -1729,7 +1704,7 @@ function setTextValue (textElement, textValue) {
if(textElement == "txtNetworkNodeMac")
{
$('#'+textElement).attr ('data-mynodemac', textValue);
$('#'+textElement).val (getDevicesListValue('mac', textValue ,'name') );
$('#'+textElement).val (getDeviceDataByMacAddress(textValue, "dev_Name"));
} else
{
$('#'+textElement).attr ('data-myvalue', textValue);
@@ -1758,102 +1733,14 @@ function initializeTabsNew () {
// events on tab change
$('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
var target = $(e.target).attr("href") // activated tab
// load tab data only when needed (tab change)
if(target == "#panPholus")
{
loadPholus();
}
if(target == "#panNmap")
{
loadNmap();
}
// if(target == "#panTools")
// {
// // loadTools();
// }
});
}
// -----------------------------------------------------------------------------
function loadNmap()
{
$(".deviceSpecific").remove(); // remove any previous data listed in teh table
$.get('php/server/devices.php?action=getNmap&mac='+ mac, function(data) {
data = sanitize(data);
if(data != "false" && $.trim(data) != [])
{
var listData = JSON.parse(data);
var order = 1;
tableRows = "";
// for each item
listData.forEach(function (item, index) {
tableRows += '<tr class="deviceSpecific">\
<td>'+item.Index+'</td>\
<td>'+item.Time+'</td>\
<td>\
<a href="http://'+item.IP+':'+item.Port.split('/')[0]+'" target="_blank">'+item.Port+'</a>\
<a href="https://'+item.IP+':'+item.Port.split('/')[0]+'" target="_blank">\
<span style="padding-left:5px"><i class="fa fa-lock "></i></a></span>\
</td>\
<td>'+item.State+'</td>\
<td>'+item.Service+'</td>\
<td>\
<div class="input-group">\
<input class="form-control" id="port_'+item.Index+'" type="text" value="'+item.Extra+'">\
<span class="input-group-addon"><i class="fa fa-save pointer" onclick="saveNmapPort('+item.Index+')"></i></span>\
</div>\
</td>\
</tr>';
});
$("#tableNmapBody").html($("#tableNmapBody").html()+tableRows);
$("#tableNmapPlc").hide();
}
else
{
// console.log("else")
$("#tableNmapPlc").show();
$(".deviceSpecific").remove();
}
});
}
// -----------------------------------------------------------------------------
function loadPholus()
{
$(".deviceSpecific").remove(); // remove any previous data listed in teh table
$.get('php/server/devices.php?action=getPholus&mac='+ mac, function(data) {
data = sanitize(data);
if(data != "false" && $.trim(data) != [])
{
var listData = JSON.parse(data);
var order = 1;
tableRows = "";
// for each item
listData.forEach(function (item, index) {
tableRows += '<tr class="deviceSpecific"><td>'+item.Index+'</td><td>'+item.Info+'</td><td>'+item.Time+'</td><td>'+item.IP_v4_or_v6+'</td><td>'+item.Record_Type+'</td><td>'+item.Value+'</td><td>'+ item.Extra +'</td></tr>';
});
$("#tablePholusBody").html($("#tablePholusBody").html()+tableRows);
$("#tablePholusPlc").hide();
}
else
{
// console.log("else")
$("#tablePholusPlc").show();
$(".deviceSpecific").remove();
}
});
}
//-----------------------------------------------------------------------------------
@@ -1887,7 +1774,7 @@ function initTable(tableId, mac){
// Processing
'processing' : true,
'language' : {
processing: '<table><td width="130px" align="middle">Loading...</td>'+
processing: '<table><td width="130px" align="middle"><?= lang("DevDetail_Loading");?></td>'+
'<td><i class="ion ion-ios-loop-strong fa-spin fa-2x fa-fw">'+
'</td></table>',
emptyTable: 'No data',
@@ -1924,24 +1811,8 @@ window.onload = function async()
function reloadTab()
{
// tab loaded without switching
if(getCache("activeDevicesTab") == "tabPholus")
{
loadPholus();
}
if(getCache("activeDevicesTab") == "tabNmap")
{
loadNmap();
}
// tab loaded without switching
}
//-----------------------------------------------------------------------------------
function saveNmapPort(index)
{
saveData('saveNmapPort', index, $('#port_'+index).val())
}
</script>

214
front/deviceDetailsTools.php Executable file
View File

@@ -0,0 +1,214 @@
<script>
deviceIP = getDeviceDataByMacAddress("<?php echo $_REQUEST["mac"]?>", "dev_LastIP")
</script>
<?php if ($_REQUEST["mac"] == "Internet") { ?>
<h4 class=""><i class="fa-solid fa-globe"></i>
<?= lang("DevDetail_Tab_Tools_Internet_Info_Title") ?>
</h4>
<h5 class="">
<?= lang("DevDetail_Tab_Tools_Internet_Info_Description") ?>
</h5>
<br>
<div style="width:100%; text-align: center; margin-bottom: 50px;">
<button type="button" id="internetinfo" class="btn btn-primary pa-btn" style="margin: auto;" onclick="internetinfo()">
<?= lang("DevDetail_Tab_Tools_Internet_Info_Start") ?></button>
<br>
<div id="internetinfooutput" style="margin-top: 10px;"></div>
</div>
<?php } ?>
<?php if ($_REQUEST["mac"] == "Internet") { ?>
<h4 class=""><i class="fa-solid fa-gauge-high"></i>
<?= lang("DevDetail_Tab_Tools_Speedtest_Title") ?>
</h4>
<h5 class="">
<?= lang("DevDetail_Tab_Tools_Speedtest_Description") ?>
</h5>
<br>
<div style="width:100%; text-align: center; margin-bottom: 50px;">
<button type="button" id="speedtestcli" class="btn btn-primary pa-btn" style="margin: auto;" onclick="speedtestcli()">
<?= lang("DevDetail_Tab_Tools_Speedtest_Start") ?></button>
<br>
<div id="speedtestoutput" style="margin-top: 10px;"></div>
</div>
<?php } ?>
<?php if ($_REQUEST["mac"] != "Internet") { ?>
<h4 class=""><i class="fa-solid fa-route"></i>
<?= lang("DevDetail_Tab_Tools_Traceroute_Title") ?>
</h4>
<h5 class="">
<?= lang("DevDetail_Tab_Tools_Traceroute_Description") ?>
</h5>
<div style="width:100%; text-align: center; margin-bottom: 50px;">
<button type="button" id="traceroute" class="btn btn-primary pa-btn" style="margin: auto;" onclick="traceroute()">
<?= lang("DevDetail_Tab_Tools_Traceroute_Start") ?>
</button>
<br>
<div id="tracerouteoutput" style="margin-top: 10px;"></div>
</div>
<?php } ?>
<?php if ($_REQUEST["mac"] != "Internet") { ?>
<h4 class=""><i class="fa-solid fa-magnifying-glass"></i>
<?= lang("DevDetail_Tab_Tools_Nslookup_Title") ?>
</h4>
<h5 class="">
<?= lang("DevDetail_Tab_Tools_Nslookup_Description") ?>
</h5>
<div style="width:100%; text-align: center; margin-bottom: 50px;">
<button type="button" id="nslookup" class="btn btn-primary pa-btn" style="margin: auto;" onclick="nslookup()">
<?= lang("DevDetail_Tab_Tools_Nslookup_Start") ?>
</button>
<br>
<div id="nslookupoutput" style="margin-top: 10px;"></div>
</div>
<?php } ?>
<h4 class=""><i class="fa-solid fa-ethernet"></i>
<?= lang("DevDetail_Nmap_Scans") ?>
</h4>
<div style="width:100%; text-align: center;">
<div>
<?= lang("DevDetail_Nmap_Scans_desc") ?>
</div>
<button type="button" id="piamanualnmap_fast" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(deviceIP, 'fast')">
<?= lang("DevDetail_Loading") ?>
</button>
<button type="button" id="piamanualnmap_normal" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(deviceIP, 'normal')">
<?= lang("DevDetail_Loading") ?>
</button>
<button type="button" id="piamanualnmap_detail" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(deviceIP, 'detail')">
<?= lang("DevDetail_Loading") ?>
</button>
<button type="button" id="piamanualnmap_skipdiscovery" class="btn btn-primary pa-btn" style="margin-bottom: 20px; margin-left: 10px; margin-right: 10px;" onclick="manualnmapscan(deviceIP, 'skipdiscovery')">
<?= lang("DevDetail_Loading") ?>
</button>
<div style="text-align: left;">
<ul style="padding:20px;">
<li>
<?= lang("DevDetail_Nmap_buttonFast_text") ?>
</li>
<li>
<?= lang("DevDetail_Nmap_buttonDefault_text") ?>
</li>
<li>
<?= lang("DevDetail_Nmap_buttonDetail_text") ?>
</li>
<li>
<?= lang("DevDetail_Nmap_buttonSkipDiscovery_text") ?>
</li>
<li>
<a onclick="setCache('activeMaintenanceTab', 'tab_Logging_id')" href="/maintenance.php#tab_Logging">
<?= lang("DevDetail_Nmap_resultsLink") ?>
</a>
</li>
</ul>
</div>
</div>
<div id="scanoutput" style="margin-top: 30px;"></div>
<script>
// ----------------------------------------------------------------
function manualnmapscan(targetip, mode) {
$( "#scanoutput" ).empty();
$.ajax({
method: "POST",
url: "./php/server/nmap_scan.php",
data: { scan: targetip, mode: mode },
beforeSend: function() { $('#scanoutput').addClass("ajax_scripts_loading"); },
complete: function() { $('#scanoutput').removeClass("ajax_scripts_loading"); },
success: function(data, textStatus) {
console.log(data);
$("#scanoutput").html(data);
}
})
}
// ----------------------------------------------------------------
function speedtestcli() {
$( "#speedtestoutput" ).empty();
$.ajax({
method: "POST",
url: "./php/server/speedtestcli.php",
beforeSend: function() { $('#speedtestoutput').addClass("ajax_scripts_loading"); },
complete: function() { $('#speedtestoutput').removeClass("ajax_scripts_loading"); },
success: function(data, textStatus) {
$("#speedtestoutput").html(data);
}
})
}
// ----------------------------------------------------------------
function traceroute() {
$( "#tracerouteoutput" ).empty();
$.ajax({
method: "GET",
url: "./php/server/traceroute.php?action=get&ip=" + deviceIP + "",
beforeSend: function() { $('#tracerouteoutput').addClass("ajax_scripts_loading"); },
complete: function() { $('#tracerouteoutput').removeClass("ajax_scripts_loading"); },
success: function(data, textStatus) {
$("#tracerouteoutput").html(data);
}
})
}
// ----------------------------------------------------------------
function nslookup() {
$( "#nslookupoutput" ).empty();
$.ajax({
method: "GET",
url: "./php/server/nslookup.php?action=get&ip=" + deviceIP + "",
beforeSend: function() { $('#nslookupoutput').addClass("ajax_scripts_loading"); },
complete: function() { $('#nslookupoutput').removeClass("ajax_scripts_loading"); },
success: function(data, textStatus) {
$("#nslookupoutput").html(data);
}
})
}
// ----------------------------------------------------------------
setTimeout(function(){
document.getElementById('piamanualnmap_fast').innerHTML='<?= lang(
"DevDetail_Nmap_buttonFast"
) ?> (' + deviceIP +')';
document.getElementById('piamanualnmap_normal').innerHTML='<?= lang(
"DevDetail_Nmap_buttonDefault"
) ?> (' + deviceIP +')';
document.getElementById('piamanualnmap_detail').innerHTML='<?= lang(
"DevDetail_Nmap_buttonDetail"
) ?> (' + deviceIP +')';
document.getElementById('piamanualnmap_skipdiscovery').innerHTML='<?= lang(
"DevDetail_Nmap_buttonSkipDiscovery"
) ?> (' + deviceIP +')';
}, 2000);
// ----------------------------------------------------------------
function internetinfo() {
$( "#internetinfooutput" ).empty();
$.ajax({
method: "POST",
url: "./php/server/internetinfo.php",
beforeSend: function() { $('#internetinfooutput').addClass("ajax_scripts_loading"); },
complete: function() { $('#internetinfooutput').removeClass("ajax_scripts_loading"); },
success: function(data, textStatus) {
$("#internetinfooutput").html(data);
}
})
}
</script>

View File

@@ -1,11 +1,16 @@
<!-- ---------------------------------------------------------------------------
# Pi.Alert
# Open Source Network Guard / WIFI & LAN intrusion detector
#
# devices.php - Front module. Devices list page
#-------------------------------------------------------------------------------
# Puche 2021 / 2022+ jokob jokob@duck.com GNU GPLv3
#--------------------------------------------------------------------------- -->
<!--
#---------------------------------------------------------------------------------#
# Pi.Alert #
# Open Source Network Guard / WIFI & LAN intrusion detector #
# #
# devices.php - Front module. Devices list page #
#---------------------------------------------------------------------------------#
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3 #
# jokob-sk 2022 jokob.sk@gmail.com GNU GPLv3 #
# leiweibau 2022 https://github.com/leiweibau GNU GPLv3 #
# cvc90 2023 https://github.com/cvc90 GNU GPLv3 #
#---------------------------------------------------------------------------------#
-->
<?php
@@ -26,7 +31,8 @@
<!-- Content header--------------------------------------------------------- -->
<section class="content-header">
<h1 id="pageTitle">
<?= lang('Device_Title');?>
<i class="fa fa-laptop"></i>
<?= lang('Device_Title');?>
</h1>
</section>
@@ -192,8 +198,8 @@
var tableRows = 10;
var tableOrder = [[3,'desc'], [0,'asc']];
var columnsStr = '[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]';
var tableColumnOrder = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17] ;
var columnsStr = '[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18]';
var tableColumnOrder = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18];
var tableColumnVisible = tableColumnOrder;
// Read parameters & Initialize components
@@ -225,6 +231,8 @@ function main () {
// save the columns order in the Devices page
tableColumnOrder = numberArrayFromString(data);
//initialize the table headers in the correct order
var headersDefaultOrder = [ '<?= lang('Device_TableHead_Name');?>',
'<?= lang('Device_TableHead_Owner');?>',
@@ -308,21 +316,13 @@ function mapIndx(oldIndex)
function initializeDatatable () {
for(i = 0; i < tableColumnOrder.length; i++)
{
// hide this column if not in the tableColumnVisible variable
// hide this column if not in the tableColumnVisible variable (we need to keep the MAC address (index 11) for functionality reasons)
if(tableColumnVisible.includes(tableColumnOrder[i]) == false)
{
tableColumnHide.push(mapIndx(tableColumnOrder[i]));
}
}
// If the device has a small width (mobile) only show name, ip, and status columns.
if (window.screen.width < 400) {
tableColumnHide = [11,12,13,1,2,4,5,6,7,9];
}
// else {
// // var tableColumnHide = [11, 12, 13];
// tableColumnHide = [11, 12, 13];
// };
var table=
$('#tableDevices').DataTable({
'paging' : true,
@@ -348,7 +348,7 @@ function initializeDatatable () {
// Device Name
{targets: [mapIndx(0)],
'createdCell': function (td, cellData, rowData, row, col) {
'createdCell': function (td, cellData, rowData, row, col) {
$(td).html ('<b class="anonymizeDev"><a href="deviceDetails.php?mac='+ rowData[mapIndx(11)] +'" class="">'+ cellData +'</a></b>');
} },
@@ -426,7 +426,7 @@ function initializeDatatable () {
default: color='aqua'; break;
};
$(td).html ('<a href="deviceDetails.php?mac='+ rowData[10] +'" class="badge bg-'+ color +'">'+ cellData.replace('-', '') +'</a>');
$(td).html ('<a href="deviceDetails.php?mac='+ rowData[mapIndx(11)] +'" class="badge bg-'+ color +'">'+ cellData.replace('-', '') +'</a>');
} },
],

22
front/donations.php Executable file
View File

@@ -0,0 +1,22 @@
<?php
require 'php/templates/header.php';
?>
<script src="js/pialert_common.js"></script>
<div id="settingsPage" class="content-wrapper">
<p>
<a target="_blank" href="https://github.com/sponsors/jokob-sk">
<img alt="Sponsor Me on GitHub" src="https://i.imgur.com/X6p5ACK.png" width="150px">
</a>
<a target="_blank" href="https://www.buymeacoffee.com/jokobsk">
<img alt="Buy Me A Coffee" src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" width="117px" height="30px">
</a>
<a target="_blank" href="https://www.patreon.com/user?u=84385063">
<img alt="Support me on patreon" src="https://upload.wikimedia.org/wikipedia/commons/thumb/8/82/Patreon_logo_with_wordmark.svg/512px-Patreon_logo_with_wordmark.svg.png" width="117px">
</a>
</p>
<p>
BTC: 1N8tupjeCK12qRVU2XrV17WvKK7LCawyZM
</p>
</div>

View File

@@ -1,14 +1,19 @@
<!-- ---------------------------------------------------------------------------
# Pi.Alert
# Open Source Network Guard / WIFI & LAN intrusion detector
#
# events.php - Front module. Events page
#-------------------------------------------------------------------------------
# Puche 2021 / 2022+ jokob jokob@duck.com GNU GPLv3
#--------------------------------------------------------------------------- -->
<!--
#---------------------------------------------------------------------------------#
# Pi.Alert #
# Open Source Network Guard / WIFI & LAN intrusion detector #
# #
# events.php - Front module. Events page #
#---------------------------------------------------------------------------------#
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3 #
# jokob-sk 2022 jokob.sk@gmail.com GNU GPLv3 #
# leiweibau 2022 https://github.com/leiweibau GNU GPLv3 #
# cvc90 2023 https://github.com/cvc90 GNU GPLv3 #
#---------------------------------------------------------------------------------#
-->
<?php
require 'php/templates/header.php';
require 'php/templates/header.php';
?>
<!-- Page ------------------------------------------------------------------ -->
@@ -17,7 +22,8 @@
<!-- Content header--------------------------------------------------------- -->
<section class="content-header">
<h1 id="pageTitle">
<?= lang('Events_Title');?>
<i class="fa fa-bolt"></i>
<?= lang('Events_Title');?>
</h1>
<!-- period selector -->
@@ -251,7 +257,7 @@ function initializeDatatable () {
// Processing
'processing' : true,
'language' : {
processing: '<table><td width="130px" align="middle">Loading...</td><td><i class="ion ion-ios-loop-strong fa-spin fa-2x fa-fw"></td></table>',
processing: '<table><td width="130px" align="middle"><?= lang("Events_Loading");?></td><td><i class="ion ion-ios-loop-strong fa-spin fa-2x fa-fw"></td></table>',
emptyTable: 'No data',
"lengthMenu": "<?= lang('Events_Tablelenght');?>",
"search": "<?= lang('Events_Searchbox');?>: ",

31
front/flows.php Executable file
View File

@@ -0,0 +1,31 @@
<?php
require 'php/templates/header.php';
require 'php/templates/notification.php';
?>
<script src="js/pialert_common.js"></script>
<!-- Page ------------------------------------------------------------------ -->
<div class="content-wrapper">
<!-- Content header--------------------------------------------------------- -->
<section class="content-header">
<h1 id="pageTitle">
<i class="fa fa-fw fa-plug"></i> <?= lang('Navigation_Flows');?>
<span class="pageHelp"> <a target="_blank" href="https://github.com/jokob-sk/Pi.Alert/tree/main/front/plugins"><i class="fa fa-circle-question"></i></a><span>
</h1>
</section>
<?php
// require 'pluginsCore.php';
?>
</div>
<?php
require 'php/templates/footer.php';
?>

View File

@@ -8,13 +8,17 @@
<section class="content-header">
<?php require 'php/templates/notification.php'; ?>
<h1 id="pageTitle">
<?= lang('HelpFAQ_Title');?>
<i class="fa fa-question"></i>
<?= lang('HelpFAQ_Title');?>
</h1>
</section>
<!-- Main content ---------------------------------------------------------- -->
<section class="content">
<h4><?= lang('HelpFAQ_Cat_General');?></h4>
<h4>
<i class="fa fa-question"></i>
<?= lang('HelpFAQ_Cat_General');?>
</h4>
<div class="panel-group" id="accordion_gen">
<div class="panel panel-default">
@@ -89,10 +93,26 @@
<?= lang('HelpFAQ_Cat_General_103_text');?>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#accordion_net" href="#collapse601">
<?= lang('HelpFAQ_Cat_Network_601_head');?></a>
</h4>
</div>
<div id="collapse601" class="panel-collapse collapse" style="font-size: 16px;">
<div class="panel-body">
<?= lang('HelpFAQ_Cat_Network_601_text');?>
</div>
</div>
</div>
</div>
</div>
<h4><?= lang('Navigation_Devices');?></h4>
<h4>
<i class="fa fa-laptop"></i>
<?= lang('Navigation_Devices');?>
</h4>
<div class="panel-group" id="accordion_dev">
<div class="panel panel-default">
<div class="panel-heading">
@@ -110,7 +130,8 @@
</div>
<h4><?= lang('HelpFAQ_Cat_Detail');?></h4>
<h4>
<i class="fa fa-info-circle"></i><?= lang('HelpFAQ_Cat_Detail');?></h4>
<div class="panel-group" id="accordion_det">
<div class="panel panel-default">
<div class="panel-heading">
@@ -164,10 +185,14 @@
<?= lang('HelpFAQ_Cat_Detail_303_text');?>
</div>
</div>
</div>
</div>
<h4><?= lang('Navigation_Presence');?></h4>
<h4>
<i class="fa fa-calendar"></i>
<?= lang('Navigation_Presence');?>
</h4>
<div class="panel-group" id="accordion_pre">
<div class="panel panel-default">
<div class="panel-heading">
@@ -197,7 +222,8 @@
</div>
</div>
<h4><?= lang('Navigation_Network');?></h4>
<h4>
<i class="fa fa-network-wired"></i><?= lang('Navigation_Network');?></h4>
<div class="panel-group" id="accordion_net">
<div class="panel panel-default">
<div class="panel-heading">
@@ -211,10 +237,11 @@
<?= lang('HelpFAQ_Cat_Network_600_text');?>
</div>
</div>
</div>
</div>
</section>
<br>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->

View File

@@ -1,29 +1,43 @@
<!-- Pi.Alert CSS -->
<link rel="stylesheet" href="css/pialert.css">
<?php
require dirname(__FILE__).'/php/server/init.php';
require 'php/templates/security.php';
if ($Pia_WebProtection != 'true')
{
header('Location: devices.php');
$_SESSION["login"] = 1;
exit;
}
{
header('Location: devices.php');
$_SESSION["login"] = 1;
exit;
}
// Logout
if (isset ($_GET["action"]) && $_GET["action"] == 'logout')
{
setcookie("PiAlert_SaveLogin", '', time()+1); // reset cookie
$_SESSION["login"] = 0;
header('Location: index.php');
exit;
}
// Password without Cookie check -> pass and set initial cookie
if (isset ($_POST["loginpassword"]) && $Pia_Password == hash('sha256',$_POST["loginpassword"]))
{
header('Location: devices.php');
$_SESSION["login"] = 1;
if (isset($_POST['PWRemember'])) {setcookie("PiAlert_SaveLogin", hash('sha256',$_POST["loginpassword"]), time()+604800);}
}
{
header('Location: devices.php');
$_SESSION["login"] = 1;
if (isset($_POST['PWRemember'])) {setcookie("PiAlert_SaveLogin", hash('sha256',$_POST["loginpassword"]), time()+604800);}
}
// active Session or valid cookie (cookie not extends)
if (( isset ($_SESSION["login"]) && ($_SESSION["login"] == 1)) || (isset ($_COOKIE["PiAlert_SaveLogin"]) && $Pia_Password == $_COOKIE["PiAlert_SaveLogin"]))
{
header('Location: devices.php');
$_SESSION["login"] = 1;
if (isset($_POST['PWRemember'])) {setcookie("PiAlert_SaveLogin", hash('sha256',$_POST["loginpassword"]), time()+604800);}
}
{
header('Location: devices.php');
$_SESSION["login"] = 1;
if (isset($_POST['PWRemember'])) {setcookie("PiAlert_SaveLogin", hash('sha256',$_POST["loginpassword"]), time()+604800);}
}
$login_headline = lang('Login_Toggle_Info_headline');
$login_info = "";
@@ -33,22 +47,22 @@ $login_icon = 'fa-info';
// no active session, cookie not checked
if (isset ($_SESSION["login"]) == FALSE || $_SESSION["login"] != 1)
{
if ($Pia_Password == '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92')
{
if ($Pia_Password == '8d969eef6ecad3c29a3a629280e686cf0c3f5d5a86aff3ca12020c923adc6c92')
{
$login_info = lang('Login_Default_PWD');
$login_mode = 'danger';
$login_display_mode = 'display: block;';
$login_headline = lang('Login_Toggle_Alert_headline');
$login_icon = 'fa-ban';
}
else
{
$login_mode = 'info';
$login_display_mode = 'display: none;';
$login_headline = lang('Login_Toggle_Info_headline');
$login_icon = 'fa-info';
}
$login_info = lang('Login_Default_PWD');
$login_mode = 'danger';
$login_display_mode = 'display: block;';
$login_headline = lang('Login_Toggle_Alert_headline');
$login_icon = 'fa-ban';
}
else
{
$login_mode = 'info';
$login_display_mode = 'display: none;';
$login_headline = lang('Login_Toggle_Info_headline');
$login_icon = 'fa-info';
}
}
// ##################################################
@@ -89,7 +103,7 @@ if ($ENABLED_DARKMODE === True) {
<link rel="stylesheet" href="/front/css/offline-font.css">
</head>
<body class="hold-transition login-page">
<div class="login-box">
<div class="login-box login-custom">
<div class="login-logo">
<a href="/index2.php">Pi.<b>Alert</b></a>
</div>
@@ -134,7 +148,7 @@ if ($ENABLED_DARKMODE === True) {
<button type="button" class="close" data-dismiss="alert" aria-hidden="true"><3E></button>
<h4><i class="icon fa <?php echo $login_icon;?>"></i><?php echo $login_headline;?></h4>
<p><?php echo $login_info;?></p>
<p><?= lang('Login_Psw_run');?><br><span style="border: solid 1px yellow; padding: 2px;">./reset_password.sh <?= lang('Login_Psw_new');?></span><br><?= lang('Login_Psw_folder');?></p>
<p><?= lang('Login_Psw_run');?><br><span style="border: solid 1px yellow; padding: 2px;"> /home/pi/pialert/back/pialert-cli set_password <?= lang('Login_Psw_new');?></span><br><?= lang('Login_Psw_folder');?></p>
</div>
</div>

View File

@@ -35,19 +35,26 @@ function handleVersion(){
function getVersion()
{
release_timestamp = getCookie("release_timestamp")
release_timestamp = getCookie("release_timestamp")
release_timestampNum = Number(release_timestamp)
// logging
console.log(`Latest release in cookie: ${new Date(release_timestampNum*1000)}`)
// no cached value available
if(release_timestamp == "")
{
// get parameter value
$.get('https://api.github.com/repos/jokob-sk/Pi.Alert/releases', function(data) {
var releases = data;
$.get('https://api.github.com/repos/jokob-sk/Pi.Alert/releases').done(function(response) {
// Handle successful response
var releases = response;
console.log(response)
if(releases.length > 0)
{
release_datetime = releases[0].published_at;
release_datetime = releases[0].published_at; // get latest release
release_timestamp = new Date(release_datetime).getTime() / 1000;
// cache value
@@ -55,6 +62,11 @@ function handleVersion(){
handleVersion();
}
}).fail(function(jqXHR, textStatus, errorThrown) {
$('.version').append(`<p>Github API: ${errorThrown} (${jqXHR.status}), ${jqXHR.responseJSON.message}</p>`)
});
} else
{

View File

@@ -11,6 +11,9 @@
var timerRefreshData = ''
var modalCallbackFunction = '';
var emptyArr = ['undefined', "", undefined, null, 'null'];
var UI_LANG = "English";
var settingsJSON = {}
// urlParams = new Proxy(new URLSearchParams(window.location.search), {
// get: (searchParams, prop) => searchParams.get(prop.toString()),
@@ -20,13 +23,13 @@ var emptyArr = ['undefined', "", undefined, null, 'null'];
// -----------------------------------------------------------------------------
// Simple session cache withe expiration managed via cookies
// -----------------------------------------------------------------------------
function getCache(key)
function getCache(key, noCookie = false)
{
// check cache
if(sessionStorage.getItem(key))
{
// check if not expired
if(getCookie(key + '_session_expiry') != "")
if(noCookie || getCookie(key + '_session_expiry') != "")
{
return sessionStorage.getItem(key);
}
@@ -38,8 +41,13 @@ function getCache(key)
// -----------------------------------------------------------------------------
function setCache(key, data, expirationMinutes='')
{
sessionStorage.setItem(key, data);
setCookie (key + '_session_expiry', 'OK', expirationMinutes='')
sessionStorage.setItem(key, data);
// create cookie if expiration set to handle refresh of data
if (expirationMinutes != '')
{
setCookie (key + '_session_expiry', 'OK', expirationMinutes='')
}
}
@@ -96,6 +104,108 @@ function deleteAllCookies() {
}
// -----------------------------------------------------------------------------
// Get settings from the .json file generated by the python backend
// -----------------------------------------------------------------------------
function cacheSettings()
{
$.get('api/table_settings.json', function(res) {
settingsJSON = res;
data = settingsJSON["data"];
data.forEach((set) => {
setCache(`pia_set_${set.Code_Name}`, set.Value)
});
})
}
function getSetting (key) {
result = getCache(`pia_set_${key}`, true);
if (result == "")
{
console.log(`Setting with key "${key}" not found`)
}
return result;
}
// -----------------------------------------------------------------------------
// Get language string
// -----------------------------------------------------------------------------
function cacheStrings()
{
// handle core strings and translations
var allLanguages = ["en_us","es_es","de_de"]; // needs to be same as in lang.php
allLanguages.forEach(function (language_code) {
$.get(`php/templates/language/${language_code}.json`, function(res) {
Object.entries(res).forEach(([language, translations]) => {
Object.entries(translations).forEach(([key, value]) => {
// store as key - value pairs in session
setCache(`pia_lang_${key}_${language}`, value)
});
});
})
});
// handle strings and translations from plugins
$.get('api/table_plugins_language_strings.json', function(res) {
data = res["data"];
data.forEach((langString) => {
setCache(`pia_lang_${langString.String_Key}_${langString.Language_Code}`, langString.String_Value)
});
})
}
function getString (key) {
UI_LANG = getSetting("UI_LANG");
lang_code = 'en_us';
switch(UI_LANG)
{
case 'English':
lang_code = 'en_us';
break;
case 'Spanish':
lang_code = 'es_es';
break;
case 'German':
lang_code = 'de_de';
break;
}
result = getCache(`pia_lang_${key}_${lang_code}`, true);
if(isEmpty(result))
{
console.log(`pia_lang_${key}_${lang_code}`)
console.log(key)
result = getCache(`pia_lang_${key}_en_us`, true);
console.log(result)
}
return result;
}
// -----------------------------------------------------------------------------
// Modal dialog handling
// -----------------------------------------------------------------------------
@@ -200,6 +310,13 @@ function showMessage (textMessage="") {
// -----------------------------------------------------------------------------
// General utilities
// -----------------------------------------------------------------------------
// check if JSON object
function isJsonObject(value) {
return typeof value === 'object' && value !== null && !Array.isArray(value);
}
// remove unnecessary lines from the result
function sanitize(data)
{
@@ -345,4 +462,87 @@ function openInNewTab (url) {
}
// -----------------------------------------------------------------------------
function navigateToDeviceWithIp (ip) {
$.get('api/table_devices.json', function(res) {
devices = res["data"];
mac = ""
$.each(devices, function(index, obj) {
if(obj.dev_LastIP.trim() == ip.trim())
{
mac = obj.dev_MAC;
window.open(window.location.origin +'/deviceDetails.php?mac=' + mac , "_blank");
}
});
});
}
// -----------------------------------------------------------------------------
function getNameByMacAddress(macAddress) {
return getDeviceDataByMacAddress(macAddress, "dev_Name")
}
// -----------------------------------------------------------------------------
//
function getDeviceDataByMacAddress(macAddress, dbColumn) {
const sessionDataKey = 'devicesListAll_JSON';
const sessionData = sessionStorage.getItem(sessionDataKey);
if (!sessionData) {
console.log(`Session variable "${sessionDataKey}" not found.`);
return "Unknown";
}
const devices = JSON.parse(sessionData);
for (const device of devices) {
if (device["dev_MAC"].toLowerCase() === macAddress.toLowerCase()) {
return device[dbColumn];
}
}
return "Unknown"; // Return a default value if MAC address is not found
}
// -----------------------------------------------------------------------------
function initDeviceListAll_JSON()
{
$.get('api/table_devices.json', function(data) {
console.log(data)
devicesListAll_JSON = data["data"]
setCache('devicesListAll_JSON', JSON.stringify(devicesListAll_JSON))
});
}
var devicesListAll_JSON = []; // this will contain a list off all devices
// -----------------------------------------------------------------------------
function isEmpty(value)
{
return emptyArr.includes(value)
}
// initialize
cacheSettings()
cacheStrings()
initDeviceListAll_JSON()
console.log("init pialert_common.js")

View File

@@ -1,15 +1,15 @@
<?php
//------------------------------------------------------------------------------
// Pi.Alert
// Open Source Network Guard / WIFI & LAN intrusion detector
//
// devices.php - Front module. Server side. Manage Devices
//------------------------------------------------------------------------------
// Puche 2021 pi.alert.application@gmail.com GNU GPLv3
// jokob-sk 2022 jokob.sk@gmail.com GNU GPLv3
// leiweibau 2022 https://github.com/leiweibau GNU GPLv3
//------------------------------------------------------------------------------
#---------------------------------------------------------------------------------#
# Pi.Alert #
# Open Source Network Guard / WIFI & LAN intrusion detector #
# #
# maintenance.php - Front module. Server side. Maintenance #
#---------------------------------------------------------------------------------#
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3 #
# jokob-sk 2022 jokob.sk@gmail.com GNU GPLv3 #
# leiweibau 2022 https://github.com/leiweibau GNU GPLv3 #
# cvc90 2023 https://github.com/cvc90 GNU GPLv3 #
#---------------------------------------------------------------------------------#
// Skin selector config ----------------------------------------------------
//
@@ -44,7 +44,8 @@ $pia_installed_skins = array('skin-black-light',
<section class="content-header">
<?php require 'php/templates/notification.php'; ?>
<h1 id="pageTitle">
<?= lang('Maintenance_Title');?>
<i class="fa fa-wrench"></i>
<?= lang('Maintenance_Title');?>
</h1>
</section>
@@ -118,6 +119,30 @@ if (isset($_POST['submit']) && submit && isset($_POST['skinselector_set'])) {
}
}
}
// Table sizes -----------------------------------------------------------------
$tableSizesHTML = "";
// Open a connection to the SQLite database
$db = new SQLite3($pia_db);
// Retrieve the table names from sqlite_master
$query = "SELECT name FROM sqlite_master WHERE type='table'";
$result = $db->query($query);
// Iterate over the tables and get the row counts
while ($row = $result->fetchArray(SQLITE3_ASSOC)) {
$tableName = $row['name'];
$query = "SELECT COUNT(*) FROM $tableName";
$countResult = $db->querySingle($query);
$tableSizesHTML = $tableSizesHTML . "$tableName (<b>$countResult</b>), ";
}
// Close the database connection
$db->close();
// Language selector -----------------------------------------------------------------
@@ -127,16 +152,28 @@ if (isset($_POST['submit']) && submit && isset($_POST['skinselector_set'])) {
<div class="col-md-12">
<div class="box" id="Maintain-Status">
<div class="box-header with-border">
<h3 class="box-title">Status</h3>
<h3 class="box-title">
<i class="fa fa-display"></i></i>
<?= lang('Maintenance_Status');?>
</h3>
</div>
<div class="box-body" style="padding-bottom: 5px;">
<div class="db_info_table">
<div class="db_info_table_row">
<div class="db_info_table_cell" style="min-width: 140px"><?= lang('Maintenance_version');?></div>
<div class="db_info_table_row">
<div class="db_info_table_cell" style="min-width: 140px"><?= lang('Maintenance_version');?>
<a href="https://github.com/jokob-sk/Pi.Alert/blob/main/docs/VERSIONS.md" target="_blank"> <span><i class="fa fa-circle-question"></i></a><span>
</div>
<div class="db_info_table_cell">
<div class="version" id="version" data-build-time="<?php echo file_get_contents( "buildtimestamp.txt");?>"><?php echo '<span id="new-version-text" class="myhidden">' .lang('Maintenance_new_version').'</span>'.'<span id="current-version-text" class="myhidden">' .lang('Maintenance_current_version').'</span>';?></div>
</div>
</div>
<div class="db_info_table_row">
<div class="db_info_table_cell" style="min-width: 140px"><?= lang('Maintenance_built_on');?></div>
<div class="db_info_table_cell">
<?php echo date("Y-m-d", ((int)file_get_contents( "buildtimestamp.txt")));?>
</div>
</div>
<div class="db_info_table_row">
<div class="db_info_table_cell" style="min-width: 140px"><?= lang('Maintenance_database_path');?></div>
<div class="db_info_table_cell">
@@ -147,7 +184,13 @@ if (isset($_POST['submit']) && submit && isset($_POST['skinselector_set'])) {
<div class="db_info_table_cell"><?= lang('Maintenance_database_size');?></div>
<div class="db_info_table_cell">
<?php echo $pia_db_size;?>
</div>
</div>
</div>
<div class="db_info_table_row">
<div class="db_info_table_cell"><?= lang('Maintenance_database_rows');?></div>
<div class="db_info_table_cell">
<?php echo $tableSizesHTML;?>
</div>
</div>
<div class="db_info_table_row">
<div class="db_info_table_cell"><?= lang('Maintenance_database_lastmod');?></div>
@@ -170,17 +213,29 @@ if (isset($_POST['submit']) && submit && isset($_POST['skinselector_set'])) {
<div class="nav-tabs-custom">
<ul class="nav nav-tabs">
<li class="active">
<a id="tab_Settings_id" href="#tab_Settings" data-toggle="tab"><?= lang('Maintenance_Tools_Tab_UISettings');?></a>
<li class="active">
<a id="tab_Settings_id" href="#tab_Settings" data-toggle="tab">
<i class="fa fa-cogs"></i>
<?= lang('Maintenance_Tools_Tab_UISettings');?>
</a>
</li>
<li>
<a id="tab_DBTools_id" href="#tab_DBTools" data-toggle="tab"><?= lang('Maintenance_Tools_Tab_Tools');?></a>
<a id="tab_DBTools_id" href="#tab_DBTools" data-toggle="tab">
<i class="fa fa-toolbox"></i>
<?= lang('Maintenance_Tools_Tab_Tools');?>
</a>
</li>
<li>
<a id="tab_BackupRestore_id" href="#tab_BackupRestore" data-toggle="tab"><?= lang('Maintenance_Tools_Tab_BackupRestore');?></a>
<a id="tab_BackupRestore_id" href="#tab_BackupRestore" data-toggle="tab">
<i class="fa fa-file-shield"></i>
<?= lang('Maintenance_Tools_Tab_BackupRestore');?>
</a>
</li>
<li>
<a id="tab_Logging_id" href="#tab_Logging" data-toggle="tab"><?= lang('Maintenance_Tools_Tab_Logging');?></a>
<a id="tab_Logging_id" href="#tab_Logging" data-toggle="tab">
<i class="fa fa-triangle-exclamation"></i>
<?= lang('Maintenance_Tools_Tab_Logging');?>
</a>
</li>
</ul>
<div class="tab-content">
@@ -243,8 +298,9 @@ if (isset($_POST['submit']) && submit && isset($_POST['skinselector_set'])) {
<option value="15"><?= lang('Device_TableHead_Connected_Devices');?></option>
<option value="16"><?= lang('Device_TableHead_Location');?></option>
<option value="17"><?= lang('Device_TableHead_Vendor');?></option>
<option value="18"><?= lang('Device_TableHead_Port');?></option>
</select>
<span class="input-group-addon"><i title="<?= lang('DevDetail_GoToNetworkNode');?>" class="fa fa-save pointer" onclick="saveSelectedColumns();"></i></span>
<span class="input-group-addon"><i title="<?= lang('Gen_Save');?>" class="fa fa-save pointer" onclick="saveSelectedColumns();"></i></span>
</div>
</div>
@@ -335,7 +391,17 @@ if (isset($_POST['submit']) && submit && isset($_POST['skinselector_set'])) {
<div class="db_info_table">
<div class="log-area">
<div class="row logs-row">
<textarea id="pialert_log" class="logs" cols="70" rows="10" wrap='off' readonly ><?php echo file_get_contents( "./log/pialert.log" ); ?>
<textarea id="pialert_log" class="logs" cols="70" rows="10" wrap='off' readonly >
<?php
if(filesize("./log/pialert.log") > 2000000)
{
echo file_get_contents( "./log/pialert.log", false, null, -2000000);
}
else{
echo file_get_contents( "./log/pialert.log" );
}
?>
</textarea>
</div>
<div class="row logs-row" >
@@ -364,25 +430,24 @@ if (isset($_POST['submit']) && submit && isset($_POST['skinselector_set'])) {
</div>
</div>
</div>
</div>
</div>
<div class="log-area">
<div class="row logs-row">
<textarea id="pialert_pholus_log" class="logs" cols="70" rows="10" wrap='off' readonly><?php echo file_get_contents( "./log/pialert_pholus.log" ); ?>
</textarea>
</div>
<div class="row logs-row" >
<div>
<div class="log-file">pialert_pholus.log<div class="logs-size"><?php echo number_format((filesize("./log/pialert_pholus.log") / 1000000),2,",",".") . ' MB';?>
<span class="span-padding"><a href="./log/pialert_pholus.log"><i class="fa fa-download"></i> </a></span>
</div></div>
<div class="log-purge">
<button class="btn btn-primary" onclick="logManage('pialert_pholus.log','cleanLog')"><?= lang('Gen_Purge');?></button>
</div>
</div>
</div>
</div>
<div class="row logs-row">
<textarea id="pialert_php_log" class="logs" cols="70" rows="10" wrap='off' readonly><?php echo file_get_contents( "./log/pialert.php_errors.log" ); ?>
</textarea>
</div>
<div class="row logs-row" >
<div>
<div class="log-file">pialert.php_errors.log<div class="logs-size"><?php echo number_format((filesize("./log/pialert.php_errors.log") / 1000000),2,",",".") . ' MB';?>
<span class="span-padding"><a href="./log/pialert.php_errors.log"><i class="fa fa-download"></i> </a></span>
</div></div>
<div class="log-purge">
<button class="btn btn-primary" onclick="logManage('pialert.php_errors.log','cleanLog')"><?= lang('Gen_Purge');?></button>
</div>
</div>
</div>
</div>
<div class="log-area">
<div class="row logs-row">
@@ -630,7 +695,7 @@ function askExportCSV() {
function ExportCSV()
{
// Execute
openInNewTab(window.location.origin + "/php/server/devices.php?action=ExportCSV")
openInNewTab("php/server/devices.php?action=ExportCSV")
}
// Import CSV
@@ -642,7 +707,7 @@ function askImportCSV() {
function ImportCSV()
{
// Execute
$.get('/php/server/devices.php?action=ImportCSV', function(msg) {
$.get('php/server/devices.php?action=ImportCSV', function(msg) {
showMessage (msg);
});
}
@@ -720,12 +785,16 @@ function performLogManage() {
// --------------------------------------------------------
function scrollDown()
{
var areaIDs = ['pialert_log', 'pialert_front_log', 'IP_changes_log', 'stdout_log', 'stderr_log', 'pialert_pholus_log', 'pialert_pholus_lastrun_log'];
var areaIDs = ['pialert_log', 'pialert_front_log', 'IP_changes_log', 'stdout_log', 'stderr_log', 'pialert_pholus_log', 'pialert_pholus_lastrun_log', 'pialert_php_log'];
for (let i = 0; i < areaIDs.length; i++) {
var tempArea = $('#' + areaIDs[i]);
$(tempArea[0]).scrollTop(tempArea[0].scrollHeight);
if (tempArea.length > 0)
{
$(tempArea[0]).scrollTop(tempArea[0].scrollHeight);
}
}
}
@@ -733,8 +802,8 @@ function scrollDown()
// --------------------------------------------------------
// Manage displayed columns
// --------------------------------------------------------
colDefaultOrder = ['0','1','2','3','4','5','6','7','8','9','10','12','13','14','15','16','17'];
colDefaultOrderTxt = '[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17]';
colDefaultOrder = ['0','1','2','3','4','5','6','7','8','9','10','11','12','13','14','15','16','17'];
colDefaultOrderTxt = '[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17]';
function saveSelectedColumns () {
@@ -742,9 +811,7 @@ function saveSelectedColumns () {
// save full order of all columns to simplify mapping later on
colDisplayed = $('#columnsSelect').val();
colNewOrder = colDisplayed;
// append the remaining columns in the previous order
@@ -885,4 +952,4 @@ window.onload = function asyncFooter()
<!-- ----------------------------------------------------------------------- -->
<script src="js/pialert_common.js"></script>
<script src="js/pialert_common.js"></script>

View File

@@ -24,8 +24,7 @@
</section>
<div id="networkTree" ></div>
<div id="networkTree" class="drag"></div>
<!-- Main content ---------------------------------------------------------- -->
<section class="content">
@@ -267,7 +266,7 @@
// / \
// Smart TV (leaf) Switch 2 (node (for the PC) and leaf (for Switch 1))
// \
// PC (leaf)
// PC (leaf) <------- leafs are not included in this SQL query
$sql = "SELECT node_name, node_mac, online, node_type, node_ports_count, parent_mac, node_icon
FROM
@@ -279,7 +278,7 @@
a.dev_Network_Node_MAC_ADDR as parent_mac,
a.dev_Icon as node_icon
FROM Devices a
WHERE a.dev_DeviceType in ('AP', 'Gateway', 'Firewall', 'Powerline', 'Switch', 'WLAN', 'PLC', 'Router','USB LAN Adapter', 'USB WIFI Adapter', 'Internet')
WHERE a.dev_DeviceType in ('AP', 'Gateway', 'Firewall', 'Hypervisor', 'Powerline', 'Switch', 'WLAN', 'PLC', 'Router','USB LAN Adapter', 'USB WIFI Adapter', 'Internet')
) t1
LEFT JOIN
(
@@ -448,6 +447,7 @@
require 'php/templates/footer.php';
?>
<script src="lib/treeviz/index.js"></script>
<script src="lib/treeviz/require.js"></script>
<script src="js/pialert_common.js"></script>
@@ -465,11 +465,16 @@
"parentMac":item[14],
"rowid":item[13],
"status":item[10],
"childrenQty":item[15]
"childrenQty":item[15],
"port":item[18]
}})
setCache('devicesListNew', JSON.stringify(devicesListnew))
// init global variable
deviceListGlobal = devicesListnew;
// create tree
initTree(getHierarchy());
@@ -483,20 +488,6 @@
// ---------------------------------------------------------------------------
// Tree functionality
// ---------------------------------------------------------------------------
// ---------------------------------------------------------------------------
function getDevicesList()
{
// Read cache
devicesList = getCache('devicesListNew');
if (devicesList != '') {
devicesList = JSON.parse (devicesList);
} else {
devicesList = [];
}
return devicesList;
}
// ---------------------------------------------------------------------------
var leafNodesCount = 0;
@@ -504,6 +495,7 @@
var parentNodesCount = 0;
var hiddenMacs = []; // hidden children
var hiddenChildren = [];
var deviceListGlobal = null;
@@ -541,6 +533,7 @@
name: node.name,
path: path,
mac: node.mac,
port: node.port,
id: node.mac,
parentMac: node.parentMac,
icon: node.icon,
@@ -557,14 +550,12 @@
// ---------------------------------------------------------------------------
function getHierarchy()
{
list = getDevicesList();
for(i in list)
{
for(i in deviceListGlobal)
{
if(list[i].mac == 'Internet')
if(deviceListGlobal[i].mac == 'Internet')
{
return (getChildren(list[i], list, ''))
return (getChildren(deviceListGlobal[i], deviceListGlobal, ''))
break;
}
}
@@ -585,8 +576,6 @@
removeItemFromArray(hiddenMacs, parentMac)
}
list = getDevicesList();
// updatedTree = myHierarchy;
updatedTree = getHierarchy()
@@ -605,9 +594,22 @@
});
}
// ---------------------------------------------------------------------------
function handleNodeClick(event)
{
console.log(event.target.offsetParent)
const targetTabMAC = $(event.target.offsetParent).attr("data-mytreemacmain");
var targetTab = $(`a[data-mytabmac="${targetTabMAC}"]`);
// Simulate a click event on the target tab
targetTab.click();
}
// ---------------------------------------------------------------------------
var myTree;
var treeAreaHeight = 600;
var treeAreaHeight = 800;
var emSize;
var nodeHeight;
@@ -615,12 +617,15 @@
{
// calculate the font size of the leaf nodes to fit everything into the tree area
leafNodesCount == 0 ? 1 : leafNodesCount;
emSize = ((600/(20*leafNodesCount)).toFixed(2));
emSize = ((treeAreaHeight/(25*leafNodesCount)).toFixed(2));
emSize = emSize > 1 ? 1 : emSize;
// nodeHeight = ((emSize*100*0.30).toFixed(0))
nodeHeight = ((emSize*100*0.30).toFixed(0))
$("#networkTree").attr('style', "height:"+treeAreaHeight+"px; width:1070px")
$("#networkTree").attr('style', `height:${treeAreaHeight}px; width:${$('.content-header').width()}px`)
console.log('here')
myTree = Treeviz.create({
htmlId: "networkTree",
@@ -628,7 +633,13 @@
renderNode: nodeData => {
var fontSize = "font-size:"+emSize+"em;";
(!emptyArr.includes(nodeData.data.port )) ? port = nodeData.data.port : port = "";
(port == "" || port == 0 ) ? portBckgIcon = `<i class="fa fa-wifi"></i>` : portBckgIcon = `<i class="fa fa-ethernet"></i>`;
// Build HTML for individual nodes in the network diagram
deviceIcon = (!emptyArr.includes(nodeData.data.icon )) ? "<div class='netIcon ' ><i class='fa fa-"+nodeData.data.icon +"'></i></div>" : "";
devicePort = `<div class='netPort ' style="width:${emSize*2.7}em;height:${emSize*2.7}em" >${port}</div> <div class="portBckgIcon" style="margin-left:-${emSize*2.5}em;">${portBckgIcon}</div>`;
collapseExpandIcon = nodeData.data.hiddenChildren ? "square-plus" :"square-minus";
collapseExpandHtml = (nodeData.data.hasChildren) ? "<div class='netCollapse' style='font-size:"+emSize*2.5+"em;' data-mytreepath='"+nodeData.data.path+"' data-mytreemac='"+nodeData.data.mac+"'><i class='fa fa-"+ collapseExpandIcon +" pointer'></i></div>" : "";
statusCss = " netStatus-" + nodeData.data.status;
@@ -637,26 +648,20 @@
highlightedCss = nodeData.data.mac == selectedNodeMac ? " highlightedNode" : "";
return result = "<div class='box "+statusCss+" "+highlightedCss+"' data-mytreemacmain='"+nodeData.data.mac+"' \
style='height:"+nodeData.settings.nodeHeight+"px;\
width:180px;\
display:flex;\
flex-direction:column;\
justify-content:center;\
" + fontSize + "\
align-items:center;\
border-radius:5px;'\
>\
return result = `<div class='box ${(nodeData.data.hasChildren)? "pointer":""} ${statusCss} ${highlightedCss}'
data-mytreemacmain='${nodeData.data.mac}'
style='height:${nodeData.settings.nodeHeight}px;${fontSize}
>
<div class='netNodeText '>\
<strong>" + deviceIcon +
"<span class='spanNetworkTree anonymizeDev'>"+nodeData.data.name+"</span>\
</strong>"
+collapseExpandHtml+
"</div></div>";
<strong>${devicePort} ${deviceIcon}
<span class='spanNetworkTree anonymizeDev'>${nodeData.data.name}</span>\
</strong>
${collapseExpandHtml}
</div></div>`;
},
onNodeClick: nodeData => {
// console.log(this)
console.log(this)
},
mainAxisNodeSpacing: 'auto',
// mainAxisNodeSpacing: 3,
@@ -669,8 +674,14 @@
idKey: "id",
hasFlatData: false,
linkWidth: (nodeData) => 3,
linkColor: (nodeData) => "#ffcc80",
onNodeClick: (nodeData) => handleNodeClick(nodeData),
relationnalField: "children",
});
console.log('vvvv')
console.log(myHierarchy)
console.log('^^^^^^^')
myTree.refresh(myHierarchy);
}

View File

@@ -65,7 +65,7 @@ function OpenDB (...$DBPath) {
die ('<div style="padding-left:150px">Error connecting to the database</div>');
}
$db->exec('PRAGMA journal_mode = wal;');
$db->exec('PRAGMA journal_mode = wal;');
}

193
front/php/server/dbHelper.php Executable file
View File

@@ -0,0 +1,193 @@
<?php
//------------------------------------------------------------------------------
// Pi.Alert
// Open Source Network Guard / WIFI & LAN intrusion detector
//
// parameters.php - Front module. Server side. Manage Parameters
//------------------------------------------------------------------------------
# Puche 2022+ jokob jokob@duck.com GNU GPLv3
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// External files
require dirname(__FILE__).'/init.php';
//------------------------------------------------------------------------------
// Action selector
//------------------------------------------------------------------------------
// Set maximum execution time to 15 seconds
ini_set ('max_execution_time','15');
$skipCache = FALSE;
$expireMinutes = 5;
$defaultValue = '';
$dbtable = '';
$columns = '';
$values = '';
if (isset ($_REQUEST['skipcache'])) {
$skipCache = TRUE;
}
if (isset ($_REQUEST['defaultValue'])) {
$defaultValue = $_REQUEST['defaultValue'];
}
if (isset ($_REQUEST['expireMinutes'])) {
$expireMinutes = $_REQUEST['expireMinutes'];
}
if (isset ($_REQUEST['columnName'])) {
$columnName = $_REQUEST['columnName'];
}
if (isset ($_REQUEST['id'])) {
$id = $_REQUEST['id'];
}
if (isset ($_REQUEST['values'])) {
$values = $_REQUEST['values'];
}
if (isset ($_REQUEST['columns'])) {
$columns = $_REQUEST['columns'];
}
if (isset ($_REQUEST['dbtable'])) {
$dbtable = $_REQUEST['dbtable'];
}
// TODO: Security, read, delete, edge cases
// Action functions
if (isset ($_REQUEST['action']) && !empty ($_REQUEST['action'])) {
$action = $_REQUEST['action'];
switch ($action) {
case 'create': create($skipCache, $defaultValue, $expireMinutes, $dbtable, $columns, $values ); break;
// case 'read' : read($skipCache, $defaultValue, $expireMinutes, $dbtable, $columns, $values); break;
case 'update': update($columnName, $id, $skipCache, $defaultValue, $expireMinutes, $dbtable, $columns, $values); break;
case 'delete': delete($columnName, $id, $dbtable); break;
default: logServerConsole ('Action: '. $action); break;
}
}
//------------------------------------------------------------------------------
// update
//------------------------------------------------------------------------------
function update($columnName, $id, $skipCache, $defaultValue, $expireMinutes, $dbtable, $columns, $values) {
global $db;
// handle one or multiple columns
if(strpos($columns, ',') !== false)
{
$columnsArr = explode(",", $columns);
}else
{
$columnsArr = array($columns);
}
// handle one or multiple values
if(strpos($values, ',') !== false)
{
$valuesArr = explode(",", $values);
} else
{
$valuesArr = array($values);
}
$columnValues = '';
$index = 0;
foreach($columnsArr as $column)
{
$columnValues = $columnValues .' "' .$column.'" = "'.$valuesArr[$index] . '",' ;
$index = $index + 1;
}
$columnValues = substr($columnValues, 0, -1);
// Update value
$sql = 'UPDATE '.$dbtable.' SET '. $columnValues .'
WHERE "'. $columnName .'"="'. $id.'"';
$result = $db->query($sql);
if (! $result == TRUE) {
echo "Error updating parameter\n\n$sql \n\n". $db->lastErrorMsg();
return;
}
$changes = $db->changes();
if ($changes == 0) {
// Insert new value
create($skipCache, $defaultValue, $expireMinutes, $dbtable, $columns, $values);
}
// update cache
$uniqueHash = hash('ripemd160', $dbtable . $columns);
setCache($uniqueHash, $values, $expireMinutes);
echo 'OK';
}
//------------------------------------------------------------------------------
// create
//------------------------------------------------------------------------------
function create($skipCache, $defaultValue, $expireMinutes, $dbtable, $columns, $values)
{
global $db;
// Insert new value
$sql = 'INSERT INTO '.$dbtable.' ('.$columns.')
VALUES ("'. quotes($parameter) .'",
"'. $values .'")';
$result = $db->query($sql);
if (! $result == TRUE) {
echo "Error creating entry\n\n$sql \n\n". $db->lastErrorMsg();
return;
}
}
//------------------------------------------------------------------------------
// delete
//------------------------------------------------------------------------------
function delete($columnName, $id, $dbtable)
{
global $db;
// handle one or multiple ids
if(strpos($id, ',') !== false)
{
$idsArr = explode(",", $id);
}else
{
$idsArr = array($id);
}
$idsStr = "";
foreach ($idsArr as $item)
{
$idsStr = $idsStr . '"' .$item.'"';
}
// Insert new value
$sql = 'DELETE FROM '.$dbtable.' WHERE "'.$columnName.'" IN ('. $idsStr .')';
$result = $db->query($sql);
if (! $result == TRUE) {
echo "Error deleting entry\n\n$sql \n\n". $db->lastErrorMsg();
return;
} else
{
echo lang('Gen_DataUpdatedUITakesTime');
return;
}
}
?>

View File

@@ -11,10 +11,11 @@
// External files
require dirname(__FILE__).'/init.php';
//------------------------------------------------------------------------------
// Action selector
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
// Action selector
//------------------------------------------------------------------------------
// Set maximum execution time to 15 seconds
ini_set ('max_execution_time','30');
// Action functions
@@ -49,13 +50,14 @@
case 'getOwners': getOwners(); break;
case 'getDeviceTypes': getDeviceTypes(); break;
case 'getGroups': getGroups(); break;
case 'getLocations': getLocations(); break;
case 'getPholus': getPholus(); break;
case 'getNmap': getNmap(); break;
case 'saveNmapPort': saveNmapPort(); break;
case 'getLocations': getLocations(); break;
case 'updateNetworkLeaf': updateNetworkLeaf(); break;
case 'overwriteIconType': overwriteIconType(); break;
case 'getIcons': getIcons(); break;
case 'getActions': getActions(); break;
case 'getDevices': getDevices(); break;
case 'copyFromDevice': copyFromDevice(); break;
case 'wakeonlan': wakeonlan(); break;
default: logServerConsole ('Action: '. $action); break;
}
@@ -466,64 +468,66 @@ function ExportCSV() {
// Import CSV of devices
//------------------------------------------------------------------------------
function ImportCSV() {
$file = '../../../config/devices.csv';
if (file_exists($file)) {
global $db;
$skipped = "";
$error = "";
// sql
$sql = 'DELETE FROM Devices';
// execute sql
$result = $db->query($sql);
// Read the CSV file
$data = file_get_contents($file);
$lines = explode("\n", $data);
// Open the CSV file with read-only mode
$csvFile = fopen($file, 'r');
// Get the column headers from the first line of the CSV
$header = str_getcsv(array_shift($lines));
$header = array_map('trim', $header);
// Skip the first line
fgetcsv($csvFile);
// Delete everything form the DB table
$sql = 'DELETE FROM Devices';
$result = $db->query($sql);
$columns = getDevicesColumns();
// Build the SQL statement
$sql = "INSERT INTO Devices (" . implode(', ', $header) . ") VALUES ";
// Parse data from CSV file line by line (max 10000 lines)
while (($row = fgetcsv($csvFile, 10000, ",")) !== FALSE)
{
$sql = 'INSERT INTO Devices ('.implode(',', $columns).') VALUES ("' .implode('","', $row).'")';
// Parse data from CSV file line by line (max 10000 lines)
$index = 0;
foreach($lines as $row) {
$rowArray = str_getcsv($row);
$result = $db->query($sql);
if (count($rowArray) === count($header)) {
// Make sure the number of columns matches the header
$rowArray = array_map(function ($value) {
return "'" . SQLite3::escapeString(trim($value)) . "'";
}, $rowArray);
// check result
if ($result != TRUE) {
$error = $db->lastErrorMsg();
// break the while loop on error
break;
}
$sql .= "(" . implode(', ', $rowArray) . "), ";
} else {
$skipped .= ($index + 1) . ",";
}
$index++;
}
// Close opened CSV file
fclose($csvFile);
if($error == "")
{
// import succesful
echo lang('BackDevices_DBTools_ImportCSV');
// Remove the trailing comma and space from SQL
$sql = rtrim($sql, ', ');
// Execute the SQL query
$result = $db->query($sql);
if($error === "") {
// Import successful
echo lang('BackDevices_DBTools_ImportCSV') . " (Skipped lines: " . $skipped . ") ";
} else {
// An error occurred while writing to the DB, display the last error message
echo lang('BackDevices_DBTools_ImportCSVError') . "\n" . $error . "\n" . $sql . "\n\n" . $result;
}
else{
// an error occurred while writing to the DB, display the last error message
echo lang('BackDevices_DBTools_ImportCSVError')."\n\n$sql \n\n".$error;
}
} else {
} else {
echo lang('BackDevices_DBTools_ImportCSVMissing');
}
}
}
//------------------------------------------------------------------------------
// Query total numbers of Devices by status
//------------------------------------------------------------------------------
@@ -560,72 +564,6 @@ function getDevicesTotals() {
}
//------------------------------------------------------------------------------
// Query the List of devices in a determined Status
//------------------------------------------------------------------------------
// function getDevicesListForNetworkTree() {
// global $db;
// $sql = 'SELECT *, CASE
// WHEN t1.dev_AlertDeviceDown=1 AND t1.dev_PresentLastScan=0 THEN "Down"
// WHEN t1.dev_NewDevice=1 THEN "New"
// WHEN t1.dev_PresentLastScan=1 THEN "On-line"
// ELSE "Off-line" END AS dev_Status
// FROM (Devices ) t1
// LEFT JOIN
// (
// SELECT *,
// count() as connected_devices
// FROM Devices b
// WHERE b.dev_Network_Node_MAC_ADDR NOT NULL group by b.dev_Network_Node_MAC_ADDR
// ) t2
// ON (t1.dev_MAC = t2.dev_MAC); ';
// $result = $db->query($sql);
// // arrays of rows
// $tableData = array();
// while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
// $defaultOrder = array ($row['dev_Name'],
// $row['dev_Owner'],
// handleNull($row['dev_DeviceType']),
// handleNull($row['dev_Icon'], "laptop"),
// $row['dev_Favorite'],
// $row['dev_Group'],
// formatDate ($row['dev_FirstConnection']),
// formatDate ($row['dev_LastConnection']),
// $row['dev_LastIP'],
// ( in_array($row['dev_MAC'][1], array("2","6","A","E","a","e")) ? 1 : 0),
// $row['dev_Status'],
// $row['dev_MAC'], // MAC (hidden)
// formatIPlong ($row['dev_LastIP']), // IP orderable
// $row['rowid'], // Rowid (hidden)
// handleNull($row['dev_Network_Node_MAC_ADDR']), //
// handleNull($row['connected_devices']) //
// );
// $newOrder = array();
// // reorder columns based on user settings
// for($index = 0; $index < count($columnOrderMapping); $index++)
// {
// array_push($newOrder, $defaultOrder[$columnOrderMapping[$index][2]]);
// }
// $tableData['data'][] = $newOrder;
// }
// // Control no rows
// if (empty($tableData['data'])) {
// $tableData['data'] = '';
// }
// // Return json
// echo (json_encode ($tableData));
// }
//------------------------------------------------------------------------------
// Query the List of devices in a determined Status
//------------------------------------------------------------------------------
@@ -639,7 +577,7 @@ function getDevicesList() {
$forceDefaultOrder = TRUE;
}
// This object is used to map from the old order ( second parameter, first number) to the 3rd parameter (Second number (here initialized to -1))
// This object is used to map from the old order ( second parameter, first number) to the new mapping, that is represented by the 3rd parameter (Second number)
$columnOrderMapping = array(
array("dev_Name", 0, 0),
array("dev_Owner", 1, 1),
@@ -658,7 +596,8 @@ function getDevicesList() {
array("dev_Network_Node_MAC_ADDR", 14, 14),
array("connected_devices", 15, 15),
array("dev_Location", 16, 16),
array("dev_Vendor", 17, 17)
array("dev_Vendor", 17, 17),
array("dev_Network_Node_port", 18, 18)
);
if($forceDefaultOrder == FALSE)
@@ -674,9 +613,11 @@ function getDevicesList() {
$orderedColumns = createArray($row[0]);
// init ordered columns
for($i = 0; $i < count($orderedColumns); $i++) {
$columnOrderMapping[$i][2] = $orderedColumns[$i];
for($i = 0; $i < count($orderedColumns); $i++) {
$columnOrderMapping[$i][2] = $orderedColumns[$i];
}
}
}
@@ -722,7 +663,8 @@ function getDevicesList() {
handleNull($row['dev_Network_Node_MAC_ADDR']),
handleNull($row['connected_devices']),
handleNull($row['dev_Location']),
handleNull($row['dev_Vendor'])
handleNull($row['dev_Vendor']),
handleNull($row['dev_Network_Node_port'])
);
$newOrder = array();
@@ -813,7 +755,7 @@ function getNetworkNodes() {
global $db;
// Device Data
$sql = 'SELECT * FROM Devices WHERE dev_DeviceType in ( "AP", "Gateway", "Firewall", "Powerline", "Switch", "WLAN", "PLC", "Router","USB LAN Adapter", "USB WIFI Adapter")';
$sql = 'SELECT * FROM Devices WHERE dev_DeviceType in ( "AP", "Gateway", "Firewall", "Hypervisor", "Powerline", "Switch", "WLAN", "PLC", "Router","USB LAN Adapter", "USB WIFI Adapter")';
$result = $db->query($sql);
@@ -861,6 +803,48 @@ function getIcons() {
echo (json_encode ($tableData));
}
//------------------------------------------------------------------------------
function getActions() {
$tableData = array(
array('id' => 'wake-on-lan',
'name' => lang('DevDetail_WOL_Title'))
);
// Return json
echo (json_encode ($tableData));
}
//------------------------------------------------------------------------------
function getDevices() {
global $db;
// Device Data
$sql = 'select dev_MAC, dev_Name from Devices';
$result = $db->query($sql);
// arrays of rows
$tableData = array();
while ($row = $result -> fetchArray (SQLITE3_ASSOC)) {
$name = handleNull($row['dev_Name'], "(unknown)");
$mac = handleNull($row['dev_MAC'], "(unknown)");
// Push row data
$tableData[] = array('id' => $mac,
'name' => $name );
}
// Control no rows
if (empty($tableData)) {
$tableData = [];
}
// Return json
echo (json_encode ($tableData));
}
//------------------------------------------------------------------------------
// Query the List of types
@@ -878,7 +862,7 @@ function getDeviceTypes() {
"Laptop", "Mini PC", "PC", "Printer", "Server", "Singleboard Computer (SBC)", "NAS",
"Domotic", "IP Camera", "Game Console", "SmartTV", "TV Decoder", "Virtual Assistance",
"Clock", "House Appliance", "Phone", "Radio",
"AP", "Gateway", "Firewall", "Powerline", "Switch", "WLAN", "PLC", "Router","USB LAN Adapter", "USB WIFI Adapter" )
"AP", "Gateway", "Firewall", "Hypervisor", "Powerline", "Switch", "WLAN", "PLC", "Router","USB LAN Adapter", "USB WIFI Adapter" )
UNION SELECT 1 as dev_Order, "Smartphone"
UNION SELECT 1 as dev_Order, "Tablet"
@@ -907,6 +891,7 @@ function getDeviceTypes() {
UNION SELECT 5 as dev_Order, "AP"
UNION SELECT 5 as dev_Order, "Gateway"
UNION SELECT 5 as dev_Order, "Firewall"
UNION SELECT 5 as dev_Order, "Hypervisor"
UNION SELECT 5 as dev_Order, "Powerline"
UNION SELECT 5 as dev_Order, "Switch"
UNION SELECT 5 as dev_Order, "WLAN"
@@ -1013,129 +998,6 @@ function getLocations() {
echo (json_encode ($tableData));
}
//------------------------------------------------------------------------------
// Query the List of Pholus entries
//------------------------------------------------------------------------------
function getPholus() {
global $db;
// SQL
$mac = $_REQUEST['mac'];
if ($mac == "Internet") // Not performing data lookup for router (improvement idea for later maybe)
{
echo "false";
return;
}
if (false === filter_var($mac , FILTER_VALIDATE_MAC)) {
throw new Exception('Invalid mac address');
}
else{
$sql = 'SELECT * from Pholus_Scan where MAC ="'.$mac.'" and Record_Type not in ("Question")';
// array
$tableData = array();
// execute query
$result = $db->query($sql);
while ($row = $result -> fetchArray (SQLITE3_ASSOC)){
// Push row data
$tableData[] = array( 'Index' => $row['Index'],
'Info' => $row['Info'],
'Time' => $row['Time'],
'MAC' => $row['MAC'],
'IP_v4_or_v6' => $row['IP_v4_or_v6'],
'Record_Type' => $row['Record_Type'],
'Value' => $row['Value'],
'Extra' => $row['Extra']);
}
if(count($tableData) == 0)
{
echo "false";
} else{
// Return json
echo (json_encode ($tableData));
}
}
}
//------------------------------------------------------------------------------
// Query the List of Nmap entries
//------------------------------------------------------------------------------
function getNmap() {
global $db;
// SQL
$mac = $_REQUEST['mac'];
if ($mac == "Internet") // Not performing data lookup for router (improvement idea for later maybe)
{
echo "false";
return;
}
if (false === filter_var($mac , FILTER_VALIDATE_MAC)) {
throw new Exception('Invalid mac address');
}
else{
// $sql = 'SELECT * from Nmap_Scan where MAC ="'.$mac.'" ';
$sql = 'select * from (select * from Nmap_Scan INNER JOIN Devices on Nmap_Scan.MAC = Devices.dev_MAC) where MAC = "'.$mac.'" ';
// array
$tableData = array();
// execute query
$result = $db->query($sql);
while ($row = $result -> fetchArray (SQLITE3_ASSOC)){
// Push row data
$tableData[] = array( 'Index' => $row['Index'],
'MAC' => $row['MAC'],
'Port' => $row['Port'],
'Time' => $row['Time'],
'State' => $row['State'],
'Service' => $row['Service'],
'IP' => $row['dev_LastIP'],
'Extra' => $row['Extra']);
}
if(count($tableData) == 0)
{
echo "false";
} else{
// Return json
echo (json_encode ($tableData));
}
}
}
// -------------------------------------------------------------------------------------------
function saveNmapPort()
{
$portIndex = $_REQUEST['id'];
$value = $_REQUEST['value'];
if(is_integer((int)$portIndex))
{
global $db;
// sql
$sql = 'UPDATE Nmap_Scan SET "Extra" = "'. $value .'" WHERE "Index"=' . $portIndex ;
// update Data
$result = $db->query($sql);
// check result
if ($result == TRUE) {
echo 'OK';
} else {
echo 'KO';
}
}
}
// ----------------------------------------------------------------------------------------
function updateNetworkLeaf()
{
@@ -1184,12 +1046,83 @@ function overwriteIconType()
if ($result == TRUE) {
echo 'OK';
} else {
echo 'KO';
echo lang('BackDevices_Device_UpdDevError');
}
}
}
//------------------------------------------------------------------------------
// Wake-on-LAN
// Inspired by @leiweibau: https://github.com/leiweibau/Pi.Alert/commit/30427c7fea180670c71a2b790699e5d9e9e88ffd
//------------------------------------------------------------------------------
function wakeonlan() {
$WOL_HOST_IP = $_REQUEST['ip'];
$WOL_HOST_MAC = $_REQUEST['mac'];
if (!filter_var($WOL_HOST_IP, FILTER_VALIDATE_IP)) {
echo "Invalid IP! ". lang('BackDevDetail_Tools_WOL_error'); exit;
}
elseif (!filter_var($WOL_HOST_MAC, FILTER_VALIDATE_MAC)) {
echo "Invalid MAC! ". lang('BackDevDetail_Tools_WOL_error'); exit;
}
exec('wakeonlan '.$WOL_HOST_MAC , $output);
echo lang('BackDevDetail_Tools_WOL_okay');
}
//------------------------------------------------------------------------------
// Copy from device
//------------------------------------------------------------------------------
function copyFromDevice() {
$MAC_FROM = $_REQUEST['macFrom'];
$MAC_TO = $_REQUEST['macTo'];
if ((false === filter_var($MAC_FROM , FILTER_VALIDATE_MAC) && $MAC_FROM != "Internet" && $MAC_FROM != "") ) {
throw new Exception('Invalid mac address');
}
if ((false === filter_var($MAC_TO , FILTER_VALIDATE_MAC) && $MAC_TO != "Internet" && $MAC_TO != "") ) {
throw new Exception('Invalid mac address');
}
global $db;
// clean-up temporary table
$sql = "DROP TABLE temp_devices ";
$result = $db->query($sql);
// create temporary table with the source data
$sql = "CREATE TABLE temp_devices AS SELECT * FROM Devices WHERE dev_MAC = '". $MAC_FROM . "';";
$result = $db->query($sql);
// update temporary table with the correct target MAC
$sql = "UPDATE temp_devices SET dev_MAC = '". $MAC_TO . "';";
$result = $db->query($sql);
// delete previous entry
$sql = "DELETE FROM Devices WHERE dev_MAC = '". $MAC_TO . "';";
$result = $db->query($sql);
// insert new entry with the correct target MAC from the temporary table
$sql = "INSERT INTO Devices SELECT * FROM temp_devices WHERE dev_MAC = '".$MAC_TO."'";
$result = $db->query($sql);
// clean-up temporary table
$sql = "DROP TABLE temp_devices ";
$result = $db->query($sql);
// check result
if ($result == TRUE) {
echo 'OK';
} else {
echo lang('BackDevices_Device_UpdDevError');
}
}
//------------------------------------------------------------------------------
// Status Where conditions
//------------------------------------------------------------------------------

View File

@@ -3,3 +3,4 @@ require dirname(__FILE__).'/../templates/timezone.php';
require dirname(__FILE__).'/db.php';
require dirname(__FILE__).'/util.php';
require dirname(__FILE__).'/../templates/language/lang.php';
?>

View File

@@ -0,0 +1,49 @@
<?php
###################################################################################
# Pi.Alert #
# Open Source Network Guard / WIFI & LAN intrusion detector #
# #
# internetinfo.php # Front module. Server side. System Information #
###################################################################################
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3 #
# jokob#sk 2022 jokob.sk@gmail.com GNU GPLv3 #
# leiweibau 2022 https://github.com/leiweibau GNU GPLv3 #
# cvc90 2023 https://github.com/cvc90 GNU GPLv3 #
###################################################################################
// Get init.php
require dirname(__FILE__).'/../server/init.php';
// Perform a test with the PING command
$output = shell_exec("curl ipinfo.io");
// Check if there is error
if (!isset($output) || empty($output)) {
// Error message
$output = lang('DevDetail_Tab_Tool_Internet_Info_Error');
// Show the result
echo "<pre>";
echo $output;
echo "</pre>";
exit;
}
// Replace "{" with ""
$output = str_replace("{", "", $output);
// Replace "}" with ""
$output = str_replace("}", "", $output);
// Replace "," with ""
$output = str_replace(",", "", $output);
// Replace '"' with ""
$output = str_replace('"', "", $output);
// Show the result
echo "<pre>";
echo $output;
echo "</pre>";
?>

40
front/php/server/nslookup.php Executable file
View File

@@ -0,0 +1,40 @@
<?php
###################################################################################
# Pi.Alert #
# Open Source Network Guard / WIFI & LAN intrusion detector #
# #
# nslookup.php # Front module. Server side. System Information #
###################################################################################
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3 #
# jokob#sk 2022 jokob.sk@gmail.com GNU GPLv3 #
# leiweibau 2022 https://github.com/leiweibau GNU GPLv3 #
# cvc90 2023 https://github.com/cvc90 GNU GPLv3 #
###################################################################################
// Get init.php
require dirname(__FILE__).'/../server/init.php';
// Get IP
$ip = $_GET['ip'];
// Check if IP is valid
if (!filter_var($ip, FILTER_VALIDATE_IP)) {
// Error message
$output = lang('DevDetail_Tab_Tools_Nslookup_Error');
// Show the result
echo "<pre>";
echo $output;
echo "</pre>";
exit;
}
// Test with the "nslookup" command
$output = shell_exec("nslookup $ip");
// Show the result
echo "<pre>";
echo $output;
echo "</pre>";
?>

View File

@@ -1,10 +1,11 @@
<?php
require dirname(__FILE__).'/../server/init.php';
exec('../../../back/speedtest-cli --secure --simple', $output);
echo '<h4>Speedtest Results</h4>';
echo '<h4>'. lang('Speedtest_Results') .'</h4>';
echo '<pre style="border: none;">';
foreach($output as $line){
echo $line . "\n";
}
echo '</pre>';
?>
?>

40
front/php/server/traceroute.php Executable file
View File

@@ -0,0 +1,40 @@
<?php
###################################################################################
# Pi.Alert #
# Open Source Network Guard / WIFI & LAN intrusion detector #
# #
# traceroute.php # Front module. Server side. System Information #
###################################################################################
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3 #
# jokob-sk 2022 jokob.sk@gmail.com GNU GPLv3 #
# leiweibau 2022 https://github.com/leiweibau GNU GPLv3 #
# cvc90 2023 https://github.com/cvc90 GNU GPLv3 #
###################################################################################
// Get init.php
require dirname(__FILE__).'/../server/init.php';
// Get IP
$ip = $_GET['ip'];
// Check if IP is valid
if (!filter_var($ip, FILTER_VALIDATE_IP)) {
// Error message
$output = lang('DevDetail_Tab_Tools_Traceroute_Error');
// Show the result
echo "<pre>";
echo $output;
echo "</pre>";
exit;
}
// Test with the "Traceroute" command
$output = shell_exec("traceroute $ip");
// Show the result
echo "<pre>";
echo $output;
echo "</pre>";
?>

View File

@@ -35,7 +35,6 @@ elseif ($FUNCTION == 'cleanLog')
cleanLog($SETTINGS);
}
//------------------------------------------------------------------------------
// Formatting data functions
//------------------------------------------------------------------------------
@@ -203,7 +202,7 @@ function cleanLog($logFile)
$path = "";
$allowedFiles = ['pialert.log', 'pialert_front.log', 'IP_changes.log', 'stdout.log', 'stderr.log', "pialert_pholus.log", "pialert_pholus_lastrun.log"];
$allowedFiles = ['pialert.log', 'pialert_front.log', 'IP_changes.log', 'stdout.log', 'stderr.log', "pialert_pholus_lastrun.log", 'pialert.php_errors.log'];
if(in_array($logFile, $allowedFiles))
{
@@ -230,7 +229,7 @@ function saveSettings()
{
global $SETTINGS, $FUNCTION, $config_file, $fullConfPath, $configFolderPath, $timestamp;
// save in the file
// save to the file
$new_name = $config_file.'_'.$timestamp.'.backup';
$new_location = $configFolderPath.$new_name;
@@ -260,49 +259,68 @@ function saveSettings()
$txt = $txt."#-----------------AUTOGENERATED FILE-----------------#\n";
// collect all groups
foreach ($SETTINGS as $setting) {
$decodedSettings = json_decode($SETTINGS, true);
foreach ($decodedSettings as $setting) {
if( in_array($setting[0] , $groups) == false) {
array_push($groups ,$setting[0]);
}
}
// go thru the groups and prepare settings to write to file
foreach($groups as $group)
{
$txt = $txt."\n\n# ".$group;
$txt = $txt."\n#---------------------------\n" ;
foreach($SETTINGS as $setting)
{
if($group == $setting[0])
{
if($setting[3] == 'text' or $setting[3] == 'password' or $setting[3] == 'readonly' or $setting[3] == 'selecttext')
{
$txt = $txt.$setting[1]."='".$setting[2]."'\n" ;
} elseif($setting[3] == 'integer' or $setting[3] == 'selectinteger')
{
$txt = $txt.$setting[1]."=".$setting[2]."\n" ;
} elseif($setting[3] == 'boolean')
{
$val = "False";
if($setting[2] == 'true')
{
$val = "True";
}
$txt = $txt.$setting[1]."=".$val."\n" ;
}elseif($setting[3] == 'multiselect' or $setting[3] == 'subnets')
{
$temp = '[';
foreach($setting[2] as $val)
{
$temp = $temp."'". $val."',";
}
$temp = substr_replace($temp, "", -1).']'; // close brackets and remove last comma ','
$txt = $txt.$setting[1]."=".$temp."\n" ;
}
}
foreach ($groups as $group) {
$txt .= "\n\n# " . $group;
$txt .= "\n#---------------------------\n";
foreach ($decodedSettings as $setting) {
$settingGroup = $setting[0];
$settingKey = $setting[1];
$settingType = $setting[2];
$settingValue = $setting[3];
if ($group == $settingGroup) {
if ($settingType == 'text' || $settingType == 'password' || $settingType == 'readonly' || $settingType == 'text.select') {
$val = encode_single_quotes($settingValue);
$txt .= $settingKey . "='" . $val . "'\n";
} elseif ($settingType == 'integer' || $settingType == 'integer.select') {
$txt .= $settingKey . "=" . $settingValue . "\n";
} elseif ($settingType == 'boolean' || $settingType == 'integer.checkbox') {
if ($settingValue === true || $settingValue === 1 || strtolower($settingValue) === 'true') {
$val = "True";
} else {
$val = "False";
}
$txt .= $settingKey . "=" . $val . "\n";
} elseif ($settingType == 'text.multiselect' || $settingType == 'subnets' || $settingType == 'list') {
$temp = '';
if(is_array($settingValue) == FALSE)
{
$settingValue = json_decode($settingValue);
}
if (count($setting) > 3 && is_array($settingValue) == true) {
foreach ($settingValue as $val) {
$temp .= "'" . encode_single_quotes($val) . "',";
}
$temp = substr_replace($temp, "", -1); // remove last comma ','
}
$temp = '['.$temp.']'; // wrap brackets
$txt .= $settingKey . "=" . $temp . "\n";
} elseif ($settingType == 'json') {
$txt .= $settingKey . "=" . $settingValue . "\n";
}
}
}
}
$txt = $txt."\n\n";
$txt = $txt."#-------------------IMPORTANT INFO-------------------#\n";
$txt = $txt."# This file is ingested by a python script, so if #\n";
@@ -310,7 +328,7 @@ function saveSettings()
$txt = $txt."#-------------------IMPORTANT INFO-------------------#\n";
// open new file and write the new configuration
$newConfig = fopen($fullConfPath, "w") or die("Unable to open file!");
$newConfig = fopen($fullConfPath, "w") or die("Unable to open file!");
fwrite($newConfig, $txt);
fclose($newConfig);
@@ -322,8 +340,6 @@ function saveSettings()
}
// -------------------------------------------------------------------------------------------
function getString ($codeName, $default) {
$result = lang($codeName);
@@ -338,11 +354,50 @@ function getString ($codeName, $default) {
// -------------------------------------------------------------------------------------------
function getDateFromPeriod () {
$period = $_REQUEST['period'];
return '"'. date ('Y-m-d', strtotime ('+1 day -'. $period) ) .'"';
function encode_single_quotes ($val) {
$result = str_replace ('\'','{s-quote}',$val);
return $result;
}
// -------------------------------------------------------------------------------------------
function getDateFromPeriod () {
$periodDate = $_REQUEST['period'];
$periodDateSQL = "";
$days = "";
switch ($periodDate) {
case '7 days':
$days = "7";
break;
case '1 month':
$days = "30";
break;
case '1 year':
$days = "365";
break;
case '100 years':
$days = "3650"; //10 years
break;
default:
$days = "1";
}
$periodDateSQL = "-".$days." day";
return " date('now', '".$periodDateSQL."') ";
// $period = $_REQUEST['period'];
// return '"'. date ('Y-m-d', strtotime ('+2 day -'. $period) ) .'"';
}
// -------------------------------------------------------------------------------------------
function quotes ($text) {
return str_replace ('"','""',$text);
@@ -367,11 +422,11 @@ function handleNull ($text, $default = "") {
}
// -------------------------------------------------------------------------------------------
// Currently unused - should be source of truth for network types (or define somewhere else?)
function getNetworkTypes(){
$array = array(
"AP", "Gateway", "Firewall", "Powerline", "Switch", "WLAN", "PLC", "Router","USB LAN Adapter", "USB WIFI Adapter"
"AP", "Gateway", "Firewall", "Hypervisor", "Powerline", "Switch", "WLAN", "PLC", "Router","USB LAN Adapter", "USB WIFI Adapter"
);
return $array;
@@ -403,7 +458,8 @@ function getDevicesColumns(){
"dev_Location",
"dev_Archived",
"dev_Network_Node_port",
"dev_Network_Node_MAC_ADDR"];
"dev_Network_Node_MAC_ADDR",
"dev_Icon"];
return $columns;
}
@@ -426,6 +482,4 @@ function setCache($key, $value, $expireMinutes = 5) {
}
?>
?>

13
front/php/server/utilDB.php Executable file
View File

@@ -0,0 +1,13 @@
<!-- utils needing a DB connection -->
<?php
require dirname(__FILE__).'/init.php';
// Action functions
if (isset ($_REQUEST['key']))
{
echo lang($_REQUEST['key']);
}
?>

21
front/php/templates/build.php Executable file
View File

@@ -0,0 +1,21 @@
<?php
#---------------------------------------------------------------------------------#
# Pi.Alert #
# Open Source Network Guard / WIFI & LAN intrusion detector #
# #
# build.php - Templates module Template to display the current build version #
#---------------------------------------------------------------------------------#
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3 #
# jokob-sk 2022 jokob.sk@gmail.com GNU GPLv3 #
# leiweibau 2022 https://github.com/leiweibau GNU GPLv3 #
# cvc90 2023 https://github.com/cvc90 GNU GPLv3 #
#---------------------------------------------------------------------------------#
$file = "/home/pi/pialert/front/buildtimestamp.txt";
if (file_exists($file)) {
echo date("Y-m-d", ((int)file_get_contents($file)));
}
else {
echo "File not found";
}
?>

View File

@@ -1,26 +1,34 @@
<!-- ---------------------------------------------------------------------------
# Pi.Alert
# Open Source Network Guard / WIFI & LAN intrusion detector
#
# footer.php - Front module. Common footer to all the web pages
#-------------------------------------------------------------------------------
# Puche 2021 / 2022+ jokob jokob@duck.com GNU GPLv3
#--------------------------------------------------------------------------- -->
<!--
#---------------------------------------------------------------------------------#
# Pi.Alert #
# Open Source Network Guard / WIFI & LAN intrusion detector #
# #
# footer.php - Front module. Common footer to all the web pages #
#---------------------------------------------------------------------------------#
# Puche 2021 pi.alert.application@gmail.com GNU GPLv3 #
# jokob-sk 2022 jokob.sk@gmail.com GNU GPLv3 #
# leiweibau 2022 https://github.com/leiweibau GNU GPLv3 #
# cvc90 2023 https://github.com/cvc90 GNU GPLv3 #
#---------------------------------------------------------------------------------#
-->
<!-- Main Footer -->
<footer class="main-footer">
<!-- Default to the left -->
<!-- &copy; 2020 Puche -->
<?php
echo '<span style="display:inline-block; transform: rotate(180deg)">&copy;</span> 2020 Puche (2022+ <a href="mailto:jokob@duck.com?subject=PiAlert">jokob-sk</a>)';
?>
<!-- &copy; 2022 jokob-sk -->
<span style="display:inline-block; transform: rotate(180deg)">&copy;</span>
2020 Puche (2022+ <a href="mailto:jokob@duck.com?subject=PiAlert">jokob-sk</a>) | <b><?= lang('Maintenance_built_on');?>: </b>
<?php include 'php/templates/build.php'; ?> | <b> Version: </b> <?php include 'php/templates/version.php'; ?> |
<a href="https://github.com/jokob-sk/Pi.Alert/tree/main/docs" target="_blank"><span>Docs <i class="fa fa-circle-question"></i></a>
<span>
<!-- To the right -->
<div class="pull-right no-hidden-xs">
<!-- Pi.Alert 2.50 <small>(2019-12-30)</small> -->
<!-- Pi.Alert footer with url -->
<?php
echo 'Pi.Alert';
echo '<a href="https://github.com/jokob-sk/Pi.Alert" target="_blank">Pi.Alert</a>';
?>
</div>
</footer>
@@ -31,9 +39,7 @@
</div>
<!-- ./wrapper -->
<!-- Bootstrap 3.3.7 -->
<script src="lib/AdminLTE/bower_components/bootstrap/dist/js/bootstrap.min.js"></script>

Some files were not shown because too many files have changed in this diff Show More