Added firewall config and NS version changing

pull/1/head
Dominik Dzienia 2 years ago
parent 89d0e3d559
commit 956dc7c80b

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
### version: 1.2.0 ### version: 1.3.0
# ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.# # ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.#
# Nightscout Mikr.us setup script # # Nightscout Mikr.us setup script #
@ -33,8 +33,8 @@ 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.2.0" #auto-update SCRIPT_VERSION="1.3.0" #auto-update
SCRIPT_BUILD_TIME="2023.07.23" #auto-update SCRIPT_BUILD_TIME="2023.09.04" #auto-update
#======================================= #=======================================
# SETUP # SETUP
@ -123,6 +123,7 @@ tty_reset="$(tty_escape 0)"
emoji_check="\U2705" emoji_check="\U2705"
emoji_ok="\U1F197" emoji_ok="\U1F197"
emoji_err="\U274C"
uni_bullet=" $(printf '\u2022') " uni_bullet=" $(printf '\u2022') "
uni_bullet_pad=" " uni_bullet_pad=" "
@ -137,6 +138,7 @@ uni_back=" $(printf '\U2B05') Wróć "
uni_select=" Wybierz " uni_select=" Wybierz "
uni_excl="$(printf '\U203C')" uni_excl="$(printf '\U203C')"
uni_confirm_del=" $(printf '\U1F4A3') Tak " uni_confirm_del=" $(printf '\U1F4A3') Tak "
uni_confirm_ch=" $(printf '\U1F199') Zmień "
uni_confirm_upd=" $(printf '\U1F199') Aktualizuj " uni_confirm_upd=" $(printf '\U1F199') Aktualizuj "
uni_install=" $(printf '\U1F680') Instaluj " uni_install=" $(printf '\U1F680') Instaluj "
uni_resign=" $(printf '\U1F6AB') Rezygnuję " uni_resign=" $(printf '\U1F6AB') Rezygnuję "
@ -173,6 +175,11 @@ msgcheck() {
printf "$emoji_check $1\n" printf "$emoji_check $1\n"
} }
msgerr() {
# shellcheck disable=SC2059
printf "$emoji_err $1\n"
}
warn() { warn() {
printf "${tty_red}Warning${tty_reset}: %s\n" "$(chomp "$1")" >&2 printf "${tty_red}Warning${tty_reset}: %s\n" "$(chomp "$1")" >&2
} }
@ -381,6 +388,11 @@ check_dotenv() {
add_if_not_ok_cmd "dotenv-tool" "npm install -g dotenv-tool --registry https://npm.dzienia.pl" add_if_not_ok_cmd "dotenv-tool" "npm install -g dotenv-tool --registry https://npm.dzienia.pl"
} }
check_ufw() {
ufw --version >/dev/null 2>&1
add_if_not_ok "UFW" "ufw"
}
setup_packages() { setup_packages() {
# shellcheck disable=SC2145 # shellcheck disable=SC2145
# shellcheck disable=SC2068 # shellcheck disable=SC2068
@ -421,6 +433,54 @@ setup_dir_structure() {
chown -R mongodb:root $MONGO_DB_DIR chown -R mongodb:root $MONGO_DB_DIR
} }
setup_firewall() {
ohai "Configuring firewall"
{
ufw default deny incoming
ufw default allow outgoing
ufw allow OpenSSH
ufw allow ssh
} >>$LOGTO 2>&1
host=$(hostname)
host=${host:1}
port1=$((10000+host))
port2=$((20000+host))
port3=$((30000+host))
if ufw allow $port1 >>$LOGTO 2>&1 ; then
msgcheck "Do regul firewalla poprawnie dodano port $port1"
else
msgerr "Blad dodawania $port1 do regul firewalla"
fi
if ufw allow $port2 >>$LOGTO 2>&1 ; then
msgcheck "Do regul firewalla poprawnie dodano port $port2"
else
msgerr "Blad dodawania $port2 do regul firewalla"
fi
if ufw allow $port3 >>$LOGTO 2>&1 ; then
msgcheck "Do regul firewalla poprawnie dodano port $port3"
else
msgerr "Blad dodawania $port3 do regul firewalla"
fi
ufw --force enable >>$LOGTO 2>&1
}
setup_firewall_for_ns() {
ns_external_port=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_PORT")
if ufw allow "$ns_external_port" >>$LOGTO 2>&1 ; then
msgcheck "Do regul firewalla poprawnie dodano port Nightscout: $ns_external_port"
else
msgerr "Blad dodawania portu Nightscout: $ns_external_port do reguł firewalla"
fi
}
get_docker_status() { get_docker_status() {
local ID=$(docker ps -a --no-trunc --filter name="^$1" --format '{{ .ID }}') local ID=$(docker ps -a --no-trunc --filter name="^$1" --format '{{ .ID }}')
if [[ "$ID" =~ [0-9a-fA-F]{12,} ]]; then if [[ "$ID" =~ [0-9a-fA-F]{12,} ]]; then
@ -844,9 +904,73 @@ status_menu() {
done done
} }
uninstall_menu() { version_menu() {
local ns_tag=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_NIGHTSCOUT_TAG")
local tags=$(wget -q -O - "https://hub.docker.com/v2/namespaces/nightscout/repositories/cgm-remote-monitor/tags?page_size=100" | jq -r ".results[].name" | sed "/dev_[a-f0-9]*/d" | sort --version-sort -u -r | head -n 8)
while :; do while :; do
local ns_tag=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_NIGHTSCOUT_TAG")
local versions=()
while read -r line
do
if [ "$line" == "$ns_tag" ]; then
continue
fi
label=" - na sztywno $line "
if [ "$line" == "latest_dev" ]; then
label=" - najnowsza wersja rozwojowa "
fi
if [ "$line" == "latest" ]; then
label=" - aktualna wersja stabilna "
fi
versions+=("$line")
versions+=("$label")
done <<< "$tags"
versions+=("M)")
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 \
"${versions[@]}" \
--ok-button="Zmień" --cancel-button="$uni_back" \
3>&2 2>&1 1>&3)
if [ "$CHOICE" == "M)" ]; then
break
fi
if [ "$CHOICE" == "" ]; then
break
fi
if [ "$CHOICE" == "$ns_tag" ]; then
whiptail --title "Ta sama wersja!" --msgbox "Wybrano bieżącą wersję - brak zmiany" 7 50
else
whiptail --title "Zmienić wersję Nightscout?" --yesno --defaultno "Czy na pewno chcesz zmienić wersję z: $ns_tag na: $CHOICE?\n\n${uni_bullet}dane i konfiguracja NIE SĄ usuwane\n${uni_bullet}wersję można łatwo zmienić ponownie\n${uni_bullet}dane w bazie danych mogą ulec zmianie i NIE BYĆ kompatybilne" --yes-button "$uni_confirm_ch" --no-button "$uni_resign" 13 73
if ! [ $? -eq 1 ]; then
docker_compose_down
ohai "Changing Nightscout container tag from: $ns_tag to: $CHOICE"
dotenv-tool -pmr -i $ENV_FILE_DEP -- "NS_NIGHTSCOUT_TAG=$CHOICE"
docker_compose_up
whiptail --title "Zmieniono wersję Nightscout" --msgbox "$(center_multiline "Zmieniono wersję Nightscout na: $CHOICE\n\nSprawdź czy Nightscout działa poprawnie, w razie problemów:\n${uni_bullet}aktualizuj kontenery\n${uni_bullet}spróbuj wyczyścić bazę danych\n${uni_bullet}wróć do poprzedniej wersji ($ns_tag)" 65)" 13 70
break
fi
fi
done
}
uninstall_menu() {
while :; do
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" 15 70 6 \
"1)" "Zmień wersję Nightscouta (bieżąca: $ns_tag)" \ "1)" "Zmień wersję Nightscouta (bieżąca: $ns_tag)" \
"2)" "Usuń kontenery" \ "2)" "Usuń kontenery" \
@ -858,6 +982,9 @@ uninstall_menu() {
3>&2 2>&1 1>&3) 3>&2 2>&1 1>&3)
case $CHOICE in case $CHOICE in
"1)")
version_menu
;;
"2)") "2)")
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
@ -911,8 +1038,10 @@ uninstall_menu() {
main_menu() { main_menu() {
while :; do while :; do
local ns_tag=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_NIGHTSCOUT_TAG")
local quickStatus=$(center_text "Nightscout: $(get_container_status 'ns-server')" 55) local quickStatus=$(center_text "Nightscout: $(get_container_status 'ns-server')" 55)
local CHOICE=$(whiptail --title "Zarządzanie Nightscoutem" --menu "\n$quickStatus\n" 19 60 8 \ local quickVersion=$(center_text "Wersja: $ns_tag" 55)
local CHOICE=$(whiptail --title "Zarządzanie Nightscoutem" --menu "\n$quickStatus\n$quickVersion\n" 19 60 8 \
"1)" "Status kontenerów i logi" \ "1)" "Status kontenerów i logi" \
"2)" "Pokaż port i API SECRET" \ "2)" "Pokaż port i API SECRET" \
"3)" "Aktualizuj system" \ "3)" "Aktualizuj system" \
@ -984,6 +1113,7 @@ install_or_menu() {
if [ "$freshInstall" -gt 0 ]; then if [ "$freshInstall" -gt 0 ]; then
ohai "Instalowanie Nightscout..." ohai "Instalowanie Nightscout..."
docker_compose_up docker_compose_up
setup_firewall_for_ns
domain_setup domain_setup
admin_panel_promo admin_panel_promo
setup_done setup_done
@ -1005,6 +1135,7 @@ check_git
check_docker check_docker
check_docker_compose check_docker_compose
check_jq check_jq
check_ufw
setup_packages setup_packages
setup_node setup_node
check_dotenv check_dotenv
@ -1013,6 +1144,7 @@ setup_dir_structure
download_conf download_conf
download_tools download_tools
update_if_needed update_if_needed
setup_firewall
source_admin source_admin

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

@ -17,8 +17,8 @@ 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.2.0" #auto-update SCRIPT_VERSION="1.3.0" #auto-update
SCRIPT_BUILD_TIME="2023.07.23" #auto-update SCRIPT_BUILD_TIME="2023.09.04" #auto-update
#======================================= #=======================================
# SETUP # SETUP
@ -107,6 +107,7 @@ tty_reset="$(tty_escape 0)"
emoji_check="\U2705" emoji_check="\U2705"
emoji_ok="\U1F197" emoji_ok="\U1F197"
emoji_err="\U274C"
uni_bullet=" $(printf '\u2022') " uni_bullet=" $(printf '\u2022') "
uni_bullet_pad=" " uni_bullet_pad=" "
@ -121,6 +122,7 @@ uni_back=" $(printf '\U2B05') Wróć "
uni_select=" Wybierz " uni_select=" Wybierz "
uni_excl="$(printf '\U203C')" uni_excl="$(printf '\U203C')"
uni_confirm_del=" $(printf '\U1F4A3') Tak " uni_confirm_del=" $(printf '\U1F4A3') Tak "
uni_confirm_ch=" $(printf '\U1F199') Zmień "
uni_confirm_upd=" $(printf '\U1F199') Aktualizuj " uni_confirm_upd=" $(printf '\U1F199') Aktualizuj "
uni_install=" $(printf '\U1F680') Instaluj " uni_install=" $(printf '\U1F680') Instaluj "
uni_resign=" $(printf '\U1F6AB') Rezygnuję " uni_resign=" $(printf '\U1F6AB') Rezygnuję "
@ -157,6 +159,11 @@ msgcheck() {
printf "$emoji_check $1\n" printf "$emoji_check $1\n"
} }
msgerr() {
# shellcheck disable=SC2059
printf "$emoji_err $1\n"
}
warn() { warn() {
printf "${tty_red}Warning${tty_reset}: %s\n" "$(chomp "$1")" >&2 printf "${tty_red}Warning${tty_reset}: %s\n" "$(chomp "$1")" >&2
} }
@ -365,6 +372,11 @@ check_dotenv() {
add_if_not_ok_cmd "dotenv-tool" "npm install -g dotenv-tool --registry https://npm.dzienia.pl" add_if_not_ok_cmd "dotenv-tool" "npm install -g dotenv-tool --registry https://npm.dzienia.pl"
} }
check_ufw() {
ufw --version >/dev/null 2>&1
add_if_not_ok "UFW" "ufw"
}
setup_packages() { setup_packages() {
# shellcheck disable=SC2145 # shellcheck disable=SC2145
# shellcheck disable=SC2068 # shellcheck disable=SC2068
@ -405,6 +417,54 @@ setup_dir_structure() {
chown -R mongodb:root $MONGO_DB_DIR chown -R mongodb:root $MONGO_DB_DIR
} }
setup_firewall() {
ohai "Configuring firewall"
{
ufw default deny incoming
ufw default allow outgoing
ufw allow OpenSSH
ufw allow ssh
} >>$LOGTO 2>&1
host=$(hostname)
host=${host:1}
port1=$((10000+host))
port2=$((20000+host))
port3=$((30000+host))
if ufw allow $port1 >>$LOGTO 2>&1 ; then
msgcheck "Do regul firewalla poprawnie dodano port $port1"
else
msgerr "Blad dodawania $port1 do regul firewalla"
fi
if ufw allow $port2 >>$LOGTO 2>&1 ; then
msgcheck "Do regul firewalla poprawnie dodano port $port2"
else
msgerr "Blad dodawania $port2 do regul firewalla"
fi
if ufw allow $port3 >>$LOGTO 2>&1 ; then
msgcheck "Do regul firewalla poprawnie dodano port $port3"
else
msgerr "Blad dodawania $port3 do regul firewalla"
fi
ufw --force enable >>$LOGTO 2>&1
}
setup_firewall_for_ns() {
ns_external_port=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_PORT")
if ufw allow "$ns_external_port" >>$LOGTO 2>&1 ; then
msgcheck "Do regul firewalla poprawnie dodano port Nightscout: $ns_external_port"
else
msgerr "Blad dodawania portu Nightscout: $ns_external_port do reguł firewalla"
fi
}
get_docker_status() { get_docker_status() {
local ID=$(docker ps -a --no-trunc --filter name="^$1" --format '{{ .ID }}') local ID=$(docker ps -a --no-trunc --filter name="^$1" --format '{{ .ID }}')
if [[ "$ID" =~ [0-9a-fA-F]{12,} ]]; then if [[ "$ID" =~ [0-9a-fA-F]{12,} ]]; then
@ -828,9 +888,73 @@ status_menu() {
done done
} }
uninstall_menu() { version_menu() {
local ns_tag=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_NIGHTSCOUT_TAG")
local tags=$(wget -q -O - "https://hub.docker.com/v2/namespaces/nightscout/repositories/cgm-remote-monitor/tags?page_size=100" | jq -r ".results[].name" | sed "/dev_[a-f0-9]*/d" | sort --version-sort -u -r | head -n 8)
while :; do while :; do
local ns_tag=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_NIGHTSCOUT_TAG")
local versions=()
while read -r line
do
if [ "$line" == "$ns_tag" ]; then
continue
fi
label=" - na sztywno $line "
if [ "$line" == "latest_dev" ]; then
label=" - najnowsza wersja rozwojowa "
fi
if [ "$line" == "latest" ]; then
label=" - aktualna wersja stabilna "
fi
versions+=("$line")
versions+=("$label")
done <<< "$tags"
versions+=("M)")
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 \
"${versions[@]}" \
--ok-button="Zmień" --cancel-button="$uni_back" \
3>&2 2>&1 1>&3)
if [ "$CHOICE" == "M)" ]; then
break
fi
if [ "$CHOICE" == "" ]; then
break
fi
if [ "$CHOICE" == "$ns_tag" ]; then
whiptail --title "Ta sama wersja!" --msgbox "Wybrano bieżącą wersję - brak zmiany" 7 50
else
whiptail --title "Zmienić wersję Nightscout?" --yesno --defaultno "Czy na pewno chcesz zmienić wersję z: $ns_tag na: $CHOICE?\n\n${uni_bullet}dane i konfiguracja NIE SĄ usuwane\n${uni_bullet}wersję można łatwo zmienić ponownie\n${uni_bullet}dane w bazie danych mogą ulec zmianie i NIE BYĆ kompatybilne" --yes-button "$uni_confirm_ch" --no-button "$uni_resign" 13 73
if ! [ $? -eq 1 ]; then
docker_compose_down
ohai "Changing Nightscout container tag from: $ns_tag to: $CHOICE"
dotenv-tool -pmr -i $ENV_FILE_DEP -- "NS_NIGHTSCOUT_TAG=$CHOICE"
docker_compose_up
whiptail --title "Zmieniono wersję Nightscout" --msgbox "$(center_multiline "Zmieniono wersję Nightscout na: $CHOICE\n\nSprawdź czy Nightscout działa poprawnie, w razie problemów:\n${uni_bullet}aktualizuj kontenery\n${uni_bullet}spróbuj wyczyścić bazę danych\n${uni_bullet}wróć do poprzedniej wersji ($ns_tag)" 65)" 13 70
break
fi
fi
done
}
uninstall_menu() {
while :; do
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" 15 70 6 \
"1)" "Zmień wersję Nightscouta (bieżąca: $ns_tag)" \ "1)" "Zmień wersję Nightscouta (bieżąca: $ns_tag)" \
"2)" "Usuń kontenery" \ "2)" "Usuń kontenery" \
@ -842,6 +966,9 @@ uninstall_menu() {
3>&2 2>&1 1>&3) 3>&2 2>&1 1>&3)
case $CHOICE in case $CHOICE in
"1)")
version_menu
;;
"2)") "2)")
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
@ -895,8 +1022,10 @@ uninstall_menu() {
main_menu() { main_menu() {
while :; do while :; do
local ns_tag=$(dotenv-tool -r get -f $ENV_FILE_DEP "NS_NIGHTSCOUT_TAG")
local quickStatus=$(center_text "Nightscout: $(get_container_status 'ns-server')" 55) local quickStatus=$(center_text "Nightscout: $(get_container_status 'ns-server')" 55)
local CHOICE=$(whiptail --title "Zarządzanie Nightscoutem" --menu "\n$quickStatus\n" 19 60 8 \ local quickVersion=$(center_text "Wersja: $ns_tag" 55)
local CHOICE=$(whiptail --title "Zarządzanie Nightscoutem" --menu "\n$quickStatus\n$quickVersion\n" 19 60 8 \
"1)" "Status kontenerów i logi" \ "1)" "Status kontenerów i logi" \
"2)" "Pokaż port i API SECRET" \ "2)" "Pokaż port i API SECRET" \
"3)" "Aktualizuj system" \ "3)" "Aktualizuj system" \
@ -968,6 +1097,7 @@ install_or_menu() {
if [ "$freshInstall" -gt 0 ]; then if [ "$freshInstall" -gt 0 ]; then
ohai "Instalowanie Nightscout..." ohai "Instalowanie Nightscout..."
docker_compose_up docker_compose_up
setup_firewall_for_ns
domain_setup domain_setup
admin_panel_promo admin_panel_promo
setup_done setup_done

@ -1,6 +1,6 @@
#!/bin/bash #!/bin/bash
### version: 1.2.0 ### version: 1.3.0
# ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.# # ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.#
# Nightscout Mikr.us setup script # # Nightscout Mikr.us setup script #
@ -30,6 +30,7 @@ check_git
check_docker check_docker
check_docker_compose check_docker_compose
check_jq check_jq
check_ufw
setup_packages setup_packages
setup_node setup_node
check_dotenv check_dotenv
@ -38,6 +39,7 @@ setup_dir_structure
download_conf download_conf
download_tools download_tools
update_if_needed update_if_needed
setup_firewall
source_admin source_admin

@ -1,6 +1,6 @@
### version: 1.0.0 ### version: 1.3.0
NS_NIGHTSCOUT_TAG=latest_dev NS_NIGHTSCOUT_TAG=latest
NS_MONGODB_TAG=4.4.2 NS_MONGODB_TAG=4.4.2
NS_DBBACKUP_TAG=latest NS_DBBACKUP_TAG=latest
NS_DATA_DIR=/srv/nightscout/data NS_DATA_DIR=/srv/nightscout/data

@ -1,4 +1,4 @@
### version: 1.0.0 ### version: 1.3.0
######################################## ########################################
# Unikalne ustawienia tej instancji # Unikalne ustawienia tej instancji

@ -1 +1 @@
2023-07-23T00:34:58.792Z 2023-09-04T10:16:19.295Z
Loading…
Cancel
Save