@ -1,6 +1,6 @@
#!/bin/bash
#!/bin/bash
### version: 1. 9.5
### version: 1. 10.0
# ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.#
# ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.#
# Nightscout Mikr.us setup script #
# Nightscout Mikr.us setup script #
@ -23,7 +23,7 @@
REQUIRED_NODE_VERSION = 18.0.0
REQUIRED_NODE_VERSION = 18.0.0
REQUIRED_DOTENV_VERSION = 1.3.0
REQUIRED_DOTENV_VERSION = 1.3.0
LOGTO = /dev/null
LOGTO = /srv/nightscout/data/debug.log
NIGHTSCOUT_ROOT_DIR = /srv/nightscout
NIGHTSCOUT_ROOT_DIR = /srv/nightscout
CONFIG_ROOT_DIR = /srv/nightscout/config
CONFIG_ROOT_DIR = /srv/nightscout/config
DATA_ROOT_DIR = /srv/nightscout/data
DATA_ROOT_DIR = /srv/nightscout/data
@ -54,8 +54,8 @@ DISK_LOW_MAIL=5184000 # == 60 days in seconds
DISK_CRITICAL_WARNING = 104857600 # == 100 MiB
DISK_CRITICAL_WARNING = 104857600 # == 100 MiB
DISK_CRITICAL_MAIL = 604800 # == 7 days in seconds
DISK_CRITICAL_MAIL = 604800 # == 7 days in seconds
DOCKER_DOWN_MAIL = 604800 # == 7 days in seconds
DOCKER_DOWN_MAIL = 604800 # == 7 days in seconds
SCRIPT_VERSION = "1. 9.5 " #auto-update
SCRIPT_VERSION = "1. 10.0 " #auto-update
SCRIPT_BUILD_TIME = "202 5.03.19 " #auto-update
SCRIPT_BUILD_TIME = "202 6.01.04 " #auto-update
#=======================================
#=======================================
# SETUP
# SETUP
@ -740,10 +740,50 @@ check_docker() {
}
}
check_docker_compose( ) {
check_docker_compose( ) {
docker- compose -v >/dev/null 2>& 1
docker compose -v >/dev/null 2>& 1
add_if_not_ok "Docker compose" "docker-compose"
add_if_not_ok "Docker compose" "docker-compose"
}
}
patch_docker_compose( ) {
if [ [ -f $DOCKER_COMPOSE_FILE ] ] ; then
local patched = 0
local containers_running = 0
# Check if containers are already running before patching
local ns_status = $( get_docker_status "ns-server" )
local db_status = $( get_docker_status "ns-database" )
if [ [ " $ns_status " = = "running" ] ] || [ [ " $db_status " = = "running" ] ] ; then
containers_running = 1
fi
# Check if mongodb image needs patching (bitnami/mongodb or incorrect format)
if grep -qE "image:\s*(bitnami/)?mongo(db)?" " $DOCKER_COMPOSE_FILE " ; then
ohai "Patching docker-compose.yml MongoDB image..."
# Replace any bitnami/mongodb or incorrect mongo image with proper format
sed -i -E 's|image:\s*"?bitnami/mongodb:.*"?|image: "mongo:${NS_MONGODB_TAG}"|g' " $DOCKER_COMPOSE_FILE "
sed -i -E 's|image:\s*"?mongo:[^"]+"?|image: "mongo:${NS_MONGODB_TAG}"|g' " $DOCKER_COMPOSE_FILE "
sed -i -E 's|image:\s*"?mongodb:[^"]+"?|image: "mongo:${NS_MONGODB_TAG}"|g' " $DOCKER_COMPOSE_FILE "
patched = 1
fi
# Check if volume path needs patching (bitnami/mongodb -> data/db)
if grep -q ":/bitnami/mongodb\"" " $DOCKER_COMPOSE_FILE " ; then
ohai "Patching docker-compose.yml MongoDB volume path..."
sed -i -E 's|:/bitnami/mongodb"?|:/data/db"|g' " $DOCKER_COMPOSE_FILE "
patched = 1
fi
if [ " $patched " -eq 1 ] ; then
msgcheck "Docker compose file patched"
# Restart containers only if they were already running
if [ " $containers_running " -eq 1 ] ; then
ohai "Restarting containers to apply patched configuration..."
update_containers
msgcheck "Containers restarted"
fi
fi
fi
}
check_jq( ) {
check_jq( ) {
jq --help >/dev/null 2>& 1
jq --help >/dev/null 2>& 1
add_if_not_ok "JSON parser" "jq"
add_if_not_ok "JSON parser" "jq"
@ -1007,12 +1047,12 @@ get_space_info() {
}
}
install_containers( ) {
install_containers( ) {
docker- compose --env-file /srv/nightscout/config/deployment.env -f /srv/nightscout/config/docker-compose.yml up --no-recreate -d >>" $LOGTO " 2>& 1
docker compose --env-file /srv/nightscout/config/deployment.env -f /srv/nightscout/config/docker-compose.yml up --no-recreate -d >>" $LOGTO " 2>& 1
}
}
update_containers( ) {
update_containers( ) {
docker- compose --env-file /srv/nightscout/config/deployment.env -f /srv/nightscout/config/docker-compose.yml pull >>" $LOGTO " 2>& 1
docker compose --env-file /srv/nightscout/config/deployment.env -f /srv/nightscout/config/docker-compose.yml pull >>" $LOGTO " 2>& 1
docker- compose --env-file /srv/nightscout/config/deployment.env -f /srv/nightscout/config/docker-compose.yml up -d >>" $LOGTO " 2>& 1
docker compose --env-file /srv/nightscout/config/deployment.env -f /srv/nightscout/config/docker-compose.yml up -d >>" $LOGTO " 2>& 1
}
}
install_containers_progress( ) {
install_containers_progress( ) {
@ -1023,7 +1063,7 @@ install_containers_progress() {
}
}
uninstall_containers( ) {
uninstall_containers( ) {
docker- compose --env-file /srv/nightscout/config/deployment.env -f /srv/nightscout/config/docker-compose.yml down >>" $LOGTO " 2>& 1
docker compose --env-file /srv/nightscout/config/deployment.env -f /srv/nightscout/config/docker-compose.yml down >>" $LOGTO " 2>& 1
}
}
uninstall_containers_progress( ) {
uninstall_containers_progress( ) {
@ -3009,6 +3049,7 @@ check_dotenv
setup_users
setup_users
setup_dir_structure
setup_dir_structure
download_conf
download_conf
patch_docker_compose
download_tools
download_tools
setup_security
setup_security