pialert-install.sh 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #!/usr/bin/env bash
  2. # Copyright (c) 2021-2023 tteck
  3. # Author: tteck (tteckster)
  4. # License: MIT
  5. # https://github.com/tteck/Proxmox/raw/main/LICENSE
  6. source /dev/stdin <<< "$FUNCTIONS_FILE_PATH"
  7. color
  8. verb_ip6
  9. catch_errors
  10. setting_up_container
  11. network_check
  12. update_os
  13. msg_info "Installing Dependencies"
  14. $STD apt-get -y install \
  15. sudo \
  16. mc \
  17. curl \
  18. apt-utils \
  19. lighttpd \
  20. sqlite3 \
  21. mmdb-bin \
  22. arp-scan \
  23. dnsutils \
  24. net-tools \
  25. libwww-perl \
  26. nmap \
  27. zip \
  28. aria2 \
  29. wakeonlan
  30. msg_ok "Installed Dependencies"
  31. msg_info "Installing PHP Dependencies"
  32. $STD apt-get -y install \
  33. php \
  34. php-cgi \
  35. php-fpm \
  36. php-curl \
  37. php-xml \
  38. php-sqlite3
  39. $STD lighttpd-enable-mod fastcgi-php
  40. service lighttpd force-reload
  41. msg_ok "Installed PHP Dependencies"
  42. msg_info "Installing Python Dependencies"
  43. $STD apt-get -y install \
  44. python3-pip \
  45. python3-requests
  46. $STD pip3 install mac-vendor-lookup
  47. $STD pip3 install fritzconnection
  48. $STD pip3 install cryptography
  49. $STD pip3 install pyunifi
  50. msg_ok "Installed Python Dependencies"
  51. msg_info "Installing Pi.Alert"
  52. curl -sL https://github.com/leiweibau/Pi.Alert/raw/main/tar/pialert_latest.tar | tar xvf - -C /opt >/dev/null 2>&1
  53. rm -rf /var/lib/ieee-data /var/www/html/index.html
  54. sed -i -e 's#^sudo cp -n /usr/share/ieee-data/.* /var/lib/ieee-data/#\# &#' -e '/^sudo mkdir -p 2_backup$/s/^/# /' -e '/^sudo cp \*.txt 2_backup$/s/^/# /' -e '/^sudo cp \*.csv 2_backup$/s/^/# /' /opt/pialert/back/update_vendors.sh
  55. mv /var/www/html/index.lighttpd.html /var/www/html/index.lighttpd.html.old
  56. ln -s /usr/share/ieee-data/ /var/lib/
  57. ln -s /opt/pialert/install/index.html /var/www/html/index.html
  58. ln -s /opt/pialert/front /var/www/html/pialert
  59. chmod go+x /opt/pialert /opt/pialert/back/shoutrrr/x86/shoutrrr
  60. chgrp -R www-data /opt/pialert/db /opt/pialert/front/reports /opt/pialert/config /opt/pialert/config/pialert.conf
  61. chmod -R 775 /opt/pialert/db /opt/pialert/db/temp /opt/pialert/config /opt/pialert/front/reports
  62. touch /opt/pialert/log/pialert.vendors.log /opt/pialert/log/pialert.IP.log /opt/pialert/log/pialert.1.log /opt/pialert/log/pialert.cleanup.log /opt/pialert/log/pialert.webservices.log
  63. src_dir="/opt/pialert/log"
  64. dest_dir="/opt/pialert/front/php/server"
  65. for file in pialert.vendors.log pialert.IP.log pialert.1.log pialert.cleanup.log pialert.webservices.log; do
  66. ln -s "$src_dir/$file" "$dest_dir/$file"
  67. done
  68. sed -i 's#PIALERT_PATH\s*=\s*'\''/home/pi/pialert'\''#PIALERT_PATH = '\''/opt/pialert'\''#' /opt/pialert/config/pialert.conf
  69. sed -i 's/$HOME/\/opt/g' /opt/pialert/install/pialert.cron
  70. crontab /opt/pialert/install/pialert.cron
  71. echo "bash -c \"\$(wget -qLO - https://github.com/leiweibau/Pi.Alert/raw/main/install/pialert_update.sh)\" -s --lxc" >/usr/bin/update
  72. chmod +x /usr/bin/update
  73. echo "python3 /opt/pialert/back/pialert.py 1" >/usr/bin/scan
  74. chmod +x /usr/bin/scan
  75. echo "/opt/pialert/back/pialert-cli set_permissions --lxc" >/usr/bin/permissions
  76. chmod +x /usr/bin/permissions
  77. echo "/opt/pialert/back/pialert-cli set_sudoers --lxc" >/usr/bin/sudoers
  78. chmod +x /usr/bin/sudoers
  79. msg_ok "Installed Pi.Alert"
  80. msg_info "Start Pi.Alert Scan (Patience)"
  81. $STD python3 /opt/pialert/back/pialert.py update_vendors
  82. $STD python3 /opt/pialert/back/pialert.py internet_IP
  83. $STD python3 /opt/pialert/back/pialert.py 1
  84. msg_ok "Finished Pi.Alert Scan"
  85. motd_ssh
  86. customize
  87. msg_info "Cleaning up"
  88. $STD apt-get autoremove
  89. $STD apt-get autoclean
  90. msg_ok "Cleaned"