From 3fc7008bbea59f57244e0a09082e6ef0b2647da2 Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Wed, 24 Jun 2026 23:15:36 +0200 Subject: [PATCH] Refactor LibreNMS: replace old install and update variant with tarball approach (#15369) --- ct/librenms.sh | 42 ++++++++++++++++++++++--------------- install/librenms-install.sh | 11 ---------- 2 files changed, 25 insertions(+), 28 deletions(-) diff --git a/ct/librenms.sh b/ct/librenms.sh index 7404dd93e..c9ed36493 100644 --- a/ct/librenms.sh +++ b/ct/librenms.sh @@ -24,27 +24,35 @@ function update_script() { header_info check_container_storage check_container_resources - if [ ! -d /opt/librenms ]; then + if [[ ! -d /opt/librenms ]]; then msg_error "No ${APP} Installation Found!" exit fi - setup_mariadb - ensure_dependencies git - if [[ ! -d /opt/librenms/.git ]]; then - msg_info "Initializing LibreNMS git metadata" - LIBRENMS_VERSION=$(cat ~/.librenms 2>/dev/null) - cd /opt/librenms - git init -q - git remote add origin https://github.com/librenms/librenms.git - git fetch --depth 1 origin "refs/tags/v${LIBRENMS_VERSION}" 2>/dev/null || - git fetch --depth 1 origin "refs/tags/${LIBRENMS_VERSION}" 2>/dev/null || true - git checkout -qf FETCH_HEAD 2>/dev/null || true - chown -R librenms:librenms .git - msg_ok "Initialized LibreNMS git metadata" + if check_for_gh_release "librenms" "librenms/librenms"; then + msg_info "Stopping Services" + systemctl stop php8.4-fpm librenms-scheduler.timer + msg_ok "Stopped Services" + + create_backup /opt/librenms/.env /opt/librenms/config.php /opt/librenms/rrd + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "librenms" "librenms/librenms" "tarball" + restore_backup + + msg_info "Updating LibreNMS" + mkdir -p /opt/librenms/{rrd,logs,bootstrap/cache,storage} + chown -R librenms:librenms /opt/librenms + chmod 771 /opt/librenms + chmod -R ug=rwX /opt/librenms/bootstrap/cache /opt/librenms/storage /opt/librenms/logs /opt/librenms/rrd + $STD su - librenms -s /bin/bash -c "cd /opt/librenms && uv venv --clear .venv && source .venv/bin/activate && uv pip install -r requirements.txt" + $STD su - librenms -s /bin/bash -c "cd /opt/librenms && COMPOSER_ALLOW_SUPERUSER=1 composer install --no-dev" + $STD su - librenms -s /bin/bash -c "cd /opt/librenms && php8.4 artisan optimize:clear" + $STD su - librenms -s /bin/bash -c "cd /opt/librenms && php8.4 artisan migrate --force --isolated" + msg_ok "Updated LibreNMS" + + msg_info "Starting Services" + systemctl start php8.4-fpm librenms-scheduler.timer + msg_ok "Started Services" + msg_ok "Updated successfully!" fi - msg_info "Updating LibreNMS" - $STD su - librenms -s /bin/bash -c 'cd /opt/librenms && ./daily.sh' - msg_ok "Updated LibreNMS" exit } diff --git a/install/librenms-install.sh b/install/librenms-install.sh index b50472227..9fa2a0f27 100644 --- a/install/librenms-install.sh +++ b/install/librenms-install.sh @@ -17,7 +17,6 @@ msg_info "Installing Dependencies" $STD apt install -y \ acl \ fping \ - git \ graphviz \ imagemagick \ mtr-tiny \ @@ -65,16 +64,6 @@ EOF chown -R librenms:librenms /opt/librenms chmod 771 /opt/librenms chmod -R ug=rwX /opt/librenms/bootstrap/cache /opt/librenms/storage /opt/librenms/logs /opt/librenms/rrd -if [[ ! -d /opt/librenms/.git ]]; then - LIBRENMS_VERSION=$(cat ~/.librenms 2>/dev/null) - cd /opt/librenms - git init -q - git remote add origin https://github.com/librenms/librenms.git - git fetch --depth 1 origin "refs/tags/v${LIBRENMS_VERSION}" 2>/dev/null || - git fetch --depth 1 origin "refs/tags/${LIBRENMS_VERSION}" 2>/dev/null || true - git checkout -qf FETCH_HEAD 2>/dev/null || true - chown -R librenms:librenms .git -fi msg_ok "Configured LibreNMS" msg_info "Configure MariaDB"