Detecting node status, editing NS envs

pull/1/head
Dominik Dzienia 2 years ago
parent ba5ef451e6
commit 281be8144c

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
### version: 1.3.2 ### version: 1.4.0
# ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.# # ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.#
# Nightscout Mikr.us setup script # # Nightscout Mikr.us setup script #
@ -33,7 +33,7 @@ MONGO_DB_DIR=/srv/nightscout/data/mongodb
TOOL_FILE=/srv/nightscout/tools/nightscout-tool TOOL_FILE=/srv/nightscout/tools/nightscout-tool
TOOL_LINK=/usr/bin/nightscout-tool TOOL_LINK=/usr/bin/nightscout-tool
UPDATES_DIR=/srv/nightscout/updates UPDATES_DIR=/srv/nightscout/updates
SCRIPT_VERSION="1.3.2" #auto-update SCRIPT_VERSION="1.4.0" #auto-update
SCRIPT_BUILD_TIME="2023.09.04" #auto-update SCRIPT_BUILD_TIME="2023.09.04" #auto-update
#======================================= #=======================================
@ -140,6 +140,7 @@ uni_excl="$(printf '\U203C')"
uni_confirm_del=" $(printf '\U1F4A3') Tak " uni_confirm_del=" $(printf '\U1F4A3') Tak "
uni_confirm_ch=" $(printf '\U1F199') Zmień " uni_confirm_ch=" $(printf '\U1F199') Zmień "
uni_confirm_upd=" $(printf '\U1F199') Aktualizuj " uni_confirm_upd=" $(printf '\U1F199') Aktualizuj "
uni_confirm_ed=" $(printf '\U1F4DD') Edytuj "
uni_install=" $(printf '\U1F680') Instaluj " uni_install=" $(printf '\U1F680') Instaluj "
uni_resign=" $(printf '\U1F6AB') Rezygnuję " uni_resign=" $(printf '\U1F6AB') Rezygnuję "
@ -390,7 +391,12 @@ check_dotenv() {
check_ufw() { check_ufw() {
ufw --version >/dev/null 2>&1 ufw --version >/dev/null 2>&1
add_if_not_ok "UFW" "ufw" add_if_not_ok "Firewall" "ufw"
}
check_nano() {
nano --version >/dev/null 2>&1
add_if_not_ok "Text Editor" "nano"
} }
setup_packages() { setup_packages() {
@ -405,13 +411,13 @@ setup_node() {
if [ $RESULT -eq 0 ]; then if [ $RESULT -eq 0 ]; then
msgcheck "Node installed in correct version" msgcheck "Node installed in correct version"
else else
# ohai "Cleaning old Node.js" ohai "Cleaning old Node.js"
# { {
# rm -f /etc/apt/sources.list.d/nodesource.list rm -f /etc/apt/sources.list.d/nodesource.list
# apt-get -yq --fix-broken install apt-get -yq --fix-broken install
# apt-get -yq update apt-get -yq update
# apt-get -yq remove nodejs nodejs-doc libnode* apt-get -yq remove nodejs nodejs-doc libnode*
# } >>$LOGTO 2>&1 } >>$LOGTO 2>&1
ohai "Preparing Node.js setup" ohai "Preparing Node.js setup"
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - >/dev/null 2>&1 curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - >/dev/null 2>&1
@ -956,7 +962,7 @@ version_menu() {
done <<< "$tags" done <<< "$tags"
versions+=("M)") versions+=("M)")
versions+=("Powrót do poprzedniego menu") versions+=(" Powrót do poprzedniego menu")
local CHOICE=$(whiptail --title "Wersja Nightscout" --menu "\nZmień wersję kontenera Nightscout z: $ns_tag na:\n\n" 20 60 10 \ local CHOICE=$(whiptail --title "Wersja Nightscout" --menu "\nZmień wersję kontenera Nightscout z: $ns_tag na:\n\n" 20 60 10 \
"${versions[@]}" \ "${versions[@]}" \
@ -993,27 +999,36 @@ version_menu() {
uninstall_menu() { uninstall_menu() {
while :; do while :; do
local ns_tag=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_NIGHTSCOUT_TAG") local ns_tag=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_NIGHTSCOUT_TAG")
local CHOICE=$(whiptail --title "Zmień lub odinstaluj Nightscout" --menu "\n" 15 70 6 \ local CHOICE=$(whiptail --title "Zmień lub odinstaluj Nightscout" --menu "\n" 17 70 7 \
"1)" "Zmień wersję Nightscouta (bieżąca: $ns_tag)" \ "W)" "Zmień wersję Nightscouta (bieżąca: $ns_tag)" \
"2)" "Usuń kontenery" \ "E)" "Edytuj ustawienia (zmienne środowiskowe)" \
"3)" "Wyczyść bazę danych" \ "K)" "Usuń kontenery" \
"4)" "Usuń kontenery, dane i konfigurację" \ "B)" "Wyczyść bazę danych" \
"5)" "Usuń wszystko - odinstaluj" \ "D)" "Usuń kontenery, dane i konfigurację" \
"U)" "Usuń wszystko - odinstaluj" \
"M)" "Powrót do menu" \ "M)" "Powrót do menu" \
--ok-button="$uni_select" --cancel-button="$uni_back" \ --ok-button="$uni_select" --cancel-button="$uni_back" \
3>&2 2>&1 1>&3) 3>&2 2>&1 1>&3)
case $CHOICE in case $CHOICE in
"1)") "W)")
version_menu version_menu
;; ;;
"2)") "E)")
whiptail --title "Edycja ustawień Nightscout" --yesno "Za chwilę otworzę plik konfiguracji Nightscout w edytorze NANO\n\nWskazówki co do obsługi edytora:\n${uni_bullet}Aby ZAPISAĆ zmiany naciśnij Ctrl+O\n${uni_bullet}Aby ZAKOŃCZYĆ edycję naciśnij Ctrl+X\n\n $(printf "\U26A0") Edycja spowoduje też restart i aktualizację kontenerów $(printf "\U26A0")" --yes-button "$uni_confirm_ed" --no-button "$uni_resign" 15 68
if ! [ $? -eq 1 ]; then
nano $ENV_FILE_NS
docker_compose_down
docker_compose_up
fi
;;
"K)")
whiptail --title "Usunąć kontenery?" --yesno --defaultno "Czy na pewno chcesz usunąć kontenery powiązane z Nightscout?\n\n${uni_bullet}dane i konfiguracja NIE SĄ usuwane\n${uni_bullet}kontenery można łatwo odzyskać (opcja Aktualizuj kontenery)" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 11 73 whiptail --title "Usunąć kontenery?" --yesno --defaultno "Czy na pewno chcesz usunąć kontenery powiązane z Nightscout?\n\n${uni_bullet}dane i konfiguracja NIE SĄ usuwane\n${uni_bullet}kontenery można łatwo odzyskać (opcja Aktualizuj kontenery)" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 11 73
if ! [ $? -eq 1 ]; then if ! [ $? -eq 1 ]; then
docker_compose_down docker_compose_down
fi fi
;; ;;
"3)") "B)")
whiptail --title "Usunąć dane z bazy danych?" --yesno --defaultno "Czy na pewno chcesz usunąć dane z bazy danych?\n\n${uni_bullet}konfiguracja serwera NIE ZOSTANIE usunięta\n${uni_bullet}usunięte zostaną wszystkie dane użytkownika\n${uni_bullet_pad} (m.in. historia glikemii, wpisy, notatki, pomiary, profile)\n${uni_bullet}kontenery zostaną zatrzymane i uruchomione ponownie (zaktualizowane)" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 13 78 whiptail --title "Usunąć dane z bazy danych?" --yesno --defaultno "Czy na pewno chcesz usunąć dane z bazy danych?\n\n${uni_bullet}konfiguracja serwera NIE ZOSTANIE usunięta\n${uni_bullet}usunięte zostaną wszystkie dane użytkownika\n${uni_bullet_pad} (m.in. historia glikemii, wpisy, notatki, pomiary, profile)\n${uni_bullet}kontenery zostaną zatrzymane i uruchomione ponownie (zaktualizowane)" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 13 78
if ! [ $? -eq 1 ]; then if ! [ $? -eq 1 ]; then
docker_compose_down docker_compose_down
@ -1022,7 +1037,7 @@ uninstall_menu() {
docker_compose_up docker_compose_up
fi fi
;; ;;
"4)") "D)")
whiptail --title "Usunąć wszystkie dane?" --yesno --defaultno "Czy na pewno chcesz usunąć wszystkie dane i konfigurację?\n\n${uni_bullet}konfigurację panelu, ustawienia Nightscout\n${uni_bullet}wszystkie dane użytkownika\n${uni_bullet_pad} (m.in. historia glikemii, wpisy, notatki, pomiary, profile)\n${uni_bullet}kontenery zostaną zatrzymane" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 13 78 whiptail --title "Usunąć wszystkie dane?" --yesno --defaultno "Czy na pewno chcesz usunąć wszystkie dane i konfigurację?\n\n${uni_bullet}konfigurację panelu, ustawienia Nightscout\n${uni_bullet}wszystkie dane użytkownika\n${uni_bullet_pad} (m.in. historia glikemii, wpisy, notatki, pomiary, profile)\n${uni_bullet}kontenery zostaną zatrzymane" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 13 78
if ! [ $? -eq 1 ]; then if ! [ $? -eq 1 ]; then
docker_compose_down docker_compose_down
@ -1034,7 +1049,7 @@ uninstall_menu() {
exit 0 exit 0
fi fi
;; ;;
"5)") "U)")
whiptail --title "Odinstalować?" --yesno --defaultno "Czy na pewno chcesz usunąć wszystko?\n${uni_bullet}konfigurację panelu, ustawienia Nightscout\n${uni_bullet}wszystkie dane użytkownika (glikemia, status, profile)\n${uni_bullet}kontenery, skrypt nightscout-tool\n\nNIE ZOSTANĄ USUNIĘTE/ODINSTALOWANE:\n${uni_bullet}użytkownik mongo db, firewall, doinstalowane pakiety\n${uni_bullet}kopie zapasowe bazy danych" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 16 78 whiptail --title "Odinstalować?" --yesno --defaultno "Czy na pewno chcesz usunąć wszystko?\n${uni_bullet}konfigurację panelu, ustawienia Nightscout\n${uni_bullet}wszystkie dane użytkownika (glikemia, status, profile)\n${uni_bullet}kontenery, skrypt nightscout-tool\n\nNIE ZOSTANĄ USUNIĘTE/ODINSTALOWANE:\n${uni_bullet}użytkownik mongo db, firewall, doinstalowane pakiety\n${uni_bullet}kopie zapasowe bazy danych" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 16 78
if ! [ $? -eq 1 ]; then if ! [ $? -eq 1 ]; then
docker_compose_down docker_compose_down
@ -1158,6 +1173,7 @@ check_docker
check_docker_compose check_docker_compose
check_jq check_jq
check_ufw check_ufw
check_nano
setup_packages setup_packages
setup_node setup_node
check_dotenv check_dotenv

@ -1,6 +1,6 @@
{ {
"name": "@dlvoy/ns-installer-mikrus", "name": "@dlvoy/ns-installer-mikrus",
"version": "1.3.2", "version": "1.4.0",
"description": "Nightscout installer for mikr.us VPS", "description": "Nightscout installer for mikr.us VPS",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {

@ -17,7 +17,7 @@ MONGO_DB_DIR=/srv/nightscout/data/mongodb
TOOL_FILE=/srv/nightscout/tools/nightscout-tool TOOL_FILE=/srv/nightscout/tools/nightscout-tool
TOOL_LINK=/usr/bin/nightscout-tool TOOL_LINK=/usr/bin/nightscout-tool
UPDATES_DIR=/srv/nightscout/updates UPDATES_DIR=/srv/nightscout/updates
SCRIPT_VERSION="1.3.2" #auto-update SCRIPT_VERSION="1.4.0" #auto-update
SCRIPT_BUILD_TIME="2023.09.04" #auto-update SCRIPT_BUILD_TIME="2023.09.04" #auto-update
#======================================= #=======================================
@ -124,6 +124,7 @@ uni_excl="$(printf '\U203C')"
uni_confirm_del=" $(printf '\U1F4A3') Tak " uni_confirm_del=" $(printf '\U1F4A3') Tak "
uni_confirm_ch=" $(printf '\U1F199') Zmień " uni_confirm_ch=" $(printf '\U1F199') Zmień "
uni_confirm_upd=" $(printf '\U1F199') Aktualizuj " uni_confirm_upd=" $(printf '\U1F199') Aktualizuj "
uni_confirm_ed=" $(printf '\U1F4DD') Edytuj "
uni_install=" $(printf '\U1F680') Instaluj " uni_install=" $(printf '\U1F680') Instaluj "
uni_resign=" $(printf '\U1F6AB') Rezygnuję " uni_resign=" $(printf '\U1F6AB') Rezygnuję "
@ -374,7 +375,12 @@ check_dotenv() {
check_ufw() { check_ufw() {
ufw --version >/dev/null 2>&1 ufw --version >/dev/null 2>&1
add_if_not_ok "UFW" "ufw" add_if_not_ok "Firewall" "ufw"
}
check_nano() {
nano --version >/dev/null 2>&1
add_if_not_ok "Text Editor" "nano"
} }
setup_packages() { setup_packages() {
@ -389,13 +395,13 @@ setup_node() {
if [ $RESULT -eq 0 ]; then if [ $RESULT -eq 0 ]; then
msgcheck "Node installed in correct version" msgcheck "Node installed in correct version"
else else
# ohai "Cleaning old Node.js" ohai "Cleaning old Node.js"
# { {
# rm -f /etc/apt/sources.list.d/nodesource.list rm -f /etc/apt/sources.list.d/nodesource.list
# apt-get -yq --fix-broken install apt-get -yq --fix-broken install
# apt-get -yq update apt-get -yq update
# apt-get -yq remove nodejs nodejs-doc libnode* apt-get -yq remove nodejs nodejs-doc libnode*
# } >>$LOGTO 2>&1 } >>$LOGTO 2>&1
ohai "Preparing Node.js setup" ohai "Preparing Node.js setup"
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - >/dev/null 2>&1 curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash - >/dev/null 2>&1
@ -940,7 +946,7 @@ version_menu() {
done <<< "$tags" done <<< "$tags"
versions+=("M)") versions+=("M)")
versions+=("Powrót do poprzedniego menu") versions+=(" Powrót do poprzedniego menu")
local CHOICE=$(whiptail --title "Wersja Nightscout" --menu "\nZmień wersję kontenera Nightscout z: $ns_tag na:\n\n" 20 60 10 \ local CHOICE=$(whiptail --title "Wersja Nightscout" --menu "\nZmień wersję kontenera Nightscout z: $ns_tag na:\n\n" 20 60 10 \
"${versions[@]}" \ "${versions[@]}" \
@ -977,27 +983,36 @@ version_menu() {
uninstall_menu() { uninstall_menu() {
while :; do while :; do
local ns_tag=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_NIGHTSCOUT_TAG") local ns_tag=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_NIGHTSCOUT_TAG")
local CHOICE=$(whiptail --title "Zmień lub odinstaluj Nightscout" --menu "\n" 15 70 6 \ local CHOICE=$(whiptail --title "Zmień lub odinstaluj Nightscout" --menu "\n" 17 70 7 \
"1)" "Zmień wersję Nightscouta (bieżąca: $ns_tag)" \ "W)" "Zmień wersję Nightscouta (bieżąca: $ns_tag)" \
"2)" "Usuń kontenery" \ "E)" "Edytuj ustawienia (zmienne środowiskowe)" \
"3)" "Wyczyść bazę danych" \ "K)" "Usuń kontenery" \
"4)" "Usuń kontenery, dane i konfigurację" \ "B)" "Wyczyść bazę danych" \
"5)" "Usuń wszystko - odinstaluj" \ "D)" "Usuń kontenery, dane i konfigurację" \
"U)" "Usuń wszystko - odinstaluj" \
"M)" "Powrót do menu" \ "M)" "Powrót do menu" \
--ok-button="$uni_select" --cancel-button="$uni_back" \ --ok-button="$uni_select" --cancel-button="$uni_back" \
3>&2 2>&1 1>&3) 3>&2 2>&1 1>&3)
case $CHOICE in case $CHOICE in
"1)") "W)")
version_menu version_menu
;; ;;
"2)") "E)")
whiptail --title "Edycja ustawień Nightscout" --yesno "Za chwilę otworzę plik konfiguracji Nightscout w edytorze NANO\n\nWskazówki co do obsługi edytora:\n${uni_bullet}Aby ZAPISAĆ zmiany naciśnij Ctrl+O\n${uni_bullet}Aby ZAKOŃCZYĆ edycję naciśnij Ctrl+X\n\n $(printf "\U26A0") Edycja spowoduje też restart i aktualizację kontenerów $(printf "\U26A0")" --yes-button "$uni_confirm_ed" --no-button "$uni_resign" 15 68
if ! [ $? -eq 1 ]; then
nano $ENV_FILE_NS
docker_compose_down
docker_compose_up
fi
;;
"K)")
whiptail --title "Usunąć kontenery?" --yesno --defaultno "Czy na pewno chcesz usunąć kontenery powiązane z Nightscout?\n\n${uni_bullet}dane i konfiguracja NIE SĄ usuwane\n${uni_bullet}kontenery można łatwo odzyskać (opcja Aktualizuj kontenery)" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 11 73 whiptail --title "Usunąć kontenery?" --yesno --defaultno "Czy na pewno chcesz usunąć kontenery powiązane z Nightscout?\n\n${uni_bullet}dane i konfiguracja NIE SĄ usuwane\n${uni_bullet}kontenery można łatwo odzyskać (opcja Aktualizuj kontenery)" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 11 73
if ! [ $? -eq 1 ]; then if ! [ $? -eq 1 ]; then
docker_compose_down docker_compose_down
fi fi
;; ;;
"3)") "B)")
whiptail --title "Usunąć dane z bazy danych?" --yesno --defaultno "Czy na pewno chcesz usunąć dane z bazy danych?\n\n${uni_bullet}konfiguracja serwera NIE ZOSTANIE usunięta\n${uni_bullet}usunięte zostaną wszystkie dane użytkownika\n${uni_bullet_pad} (m.in. historia glikemii, wpisy, notatki, pomiary, profile)\n${uni_bullet}kontenery zostaną zatrzymane i uruchomione ponownie (zaktualizowane)" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 13 78 whiptail --title "Usunąć dane z bazy danych?" --yesno --defaultno "Czy na pewno chcesz usunąć dane z bazy danych?\n\n${uni_bullet}konfiguracja serwera NIE ZOSTANIE usunięta\n${uni_bullet}usunięte zostaną wszystkie dane użytkownika\n${uni_bullet_pad} (m.in. historia glikemii, wpisy, notatki, pomiary, profile)\n${uni_bullet}kontenery zostaną zatrzymane i uruchomione ponownie (zaktualizowane)" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 13 78
if ! [ $? -eq 1 ]; then if ! [ $? -eq 1 ]; then
docker_compose_down docker_compose_down
@ -1006,7 +1021,7 @@ uninstall_menu() {
docker_compose_up docker_compose_up
fi fi
;; ;;
"4)") "D)")
whiptail --title "Usunąć wszystkie dane?" --yesno --defaultno "Czy na pewno chcesz usunąć wszystkie dane i konfigurację?\n\n${uni_bullet}konfigurację panelu, ustawienia Nightscout\n${uni_bullet}wszystkie dane użytkownika\n${uni_bullet_pad} (m.in. historia glikemii, wpisy, notatki, pomiary, profile)\n${uni_bullet}kontenery zostaną zatrzymane" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 13 78 whiptail --title "Usunąć wszystkie dane?" --yesno --defaultno "Czy na pewno chcesz usunąć wszystkie dane i konfigurację?\n\n${uni_bullet}konfigurację panelu, ustawienia Nightscout\n${uni_bullet}wszystkie dane użytkownika\n${uni_bullet_pad} (m.in. historia glikemii, wpisy, notatki, pomiary, profile)\n${uni_bullet}kontenery zostaną zatrzymane" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 13 78
if ! [ $? -eq 1 ]; then if ! [ $? -eq 1 ]; then
docker_compose_down docker_compose_down
@ -1018,7 +1033,7 @@ uninstall_menu() {
exit 0 exit 0
fi fi
;; ;;
"5)") "U)")
whiptail --title "Odinstalować?" --yesno --defaultno "Czy na pewno chcesz usunąć wszystko?\n${uni_bullet}konfigurację panelu, ustawienia Nightscout\n${uni_bullet}wszystkie dane użytkownika (glikemia, status, profile)\n${uni_bullet}kontenery, skrypt nightscout-tool\n\nNIE ZOSTANĄ USUNIĘTE/ODINSTALOWANE:\n${uni_bullet}użytkownik mongo db, firewall, doinstalowane pakiety\n${uni_bullet}kopie zapasowe bazy danych" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 16 78 whiptail --title "Odinstalować?" --yesno --defaultno "Czy na pewno chcesz usunąć wszystko?\n${uni_bullet}konfigurację panelu, ustawienia Nightscout\n${uni_bullet}wszystkie dane użytkownika (glikemia, status, profile)\n${uni_bullet}kontenery, skrypt nightscout-tool\n\nNIE ZOSTANĄ USUNIĘTE/ODINSTALOWANE:\n${uni_bullet}użytkownik mongo db, firewall, doinstalowane pakiety\n${uni_bullet}kopie zapasowe bazy danych" --yes-button "$uni_confirm_del" --no-button "$uni_resign" 16 78
if ! [ $? -eq 1 ]; then if ! [ $? -eq 1 ]; then
docker_compose_down docker_compose_down

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
### version: 1.3.2 ### version: 1.4.0
# ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.# # ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.#
# Nightscout Mikr.us setup script # # Nightscout Mikr.us setup script #
@ -31,6 +31,7 @@ check_docker
check_docker_compose check_docker_compose
check_jq check_jq
check_ufw check_ufw
check_nano
setup_packages setup_packages
setup_node setup_node
check_dotenv check_dotenv

@ -1 +1 @@
2023-09-04T13:12:07.021Z 2023-09-04T21:02:09.851Z
Loading…
Cancel
Save