From b2017086cde77bab3bb33b4ed95e79adf10be6bc Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Fri, 23 Jan 2026 21:54:23 +0100 Subject: [PATCH] Bump various scripts to Debian 13 (Trixie) (#11093) --- ct/apt-cacher-ng.sh | 10 ++-- ct/aria2.sh | 10 ++-- ct/asterisk.sh | 2 +- ct/audiobookshelf.sh | 8 +-- ct/authelia.sh | 4 +- ct/autobrr.sh | 2 +- ct/autocaliweb.sh | 5 +- ct/bar-assistant.sh | 2 +- ct/beszel.sh | 2 +- ct/bitmagnet.sh | 2 +- ct/blocky.sh | 12 ++--- ct/bunkerweb.sh | 19 +++----- ct/bytestash.sh | 13 ++--- ct/channels.sh | 2 +- ct/cleanuparr.sh | 4 +- ct/cloudreve.sh | 2 +- ct/commafeed.sh | 10 ++-- ct/cronicle.sh | 11 ++--- ct/cross-seed.sh | 8 +-- ct/cryptpad.sh | 4 +- ct/daemonsync.sh | 10 ++-- ct/deluge.sh | 10 ++-- ct/elementsynapse.sh | 62 ++++++++---------------- ct/emqx.sh | 8 +-- ct/excalidraw.sh | 5 +- ct/fileflows.sh | 8 +-- ct/flowiseai.sh | 8 +-- ct/fluid-calendar.sh | 2 +- ct/fumadocs.sh | 4 +- ct/gatus.sh | 10 +--- ct/ghost.sh | 4 +- ct/gitea-mirror.sh | 5 +- ct/gitea.sh | 2 +- ct/glance.sh | 5 +- ct/go2rtc.sh | 2 +- ct/gokapi.sh | 2 +- ct/gotify.sh | 2 +- ct/grist.sh | 6 +-- ct/grocy.sh | 4 +- ct/huntarr.sh | 2 +- ct/hyperhdr.sh | 2 +- frontend/public/json/apt-cacher-ng.json | 2 +- frontend/public/json/aria2.json | 2 +- frontend/public/json/asterisk.json | 2 +- frontend/public/json/authelia.json | 2 +- frontend/public/json/autobrr.json | 2 +- frontend/public/json/autocaliweb.json | 2 +- frontend/public/json/bar-assistant.json | 2 +- frontend/public/json/beszel.json | 2 +- frontend/public/json/bitmagnet.json | 2 +- frontend/public/json/blocky.json | 2 +- frontend/public/json/bunkerweb.json | 2 +- frontend/public/json/bytestash.json | 2 +- frontend/public/json/channels.json | 2 +- frontend/public/json/cleanuparr.json | 2 +- frontend/public/json/cloudreve.json | 2 +- frontend/public/json/commafeed.json | 2 +- frontend/public/json/cronicle.json | 2 +- frontend/public/json/cross-seed.json | 2 +- frontend/public/json/cryptpad.json | 2 +- frontend/public/json/daemonsync.json | 2 +- frontend/public/json/deluge.json | 2 +- frontend/public/json/elementsynapse.json | 2 +- frontend/public/json/emqx.json | 2 +- frontend/public/json/excalidraw.json | 2 +- frontend/public/json/fileflows.json | 2 +- frontend/public/json/flowiseai.json | 2 +- frontend/public/json/fluid-calendar.json | 2 +- frontend/public/json/fumadocs.json | 2 +- frontend/public/json/gatus.json | 2 +- frontend/public/json/ghost.json | 2 +- frontend/public/json/gitea-mirror.json | 2 +- frontend/public/json/gitea.json | 2 +- frontend/public/json/glance.json | 2 +- frontend/public/json/go2rtc.json | 2 +- frontend/public/json/gokapi.json | 2 +- frontend/public/json/gotify.json | 2 +- frontend/public/json/grist.json | 2 +- frontend/public/json/grocy.json | 2 +- frontend/public/json/huntarr.json | 5 +- install/apt-cacher-ng-install.sh | 2 +- install/aria2-install.sh | 20 ++++---- install/audiobookshelf-install.sh | 2 +- install/authelia-install.sh | 35 ++++++++++++- install/autocaliweb-install.sh | 12 ++--- install/bar-assistant-install.sh | 3 +- install/bitmagnet-install.sh | 25 +++------- install/bunkerweb-install.sh | 13 ++--- install/channels-install.sh | 5 +- install/cloudreve-install.sh | 1 - install/cockpit-install.sh | 20 +++----- install/commafeed-install.sh | 2 +- install/cross-seed-install.sh | 5 +- install/cryptpad-install.sh | 6 +-- install/daemonsync-install.sh | 2 +- install/deluge-install.sh | 38 +++++++-------- install/elementsynapse-install.sh | 27 ++++++----- install/emqx-install.sh | 4 +- install/excalidraw-install.sh | 4 +- install/fileflows-install.sh | 8 +-- install/fluid-calendar-install.sh | 2 +- install/fumadocs-install.sh | 8 +-- install/gatus-install.sh | 2 +- install/ghost-install.sh | 21 ++------ install/gitea-install.sh | 7 +-- install/gitea-mirror-install.sh | 2 +- install/grist-install.sh | 4 +- install/grocy-install.sh | 3 +- misc/tools.func | 2 +- 109 files changed, 306 insertions(+), 355 deletions(-) diff --git a/ct/apt-cacher-ng.sh b/ct/apt-cacher-ng.sh index 7640286e7..2e704289b 100644 --- a/ct/apt-cacher-ng.sh +++ b/ct/apt-cacher-ng.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-512}" var_disk="${var_disk:-10}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -27,10 +27,10 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - msg_info "Updating $APP LXC" - $STD apt-get update - $STD apt-get -y upgrade - msg_ok "Updated $APP LXC" + msg_info "Updating Apt-Cacher-NG" + $STD apt update + $STD apt -y upgrade + msg_ok "Updated Apt-Cacher-NG" msg_ok "Updated successfully!" exit } diff --git a/ct/aria2.sh b/ct/aria2.sh index 39b1e32d5..a310b4c24 100644 --- a/ct/aria2.sh +++ b/ct/aria2.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-8}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -27,10 +27,10 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - msg_info "Updating $APP LXC" - $STD apt-get update - $STD apt-get -y upgrade - msg_ok "Updated $APP LXC" + msg_info "Updating Aria2" + $STD apt update + $STD apt -y upgrade + msg_ok "Updated Aria2" msg_ok "Updated successfully!" exit } diff --git a/ct/asterisk.sh b/ct/asterisk.sh index 89f563c7a..8213273fb 100644 --- a/ct/asterisk.sh +++ b/ct/asterisk.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/audiobookshelf.sh b/ct/audiobookshelf.sh index f00fd7130..f91c88859 100644 --- a/ct/audiobookshelf.sh +++ b/ct/audiobookshelf.sh @@ -28,10 +28,10 @@ function update_script() { exit fi - msg_info "Updating $APP LXC" - $STD apt-get update - $STD apt-get upgrade -y - msg_ok "Updated $APP LXC" + msg_info "Updating AudiobookShelf" + $STD apt update + $STD apt upgrade -y + msg_ok "Updated AudiobookShelf" msg_ok "Updated successfully!" exit } diff --git a/ct/authelia.sh b/ct/authelia.sh index e06495c50..ee77973d9 100644 --- a/ct/authelia.sh +++ b/ct/authelia.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-512}" var_disk="${var_disk:-2}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -33,9 +33,7 @@ function update_script() { if check_for_gh_release "authelia" "authelia/authelia"; then $STD apt update $STD apt -y upgrade - fetch_and_deploy_gh_release "authelia" "authelia/authelia" "binary" - msg_ok "Updated successfully!" fi exit diff --git a/ct/autobrr.sh b/ct/autobrr.sh index 6f2f1933c..b23f2a5a4 100644 --- a/ct/autobrr.sh +++ b/ct/autobrr.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-8}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/autocaliweb.sh b/ct/autocaliweb.sh index 423ffd171..59502842c 100644 --- a/ct/autocaliweb.sh +++ b/ct/autocaliweb.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-6}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -30,7 +30,7 @@ function update_script() { setup_uv - RELEASE=$(curl -fsSL https://api.github.com/repos/gelbphoenix/autocaliweb/releases/latest | jq '.tag_name' | sed 's/^"v//;s/"$//') + RELEASE=$(get_latest_github_release "gelbphoenix/autocaliweb") if check_for_gh_release "autocaliweb" "gelbphoenix/autocaliweb"; then msg_info "Stopping Services" systemctl stop autocaliweb metadata-change-detector acw-ingest-service acw-auto-zipper @@ -40,6 +40,7 @@ function update_script() { export VIRTUAL_ENV="${INSTALL_DIR}/venv" $STD tar -cf ~/autocaliweb_bkp.tar "$INSTALL_DIR"/{metadata_change_logs,dirs.json,.env,scripts/ingest_watcher.sh,scripts/auto_zipper_wrapper.sh,scripts/metadata_change_detector_wrapper.sh} fetch_and_deploy_gh_release "autocaliweb" "gelbphoenix/autocaliweb" "tarball" "latest" "/opt/autocaliweb" + msg_info "Updating Autocaliweb" cd "$INSTALL_DIR" if [[ ! -d "$VIRTUAL_ENV" ]]; then diff --git a/ct/bar-assistant.sh b/ct/bar-assistant.sh index df3efb850..fbb41f2f5 100644 --- a/ct/bar-assistant.sh +++ b/ct/bar-assistant.sh @@ -13,7 +13,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/beszel.sh b/ct/beszel.sh index 877371880..97afe2ac0 100644 --- a/ct/beszel.sh +++ b/ct/beszel.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-512}" var_disk="${var_disk:-5}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/bitmagnet.sh b/ct/bitmagnet.sh index 72038cc03..55d0d90ef 100644 --- a/ct/bitmagnet.sh +++ b/ct/bitmagnet.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/blocky.sh b/ct/blocky.sh index afcd00689..2000d5b1f 100644 --- a/ct/blocky.sh +++ b/ct/blocky.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-512}" var_disk="${var_disk:-2}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -35,12 +35,8 @@ function update_script() { msg_info "Backup Config" mv /opt/blocky/config.yml /opt/config.yml msg_ok "Backed Up Config" - - msg_info "Removing Old Version" - rm -rf /opt/blocky - msg_ok "Removed Old Version" - - fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_x86_64.tar.gz" + + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "blocky" "0xERR0R/blocky" "prebuild" "latest" "/opt/blocky" "blocky_*_Linux_x86_64.tar.gz" msg_info "Restore Config" mv /opt/config.yml /opt/blocky/config.yml @@ -61,4 +57,4 @@ description msg_ok "Completed successfully!\n" echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}" echo -e "${INFO}${YW} Access it using the following URL:${CL}" -echo -e "${TAB}${GATEWAY}${BGN}http://${IP}:4000${CL}" +echo -e "${TAB}${GATEWAY}${BGN}http://${IP}${CL}" diff --git a/ct/bunkerweb.sh b/ct/bunkerweb.sh index 4631c0db6..4f4b7d6ac 100644 --- a/ct/bunkerweb.sh +++ b/ct/bunkerweb.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-8192}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -27,23 +27,20 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - RELEASE=$(curl -fsSL https://api.github.com/repos/bunkerity/bunkerweb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then - msg_info "Updating ${APP} to ${RELEASE}" + if check_for_gh_release "bunkerweb" "bunkerity/bunkerweb"; then + msg_info "Updating BunkerWeb" + RELEASE=$(get_latest_github_release "bunkerweb" "bunkerity/bunkerweb") cat </etc/apt/preferences.d/bunkerweb Package: bunkerweb Pin: version ${RELEASE} Pin-Priority: 1001 EOF - apt-get update - apt-mark unhold bunkerweb nginx - apt-get install -y --allow-downgrades bunkerweb=${RELEASE} - echo "${RELEASE}" >/opt/${APP}_version.txt - msg_ok "Updated ${APP} to ${RELEASE}" + $STD apt update + $STD apt-mark unhold bunkerweb nginx + $STD apt install -y --allow-downgrades bunkerweb="${RELEASE}" + msg_ok "Updated BunkerWeb" msg_ok "Updated successfully!" - else - msg_ok "No update required. ${APP} is already at ${RELEASE}" fi exit } diff --git a/ct/bytestash.sh b/ct/bytestash.sh index c606e61d0..9aad7faf9 100644 --- a/ct/bytestash.sh +++ b/ct/bytestash.sh @@ -11,7 +11,7 @@ var_disk="${var_disk:-4}" var_cpu="${var_cpu:-1}" var_ram="${var_ram:-1024}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -32,23 +32,20 @@ function update_script() { read -rp "${TAB3}Did you make a backup via application WebUI? (y/n): " backuped if [[ "$backuped" =~ ^[Yy]$ ]]; then msg_info "Stopping Services" - systemctl stop bytestash-backend - systemctl stop bytestash-frontend + systemctl stop bytestash-backend bytestash-frontend msg_ok "Services Stopped" - rm -rf /opt/bytestash - fetch_and_deploy_gh_release "bytestash" "jordan-dalby/ByteStash" "tarball" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bytestash" "jordan-dalby/ByteStash" "tarball" msg_info "Configuring ByteStash" cd /opt/bytestash/server $STD npm install cd /opt/bytestash/client $STD npm install - msg_ok "Updated ${APP}" + msg_ok "Updated ByteStash" msg_info "Starting Services" - systemctl start bytestash-backend - systemctl start bytestash-frontend + systemctl start bytestash-backend bytestash-frontend msg_ok "Started Services" else msg_error "PLEASE MAKE A BACKUP FIRST!" diff --git a/ct/channels.sh b/ct/channels.sh index f98d9b3db..fab2256bd 100644 --- a/ct/channels.sh +++ b/ct/channels.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-8}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-0}" var_gpu="${var_gpu:-yes}" diff --git a/ct/cleanuparr.sh b/ct/cleanuparr.sh index 14a41f174..74edf54f3 100755 --- a/ct/cleanuparr.sh +++ b/ct/cleanuparr.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -32,7 +32,7 @@ function update_script() { systemctl stop cleanuparr msg_ok "Stopped Service" - fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip" msg_info "Starting Service" systemctl start cleanuparr diff --git a/ct/cloudreve.sh b/ct/cloudreve.sh index dbec9bbb6..119e9a453 100644 --- a/ct/cloudreve.sh +++ b/ct/cloudreve.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-10}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/commafeed.sh b/ct/commafeed.sh index cebfe53e9..f9f5fb970 100644 --- a/ct/commafeed.sh +++ b/ct/commafeed.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -28,9 +28,7 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - JAVA_VERSION="25" setup_java - if check_for_gh_release "commafeed" "Athou/commafeed"; then msg_info "Stopping Service" systemctl stop commafeed @@ -38,8 +36,8 @@ function update_script() { if ! [[ $(dpkg -s rsync 2>/dev/null) ]]; then msg_info "Installing Dependencies" - $STD apt-get update - $STD apt-get install -y rsync + $STD apt update + $STD apt install -y rsync msg_ok "Installed Dependencies" fi @@ -49,7 +47,7 @@ function update_script() { msg_ok "Backed up existing data" fi - fetch_and_deploy_gh_release "commafeed" "Athou/commafeed" "prebuild" "latest" "/opt/commafeed" "commafeed-*-h2-jvm.zip" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "commafeed" "Athou/commafeed" "prebuild" "latest" "/opt/commafeed" "commafeed-*-h2-jvm.zip" if [ -d /opt/data.bak ] && [ "$(ls -A /opt/data.bak)" ]; then msg_info "Restoring data" diff --git a/ct/cronicle.sh b/ct/cronicle.sh index 1e846027b..0fe86eb44 100644 --- a/ct/cronicle.sh +++ b/ct/cronicle.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-512}" var_disk="${var_disk:-2}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -35,20 +35,19 @@ function update_script() { fi NODE_VERSION="22" setup_nodejs - msg_info "Updating ${APP}" + msg_info "Updating Cronicle" $STD /opt/cronicle/bin/control.sh upgrade - msg_ok "Updated ${APP}" + msg_ok "Updated Cronicle" exit fi if [ "$UPD" == "2" ]; then NODE_VERSION="22" setup_nodejs if check_for_gh_release "cronicle" "jhuckaby/Cronicle"; then msg_info "Installing Dependencies" - $STD apt-get install -y \ + $STD apt install -y \ git \ build-essential \ - ca-certificates \ - gnupg2 + ca-certificates msg_ok "Installed Dependencies" NODE_VERSION="22" setup_nodejs diff --git a/ct/cross-seed.sh b/ct/cross-seed.sh index c44625783..c08e12688 100644 --- a/ct/cross-seed.sh +++ b/ct/cross-seed.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-2}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -28,15 +28,15 @@ function update_script() { current_version=$(cross-seed --version) latest_version=$(npm show cross-seed version) if [ "$current_version" != "$latest_version" ]; then - msg_info "Updating ${APP} from version v${current_version} to v${latest_version}" + msg_info "Updating cross-seed from version v${current_version} to v${latest_version}" $STD npm install -g cross-seed@latest systemctl restart cross-seed msg_ok "Updated successfully!" else - msg_ok "${APP} is already at v${current_version}" + msg_ok "cross-seed is already at v${current_version}" fi else - msg_error "No ${APP} Installation Found!" + msg_error "No cross-seed Installation Found!" exit fi exit diff --git a/ct/cryptpad.sh b/ct/cryptpad.sh index 60ef96662..b97b300ac 100644 --- a/ct/cryptpad.sh +++ b/ct/cryptpad.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-8}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -37,7 +37,7 @@ function update_script() { [ -f /opt/cryptpad/config/config.js ] && mv /opt/cryptpad/config/config.js /opt/ msg_ok "Backed up configuration" - fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad" "tarball" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad" "tarball" msg_info "Updating CryptaPad" cd /opt/cryptpad diff --git a/ct/daemonsync.sh b/ct/daemonsync.sh index e2db9402a..23344e210 100644 --- a/ct/daemonsync.sh +++ b/ct/daemonsync.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-512}" var_disk="${var_disk:-8}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -27,10 +27,10 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - msg_info "Updating $APP LXC" - $STD apt-get update - $STD apt-get -y upgrade - msg_ok "Updated $APP LXC" + msg_info "Updating LXC" + $STD apt update + $STD apt -y upgrade + msg_ok "Updated LXC" msg_ok "Updated successfully!" exit } diff --git a/ct/deluge.sh b/ct/deluge.sh index e21ad6536..74eaa39f5 100644 --- a/ct/deluge.sh +++ b/ct/deluge.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -27,10 +27,10 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - msg_info "Updating $APP LXC" - $STD apt-get update - pip3 install deluge[all] --upgrade - msg_ok "Updated $APP LXC" + msg_info "Updating Deluge" + $STD apt update + $STD pip3 install deluge[all] --upgrade + msg_ok "Updated Deluge" msg_ok "Updated successfully!" exit } diff --git a/ct/elementsynapse.sh b/ct/elementsynapse.sh index 105f6f497..554f896ea 100644 --- a/ct/elementsynapse.sh +++ b/ct/elementsynapse.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-8}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -27,53 +27,33 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - if [[ ! -f /opt/"${APP}"_version.txt ]]; then - touch /opt/"${APP}"_version.txt - fi - if ! dpkg -l | grep -q '^ii.*gpg'; then - $STD apt-get update - $STD apt-get install -y gpg - fi - if [[ ! -x /usr/bin/node ]]; then - mkdir -p /etc/apt/keyrings - curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg - echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" >/etc/apt/sources.list.d/nodesource.list - $STD apt-get update - $STD apt-get install -y nodejs - $STD npm install -g yarn - fi - msg_info "Updating $APP LXC" - $STD apt-get update - $STD apt-get -y upgrade - msg_ok "Updated $APP LXC" + + NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs - if [[ -f /etc/systemd/system/synapse-admin.service ]]; then - msg_info "Updating Synapse-Admin" - RELEASE=$(curl -fsSL https://api.github.com/repos/etkecc/synapse-admin/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') - if [[ "${RELEASE}" != "$(cat /opt/"${APP}"_version.txt)" ]] || [[ ! -f /opt/${APP}_version.txt ]]; then - temp_file=$(mktemp) + msg_info "Updating LXC" + $STD apt update + $STD apt -y upgrade + msg_ok "Updated LXC" + + if check_for_gh_release "synapse-admin" "etkecc/synapse-admin"; then + msg_info "Stopping Service" systemctl stop synapse-admin - rm -rf /opt/synapse-admin - mkdir -p /opt/synapse-admin - curl -fsSL "https://github.com/etkecc/synapse-admin/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" - tar xzf "$temp_file" -C /opt/synapse-admin --strip-components=1 + msg_ok "Stopped Service" + + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "synapse-admin" "etkecc/synapse-admin" "tarball" "latest" "/opt/synapse-admin" + + msg_info "Building Synapse-Admin" cd /opt/synapse-admin $STD yarn global add serve $STD yarn install --ignore-engines $STD yarn build - mv ./dist ../ && - rm -rf * && - mv ../dist ./ - if [[ -z $(grep "ExecStart=/usr/local/bin/serve" /etc/systemd/system/synapse-admin.service) ]]; then - sed -i 's|^ExecStart=.*|ExecStart=/usr/local/bin/serve -s dist -l 5173|' /etc/systemd/system/synapse-admin.service - systemctl reenable synapse-admin - fi + mv ./dist ../ && rm -rf * && mv ../dist ./ + msg_ok "Built Synapse-Admin" + + msg_info "Starting Service" systemctl start synapse-admin - echo "${RELEASE}" >/opt/"${APP}"_version.txt - rm -f "$temp_file" - msg_ok "Updated successfully!" - else - msg_ok "No update required. ${APP} is already at v${RELEASE}" + msg_ok "Started Service" + msg_ok "Updated Synapse-Admin to ${CHECK_UPDATE_RELEASE}" fi fi exit diff --git a/ct/emqx.sh b/ct/emqx.sh index f6dcca56b..26fd4bb62 100644 --- a/ct/emqx.sh +++ b/ct/emqx.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -32,9 +32,9 @@ function update_script() { msg_info "Removing old EMQX" if dpkg -l | grep -q "^ii\s\+emqx\s"; then - $STD apt-get remove --purge -y emqx + $STD apt remove --purge -y emqx elif dpkg -l | grep -q "^ii\s\+emqx-enterprise\s"; then - $STD apt-get remove --purge -y emqx-enterprise + $STD apt remove --purge -y emqx-enterprise else msg_ok "No old EMQX package found" fi @@ -46,7 +46,7 @@ function update_script() { msg_ok "Downloaded EMQX" msg_info "Installing EMQX" - $STD apt-get install -y "$DEB_FILE" + $STD apt install -y "$DEB_FILE" rm -f "$DEB_FILE" echo "$RELEASE" >~/.emqx msg_ok "Installed EMQX v${RELEASE}" diff --git a/ct/excalidraw.sh b/ct/excalidraw.sh index 857fef157..afba7649a 100644 --- a/ct/excalidraw.sh +++ b/ct/excalidraw.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-3072}" var_disk="${var_disk:-10}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -33,8 +33,7 @@ function update_script() { systemctl stop excalidraw msg_info "Stopped Service" - rm -rf /opt/excalidraw - fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw" "tarball" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw" "tarball" msg_info "Updating Excalidraw" cd /opt/excalidraw diff --git a/ct/fileflows.sh b/ct/fileflows.sh index e8b459327..863901316 100644 --- a/ct/fileflows.sh +++ b/ct/fileflows.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-8}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" var_gpu="${var_gpu:-yes}" @@ -29,11 +29,7 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - if ! [[ $(dpkg -s jq 2>/dev/null) ]]; then - $STD apt-get update - $STD apt-get install -y jq - fi - + update_available=$(curl -fsSL -X 'GET' "http://localhost:19200/api/status/update-available" -H 'accept: application/json' | jq .UpdateAvailable) if [[ "${update_available}" == "true" ]]; then msg_info "Stopping Service" diff --git a/ct/flowiseai.sh b/ct/flowiseai.sh index a8894b0a8..fa1373282 100644 --- a/ct/flowiseai.sh +++ b/ct/flowiseai.sh @@ -11,7 +11,7 @@ var_disk="${var_disk:-10}" var_cpu="${var_cpu:-4}" var_ram="${var_ram:-4096}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -27,11 +27,11 @@ function update_script() { msg_error "No ${APP} Installation Found!" exit fi - msg_info "Updating ${APP}" + msg_info "Updating FlowiseAI (this may take some time)" systemctl stop flowise - npm install -g flowise --upgrade + $STD npm install -g flowise --upgrade systemctl start flowise - msg_ok "Updated ${APP}" + msg_ok "Updated FlowiseAI" msg_ok "Updated successfully!" exit } diff --git a/ct/fluid-calendar.sh b/ct/fluid-calendar.sh index f8d688d65..65d05f31d 100644 --- a/ct/fluid-calendar.sh +++ b/ct/fluid-calendar.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-3}" var_ram="${var_ram:-4096}" var_disk="${var_disk:-7}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/fumadocs.sh b/ct/fumadocs.sh index 69fd5505d..7697486c3 100644 --- a/ct/fumadocs.sh +++ b/ct/fumadocs.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-5}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -44,7 +44,7 @@ function update_script() { exit fi if ! command -v git &>/dev/null; then - $STD apt-get install -y git + $STD apt install -y git fi msg_info "Stopping service $SERVICE_NAME" diff --git a/ct/gatus.sh b/ct/gatus.sh index 889431e19..5670dd3ea 100644 --- a/ct/gatus.sh +++ b/ct/gatus.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -33,14 +33,8 @@ function update_script() { systemctl stop gatus msg_ok "Stopped Service" - if [[ :$PATH: != *":/usr/local/bin:"* ]]; then - echo 'export PATH="/usr/local/bin:$PATH"' >>~/.bashrc - source ~/.bashrc - fi - mv /opt/gatus/config/config.yaml /opt - rm -rf /opt/gatus - fetch_and_deploy_gh_release "gatus" "TwiN/gatus" "tarball" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "gatus" "TwiN/gatus" "tarball" msg_info "Updating Gatus" cd /opt/gatus diff --git a/ct/ghost.sh b/ct/ghost.sh index f6ba3ec98..c9341637b 100644 --- a/ct/ghost.sh +++ b/ct/ghost.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-5}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -23,8 +23,8 @@ function update_script() { header_info check_container_storage check_container_resources - setup_mariadb + setup_mariadb NODE_VERSION="22" setup_nodejs msg_info "Updating Ghost" diff --git a/ct/gitea-mirror.sh b/ct/gitea-mirror.sh index df464f06b..65a84f479 100644 --- a/ct/gitea-mirror.sh +++ b/ct/gitea-mirror.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-6}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -95,8 +95,7 @@ EOF ln -sf /opt/bun/bin/bun /usr/local/bin/bunx msg_ok "Installed Bun" - rm -rf /opt/gitea-mirror - fetch_and_deploy_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror" "tarball" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "gitea-mirror" "RayLabsHQ/gitea-mirror" "tarball" msg_info "Updating and rebuilding ${APP}" cd /opt/gitea-mirror diff --git a/ct/gitea.sh b/ct/gitea.sh index 4a88fb6c7..93c6e3721 100644 --- a/ct/gitea.sh +++ b/ct/gitea.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-8}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/glance.sh b/ct/glance.sh index 06b7488a4..d12c9eb51 100644 --- a/ct/glance.sh +++ b/ct/glance.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-512}" var_disk="${var_disk:-2}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -33,8 +33,7 @@ function update_script() { systemctl stop glance msg_ok "Stopped Service" - rm -f /opt/glance/glance - fetch_and_deploy_gh_release "glance" "glanceapp/glance" "prebuild" "latest" "/opt/glance" "glance-linux-amd64.tar.gz" + CLEAN_INSTALL=1 fetch_and_deploy_gh_release "glance" "glanceapp/glance" "prebuild" "latest" "/opt/glance" "glance-linux-amd64.tar.gz" msg_info "Starting Service" systemctl start glance diff --git a/ct/go2rtc.sh b/ct/go2rtc.sh index fb9207c8d..ded51f428 100644 --- a/ct/go2rtc.sh +++ b/ct/go2rtc.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" var_gpu="${var_gpu:-yes}" diff --git a/ct/gokapi.sh b/ct/gokapi.sh index 18521e170..a5d515693 100644 --- a/ct/gokapi.sh +++ b/ct/gokapi.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-512}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/gotify.sh b/ct/gotify.sh index e2c7b807b..cb5e2174e 100644 --- a/ct/gotify.sh +++ b/ct/gotify.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-512}" var_disk="${var_disk:-2}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/grist.sh b/ct/grist.sh index d33168b89..a18cf78c6 100644 --- a/ct/grist.sh +++ b/ct/grist.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-3072}" var_disk="${var_disk:-6}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -41,7 +41,7 @@ function update_script() { fetch_and_deploy_gh_release "grist" "gristlabs/grist-core" "tarball" - msg_info "Updating ${APP}" + msg_info "Updating Grist" mkdir -p /opt/grist/docs cp -n /opt/grist_bak/.env /opt/grist/.env cp -r /opt/grist_bak/docs/* /opt/grist/docs/ @@ -51,7 +51,7 @@ function update_script() { $STD yarn install $STD yarn run build:prod $STD yarn run install:python - msg_ok "Updated ${APP}" + msg_ok "Updated Grist" msg_info "Starting Service" systemctl start grist diff --git a/ct/grocy.sh b/ct/grocy.sh index 61eff4449..a2c279f2e 100644 --- a/ct/grocy.sh +++ b/ct/grocy.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-1}" var_ram="${var_ram:-512}" var_disk="${var_disk:-2}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" @@ -32,7 +32,7 @@ function update_script() { PHP_VERSION="8.3" PHP_MODULE="sqlite3,bz2" PHP_APACHE="yes" setup_php fi if check_for_gh_release "grocy" "grocy/grocy"; then - msg_info "Updating ${APP}" + msg_info "Updating grocy" bash /var/www/html/update.sh msg_ok "Updated successfully!" fi diff --git a/ct/huntarr.sh b/ct/huntarr.sh index e24d4ab2d..a14151378 100644 --- a/ct/huntarr.sh +++ b/ct/huntarr.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-1024}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-1}" header_info "$APP" diff --git a/ct/hyperhdr.sh b/ct/hyperhdr.sh index 3cd17231b..50bc3f856 100644 --- a/ct/hyperhdr.sh +++ b/ct/hyperhdr.sh @@ -11,7 +11,7 @@ var_cpu="${var_cpu:-2}" var_ram="${var_ram:-2048}" var_disk="${var_disk:-4}" var_os="${var_os:-debian}" -var_version="${var_version:-12}" +var_version="${var_version:-13}" var_unprivileged="${var_unprivileged:-0}" var_gpu="${var_gpu:-yes}" diff --git a/frontend/public/json/apt-cacher-ng.json b/frontend/public/json/apt-cacher-ng.json index 4971de84b..76b4a8f14 100644 --- a/frontend/public/json/apt-cacher-ng.json +++ b/frontend/public/json/apt-cacher-ng.json @@ -23,7 +23,7 @@ "ram": 512, "hdd": 10, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/aria2.json b/frontend/public/json/aria2.json index 7fc631341..74850e468 100644 --- a/frontend/public/json/aria2.json +++ b/frontend/public/json/aria2.json @@ -23,7 +23,7 @@ "ram": 1024, "hdd": 8, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/asterisk.json b/frontend/public/json/asterisk.json index 14f6007e5..826379d01 100644 --- a/frontend/public/json/asterisk.json +++ b/frontend/public/json/asterisk.json @@ -23,7 +23,7 @@ "ram": 2048, "hdd": 4, "os": "Debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/authelia.json b/frontend/public/json/authelia.json index 67748d826..a6b92e1dc 100644 --- a/frontend/public/json/authelia.json +++ b/frontend/public/json/authelia.json @@ -23,7 +23,7 @@ "ram": 512, "hdd": 2, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/autobrr.json b/frontend/public/json/autobrr.json index 3709a342c..948184e1f 100644 --- a/frontend/public/json/autobrr.json +++ b/frontend/public/json/autobrr.json @@ -23,7 +23,7 @@ "ram": 2048, "hdd": 8, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/autocaliweb.json b/frontend/public/json/autocaliweb.json index 9020464ed..3293642de 100644 --- a/frontend/public/json/autocaliweb.json +++ b/frontend/public/json/autocaliweb.json @@ -23,7 +23,7 @@ "ram": 2048, "hdd": 6, "os": "Debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/bar-assistant.json b/frontend/public/json/bar-assistant.json index 6f716ec98..78b7018fd 100644 --- a/frontend/public/json/bar-assistant.json +++ b/frontend/public/json/bar-assistant.json @@ -23,7 +23,7 @@ "ram": 2048, "hdd": 4, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/beszel.json b/frontend/public/json/beszel.json index 6fe534122..1e7dd9c01 100644 --- a/frontend/public/json/beszel.json +++ b/frontend/public/json/beszel.json @@ -23,7 +23,7 @@ "ram": 512, "hdd": 5, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/bitmagnet.json b/frontend/public/json/bitmagnet.json index 961b59e9f..c50577637 100644 --- a/frontend/public/json/bitmagnet.json +++ b/frontend/public/json/bitmagnet.json @@ -23,7 +23,7 @@ "ram": 1024, "hdd": 4, "os": "debian", - "version": "12" + "version": "13" } }, { diff --git a/frontend/public/json/blocky.json b/frontend/public/json/blocky.json index c15dafd54..8a5deb492 100644 --- a/frontend/public/json/blocky.json +++ b/frontend/public/json/blocky.json @@ -23,7 +23,7 @@ "ram": 512, "hdd": 2, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/bunkerweb.json b/frontend/public/json/bunkerweb.json index 1c12f649a..101b282be 100644 --- a/frontend/public/json/bunkerweb.json +++ b/frontend/public/json/bunkerweb.json @@ -23,7 +23,7 @@ "ram": 8192, "hdd": 4, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/bytestash.json b/frontend/public/json/bytestash.json index a156917c6..2ac9bebfb 100644 --- a/frontend/public/json/bytestash.json +++ b/frontend/public/json/bytestash.json @@ -23,7 +23,7 @@ "ram": 1024, "hdd": 4, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/channels.json b/frontend/public/json/channels.json index a7e5010fc..eadbd2485 100644 --- a/frontend/public/json/channels.json +++ b/frontend/public/json/channels.json @@ -23,7 +23,7 @@ "ram": 1024, "hdd": 8, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/cleanuparr.json b/frontend/public/json/cleanuparr.json index b0d242b7e..15ac368ba 100644 --- a/frontend/public/json/cleanuparr.json +++ b/frontend/public/json/cleanuparr.json @@ -23,7 +23,7 @@ "ram": 1024, "hdd": 4, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/cloudreve.json b/frontend/public/json/cloudreve.json index 5037dab6b..031b980dd 100644 --- a/frontend/public/json/cloudreve.json +++ b/frontend/public/json/cloudreve.json @@ -23,7 +23,7 @@ "ram": 1024, "hdd": 10, "os": "Debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/commafeed.json b/frontend/public/json/commafeed.json index 7fd3536c4..efc71ac63 100644 --- a/frontend/public/json/commafeed.json +++ b/frontend/public/json/commafeed.json @@ -23,7 +23,7 @@ "ram": 2048, "hdd": 4, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/cronicle.json b/frontend/public/json/cronicle.json index 412a9c6d3..80df80119 100644 --- a/frontend/public/json/cronicle.json +++ b/frontend/public/json/cronicle.json @@ -23,7 +23,7 @@ "ram": 512, "hdd": 2, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/cross-seed.json b/frontend/public/json/cross-seed.json index a8e786090..4ef7e37bd 100644 --- a/frontend/public/json/cross-seed.json +++ b/frontend/public/json/cross-seed.json @@ -23,7 +23,7 @@ "ram": 1024, "hdd": 2, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/cryptpad.json b/frontend/public/json/cryptpad.json index 64c171bf6..ea19b74c4 100644 --- a/frontend/public/json/cryptpad.json +++ b/frontend/public/json/cryptpad.json @@ -23,7 +23,7 @@ "ram": 1024, "hdd": 8, "os": "Debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/daemonsync.json b/frontend/public/json/daemonsync.json index 6830b8c9b..188a40f1d 100644 --- a/frontend/public/json/daemonsync.json +++ b/frontend/public/json/daemonsync.json @@ -23,7 +23,7 @@ "ram": 512, "hdd": 8, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/deluge.json b/frontend/public/json/deluge.json index 51cb7a7d3..c8887c87f 100644 --- a/frontend/public/json/deluge.json +++ b/frontend/public/json/deluge.json @@ -23,7 +23,7 @@ "ram": 2048, "hdd": 4, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/elementsynapse.json b/frontend/public/json/elementsynapse.json index 3f1b29b1e..e1a304be8 100644 --- a/frontend/public/json/elementsynapse.json +++ b/frontend/public/json/elementsynapse.json @@ -23,7 +23,7 @@ "ram": 2048, "hdd": 8, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/emqx.json b/frontend/public/json/emqx.json index 4c6538116..ec71c5353 100644 --- a/frontend/public/json/emqx.json +++ b/frontend/public/json/emqx.json @@ -23,7 +23,7 @@ "ram": 1024, "hdd": 4, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/excalidraw.json b/frontend/public/json/excalidraw.json index 5e0a1f298..6620a5bc2 100644 --- a/frontend/public/json/excalidraw.json +++ b/frontend/public/json/excalidraw.json @@ -23,7 +23,7 @@ "ram": 3072, "hdd": 10, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/fileflows.json b/frontend/public/json/fileflows.json index 6eb78950b..e618de8b9 100644 --- a/frontend/public/json/fileflows.json +++ b/frontend/public/json/fileflows.json @@ -23,7 +23,7 @@ "ram": 2048, "hdd": 8, "os": "Debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/flowiseai.json b/frontend/public/json/flowiseai.json index 66cf41f29..1fd45e03d 100644 --- a/frontend/public/json/flowiseai.json +++ b/frontend/public/json/flowiseai.json @@ -23,7 +23,7 @@ "ram": 4096, "hdd": 10, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/fluid-calendar.json b/frontend/public/json/fluid-calendar.json index 206e27115..9c9a1010e 100644 --- a/frontend/public/json/fluid-calendar.json +++ b/frontend/public/json/fluid-calendar.json @@ -24,7 +24,7 @@ "ram": 4096, "hdd": 7, "os": "Debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/fumadocs.json b/frontend/public/json/fumadocs.json index 473c90638..0974cce33 100644 --- a/frontend/public/json/fumadocs.json +++ b/frontend/public/json/fumadocs.json @@ -23,7 +23,7 @@ "ram": 2048, "hdd": 5, "os": "Debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/gatus.json b/frontend/public/json/gatus.json index 930aacb7f..a436dfe40 100644 --- a/frontend/public/json/gatus.json +++ b/frontend/public/json/gatus.json @@ -23,7 +23,7 @@ "ram": 512, "hdd": 4, "os": "debian", - "version": "12" + "version": "13" } }, { diff --git a/frontend/public/json/ghost.json b/frontend/public/json/ghost.json index 3e8f38281..494d87391 100644 --- a/frontend/public/json/ghost.json +++ b/frontend/public/json/ghost.json @@ -23,7 +23,7 @@ "ram": 1024, "hdd": 5, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/gitea-mirror.json b/frontend/public/json/gitea-mirror.json index 5d3bebfea..5dafe2764 100644 --- a/frontend/public/json/gitea-mirror.json +++ b/frontend/public/json/gitea-mirror.json @@ -23,7 +23,7 @@ "ram": 2048, "hdd": 6, "os": "Debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/gitea.json b/frontend/public/json/gitea.json index 196a73312..341af27df 100644 --- a/frontend/public/json/gitea.json +++ b/frontend/public/json/gitea.json @@ -23,7 +23,7 @@ "ram": 1024, "hdd": 8, "os": "debian", - "version": "12" + "version": "13" } }, { diff --git a/frontend/public/json/glance.json b/frontend/public/json/glance.json index e52c6c30b..a2d3431bb 100644 --- a/frontend/public/json/glance.json +++ b/frontend/public/json/glance.json @@ -23,7 +23,7 @@ "ram": 512, "hdd": 2, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/go2rtc.json b/frontend/public/json/go2rtc.json index fa0f15688..0f82984d7 100644 --- a/frontend/public/json/go2rtc.json +++ b/frontend/public/json/go2rtc.json @@ -23,7 +23,7 @@ "ram": 2048, "hdd": 4, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/gokapi.json b/frontend/public/json/gokapi.json index fba0b2ecb..88ba7e6b9 100644 --- a/frontend/public/json/gokapi.json +++ b/frontend/public/json/gokapi.json @@ -23,7 +23,7 @@ "ram": 512, "hdd": 4, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/gotify.json b/frontend/public/json/gotify.json index b311aca92..c4e29b988 100644 --- a/frontend/public/json/gotify.json +++ b/frontend/public/json/gotify.json @@ -23,7 +23,7 @@ "ram": 512, "hdd": 2, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/grist.json b/frontend/public/json/grist.json index 38f3d2719..88b35d9be 100644 --- a/frontend/public/json/grist.json +++ b/frontend/public/json/grist.json @@ -23,7 +23,7 @@ "ram": 3072, "hdd": 6, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/grocy.json b/frontend/public/json/grocy.json index 0165ade4d..a05db59f2 100644 --- a/frontend/public/json/grocy.json +++ b/frontend/public/json/grocy.json @@ -23,7 +23,7 @@ "ram": 512, "hdd": 2, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/frontend/public/json/huntarr.json b/frontend/public/json/huntarr.json index b641846ff..d78e144ef 100644 --- a/frontend/public/json/huntarr.json +++ b/frontend/public/json/huntarr.json @@ -14,8 +14,7 @@ "website": "https://github.com/plexguide/Huntarr.io", "logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/huntarr.webp", "description": "Huntarr is a tool that automates the search for missing or low-quality media content in your collection. It works seamlessly with applications like Sonarr, Radarr, Lidarr, Readarr, and Whisparr, enhancing their functionality with continuous background scans to identify and update missed or outdated content. Through a user-friendly web interface accessible on port 9705, Huntarr provides real-time statistics, log views, and extensive configuration options. The software is especially useful for users who want to keep their media library up to date by automatically searching for missing episodes or higher-quality versions. Huntarr is well-suited for self-hosted environments and can easily run in LXC containers or Docker setups.", - "disable": true, - "disable_description": "This script has been temporarily disabled due to ongoing installation failures caused by incompatible Python and build dependencies. PyYAML 6.0 fails to build on Debian 13 and under Python 3.12/3.13, making Huntarr currently non-installable in a reliable way. This issue originates upstream and is under investigation. The script will be re-enabled once a stable solution is available. For details, see: https://github.com/community-scripts/ProxmoxVE/issues/9196 or https://github.com/plexguide/Huntarr.io/issues/747", + "disable": false, "install_methods": [ { "type": "default", @@ -25,7 +24,7 @@ "ram": 1024, "hdd": 4, "os": "debian", - "version": "12" + "version": "13" } } ], diff --git a/install/apt-cacher-ng-install.sh b/install/apt-cacher-ng-install.sh index 0a29526f6..033e330d2 100644 --- a/install/apt-cacher-ng-install.sh +++ b/install/apt-cacher-ng-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing Apt-Cacher NG" -DEBIAN_FRONTEND=noninteractive $STD apt-get -o Dpkg::Options::="--force-confold" install -y apt-cacher-ng +DEBIAN_FRONTEND=noninteractive $STD apt -o Dpkg::Options::="--force-confold" install -y apt-cacher-ng sed -i 's/# PassThroughPattern: .* # this would allow CONNECT to everything/PassThroughPattern: .*/' /etc/apt-cacher-ng/acng.conf cat </etc/apt/apt.conf.d/00aptproxy.conf Acquire::http::Proxy "http://localhost:3142"; diff --git a/install/aria2-install.sh b/install/aria2-install.sh index f70485e8e..a4fb2508a 100644 --- a/install/aria2-install.sh +++ b/install/aria2-install.sh @@ -14,18 +14,20 @@ network_check update_os msg_info "Installing Aria2" -$STD apt-get install -y aria2 +$STD apt install -y aria2 msg_ok "Installed Aria2" read -r -p "${TAB3}Would you like to add AriaNG? " prompt if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then - msg_info "Installing AriaNG" - $STD apt-get install -y nginx + msg_info "Installing Dependencies" + $STD apt install -y nginx systemctl disable -q --now nginx - curl -fsSL "$(curl -fsSL https://api.github.com/repos/mayswind/ariang/releases/latest | grep download | grep AllInOne.zip | cut -d\" -f4)" -o $(basename "$(curl -fsSL https://api.github.com/repos/mayswind/ariang/releases/latest | grep download | grep AllInOne.zip | cut -d\" -f4)") - $STD unzip AriaNg-*-AllInOne.zip -d /var/www - rm AriaNg-*-AllInOne.zip rm /etc/nginx/sites-enabled/* + msg_ok "Installed Dependencies" + + fetch_and_deploy_gh_release "ariang" "mayswind/ariang" "prebuild" "latest" "/var/www" "AriaNg-*-AllInOne.zip" + + msg_info "Configure nginx" cat </etc/nginx/conf.d/ariang.conf server { listen 6880 default_server; @@ -42,11 +44,12 @@ server { } EOF cp /lib/systemd/system/nginx.service /lib/systemd/system/ariang.service - msg_ok "Installed AriaNG" + systemctl enable -q --now ariang + msg_ok "Configured nginx" fi msg_info "Creating Service" -mkdir /root/downloads +mkdir -p /root/downloads rpc_secret=$(openssl rand -base64 8) echo "rpc-secret: $rpc_secret" >>~/rpc.secret cat </root/aria2.daemon @@ -80,7 +83,6 @@ Restart=on-failure WantedBy=multi-user.target EOF systemctl enable -q --now aria2 -systemctl enable -q --now ariang msg_ok "Created Service" motd_ssh diff --git a/install/audiobookshelf-install.sh b/install/audiobookshelf-install.sh index 46ccd2000..815d49f8a 100644 --- a/install/audiobookshelf-install.sh +++ b/install/audiobookshelf-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y ffmpeg +$STD apt install -y ffmpeg msg_ok "Installed Dependencies" setup_deb822_repo \ diff --git a/install/authelia-install.sh b/install/authelia-install.sh index 7a4636dfd..25ce25a7c 100644 --- a/install/authelia-install.sh +++ b/install/authelia-install.sh @@ -15,8 +15,39 @@ update_os fetch_and_deploy_gh_release "authelia" "authelia/authelia" "binary" -read -rp "${TAB3}Enter your domain (ex. example.com): " DOMAIN - +get_lxc_ip +MAX_ATTEMPTS=3 +attempt=0 +while true; do + ((attempt++)) + read -rp "${TAB3}Enter your domain or IP (ex. example.com or 192.168.1.100): " DOMAIN + if [[ -z "$DOMAIN" ]]; then + if ((attempt >= MAX_ATTEMPTS)); then + DOMAIN="${LOCAL_IP:-localhost}" + msg_warn "Using fallback: $DOMAIN" + break + fi + msg_warn "Domain cannot be empty! (Attempt $attempt/$MAX_ATTEMPTS)" + elif [[ "$DOMAIN" =~ ^([0-9]{1,3}\.){3}[0-9]{1,3}$ ]]; then + valid_ip=true + IFS='.' read -ra octets <<< "$DOMAIN" + for octet in "${octets[@]}"; do + if ((octet > 255)); then + valid_ip=false + break + fi + done + if $valid_ip; then + break + else + msg_warn "Invalid IP address!" + fi + elif [[ "$DOMAIN" =~ ^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*\.[a-zA-Z]{2,}$ ]]; then + break + else + msg_warn "Invalid domain format!" + fi +done msg_info "Setting Authelia up" touch /etc/authelia/emails.txt JWT_SECRET=$(openssl rand -hex 64) diff --git a/install/autocaliweb-install.sh b/install/autocaliweb-install.sh index d5727ef37..d8accf905 100644 --- a/install/autocaliweb-install.sh +++ b/install/autocaliweb-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing dependencies" -$STD apt-get install -y --no-install-recommends \ +$STD apt install -y --no-install-recommends \ python3-dev \ sqlite3 \ build-essential \ @@ -47,16 +47,12 @@ msg_ok "Installed dependencies" fetch_and_deploy_gh_release "kepubify" "pgaskin/kepubify" "singlefile" "latest" "/usr/bin" "kepubify-linux-64bit" KEPUB_VERSION="$(/usr/bin/kepubify --version | awk '{print $2}')" +fetch_and_deploy_gh_release "calibre" "kovidgoyal/calibre" "prebuild" "latest" "/opt/calibre" "calibre-*-x86_64.txz" msg_info "Installing Calibre" -CALIBRE_RELEASE="$(curl -s https://api.github.com/repos/kovidgoyal/calibre/releases/latest | grep -o '"tag_name": "[^"]*' | cut -d'"' -f4)" -CALIBRE_VERSION=${CALIBRE_RELEASE#v} -curl -fsSL https://github.com/kovidgoyal/calibre/releases/download/${CALIBRE_RELEASE}/calibre-${CALIBRE_VERSION}-x86_64.txz -o /tmp/calibre.txz -mkdir -p /opt/calibre -$STD tar -xf /tmp/calibre.txz -C /opt/calibre -rm /tmp/calibre.txz $STD /opt/calibre/calibre_postinstall -msg_ok "Calibre installed" +CALIBRE_VERSION=$(cat ~/.calibre) +msg_ok "Installed Calibre" setup_uv diff --git a/install/bar-assistant-install.sh b/install/bar-assistant-install.sh index 9f25c98fe..c1cbe3d87 100644 --- a/install/bar-assistant-install.sh +++ b/install/bar-assistant-install.sh @@ -16,12 +16,11 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y \ +$STD apt install -y \ redis-server \ nginx \ lsb-release \ libvips -#php-{ffi,opcache,redis,zip,pdo-sqlite,bcmath,pdo,curl,dom,fpm} msg_ok "Installed Dependencies" PHP_VERSION="8.4" PHP_FPM=YES PHP_MODULE="ffi,opcache,redis,zip,pdo-sqlite,bcmath,pdo,curl,dom,fpm" setup_php diff --git a/install/bitmagnet-install.sh b/install/bitmagnet-install.sh index 4141b30ad..e6e5ab36c 100644 --- a/install/bitmagnet-install.sh +++ b/install/bitmagnet-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y \ +$STD apt install -y \ iproute2 \ gcc \ musl-dev @@ -23,28 +23,17 @@ msg_ok "Installed Dependencies" PG_VERSION="16" setup_postgresql setup_go fetch_and_deploy_gh_release "bitmagnet" "bitmagnet-io/bitmagnet" "tarball" -RELEASE=$(curl -fsSL https://api.github.com/repos/bitmagnet-io/bitmagnet/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +RELEASE=$(cat ~/.bitmagnet) -msg_info "Setting up database" -POSTGRES_PASSWORD=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13) -$STD sudo -u postgres psql -c "ALTER USER postgres WITH PASSWORD '$POSTGRES_PASSWORD';" -$STD sudo -u postgres psql -c "CREATE DATABASE bitmagnet;" -{ - echo "PostgreSQL Credentials" - echo "" - echo "postgres user password: $POSTGRES_PASSWORD" -} >>~/postgres.creds -msg_ok "Database set up" +PG_DB_NAME="bitmagnet" PG_DB_USER="postgres" setup_postgresql_db -msg_info "Configuring bitmagnet v${RELEASE}" +msg_info "Configuring bitmagnet" cd /opt/bitmagnet -VREL=v$RELEASE -$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=$VREL" +$STD go build -ldflags "-s -w -X github.com/bitmagnet-io/bitmagnet/internal/version.GitTag=v${RELEASE}" chmod +x bitmagnet -msg_ok "Configured bitmagnet v${RELEASE}" +msg_ok "Configured bitmagnet" read -r -p "${TAB3}Enter your TMDB API key if you have one: " tmdbapikey - msg_info "Creating Service" cat </etc/systemd/system/bitmagnet-web.service [Unit] @@ -57,7 +46,7 @@ User=root WorkingDirectory=/opt/bitmagnet ExecStart=/opt/bitmagnet/bitmagnet worker run --all Environment=POSTGRES_HOST=localhost -Environment=POSTGRES_PASSWORD=$POSTGRES_PASSWORD +Environment=POSTGRES_PASSWORD=${PG_DB_PASS} Environment=TMDB_API_KEY=$tmdbapikey Restart=on-failure diff --git a/install/bunkerweb-install.sh b/install/bunkerweb-install.sh index 50f50c44e..351bc8a49 100644 --- a/install/bunkerweb-install.sh +++ b/install/bunkerweb-install.sh @@ -14,11 +14,12 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y apt-transport-https -$STD apt-get install -y lsb-release +$STD apt install -y \ + apt-transport-https \ + lsb-release msg_ok "Installed Dependencies" -RELEASE=$(curl -fsSL https://api.github.com/repos/bunkerity/bunkerweb/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') +RELEASE=$(get_latest_github_release "bunkerity/bunkerweb") msg_warn "WARNING: This script will run an external installer from a third-party source (install-bunkerweb.sh)." msg_warn "The following code is NOT maintained or audited by our repository." msg_warn "If you have any doubts or concerns, please review the installer code before proceeding:" @@ -30,7 +31,7 @@ if [[ ! "$CONFIRM" =~ ^([yY][eE][sS]|[yY])$ ]]; then exit 10 fi msg_info "Installing BunkerWeb (Patience)" -curl -fsSL -o install-bunkerweb.sh https://github.com/bunkerity/bunkerweb/raw/v${RELEASE}/misc/install-bunkerweb.sh +curl -fsSL -o install-bunkerweb.sh "https://github.com/bunkerity/bunkerweb/raw/v${RELEASE}/misc/install-bunkerweb.sh" chmod +x install-bunkerweb.sh $STD ./install-bunkerweb.sh --yes $STD apt-mark unhold bunkerweb nginx @@ -39,8 +40,8 @@ Package: bunkerweb Pin: version ${RELEASE} Pin-Priority: 1001 EOF -echo "${RELEASE}" >/opt/${APPLICATION}_version.txt -msg_ok "Installed BunkerWeb v${RELEASE}" +echo "${RELEASE}" >~/.bunkerweb +msg_ok "Installed BunkerWeb" motd_ssh customize diff --git a/install/channels-install.sh b/install/channels-install.sh index 3679139c3..ce79ccee8 100644 --- a/install/channels-install.sh +++ b/install/channels-install.sh @@ -14,8 +14,9 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y chromium -$STD apt-get install -y xvfb +$STD apt install -y \ + chromium \ + xvfb msg_ok "Installed Dependencies" msg_warn "WARNING: This script will run an external installer from a third-party source (https://getchannels.com)." diff --git a/install/cloudreve-install.sh b/install/cloudreve-install.sh index c3279036e..73dc588c3 100644 --- a/install/cloudreve-install.sh +++ b/install/cloudreve-install.sh @@ -30,7 +30,6 @@ RestartSec=5 [Install] WantedBy=multi-user.target EOF - systemctl enable -q --now cloudreve msg_ok "Service Setup" diff --git a/install/cockpit-install.sh b/install/cockpit-install.sh index fdf1cd786..aee48496a 100644 --- a/install/cockpit-install.sh +++ b/install/cockpit-install.sh @@ -16,7 +16,6 @@ update_os msg_info "Installing Cockpit" source /etc/os-release - cat </etc/apt/sources.list.d/debian-backports.sources Types: deb deb-src URIs: http://deb.debian.org/debian @@ -42,18 +41,13 @@ if [[ "${prompt,,}" =~ ^(y|yes)$ ]]; then fi if [[ "$install_45drives" == "true" ]]; then msg_info "Installing 45Drives' cockpit extensions" - curl -fsSL https://repo.45drives.com/key/gpg.asc | gpg --pinentry-mode loopback --batch --yes --dearmor -o /usr/share/keyrings/45drives-archive-keyring.gpg - cat </etc/apt/sources.list.d/45drives-enterprise.sources -Types: deb -URIs: https://repo.45drives.com/enterprise/debian -Suites: bookworm -Components: main -Architectures: amd64 -Signed-By: /usr/share/keyrings/45drives-archive-keyring.gpg -EOF - - $STD apt update - $STD apt install cockpit-file-sharing cockpit-identities cockpit-navigator -y + setup_deb822_repo "45drives" \ + "https://repo.45drives.com/key/gpg.asc" \ + "https://repo.45drives.com/enterprise/debian" \ + "bookworm" \ + "main" \ + "amd64" + $STD apt install -y cockpit-file-sharing cockpit-identities cockpit-navigator msg_ok "Installed 45Drives' cockpit extensions" fi fi diff --git a/install/commafeed-install.sh b/install/commafeed-install.sh index 0d877afca..27a5eaa43 100644 --- a/install/commafeed-install.sh +++ b/install/commafeed-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y rsync +$STD apt install -y rsync msg_ok "Installed Dependencies" JAVA_VERSION="25" setup_java diff --git a/install/cross-seed-install.sh b/install/cross-seed-install.sh index 2dad7de87..7aa42aeeb 100644 --- a/install/cross-seed-install.sh +++ b/install/cross-seed-install.sh @@ -27,8 +27,9 @@ Description=Cross-Seed daemon Service After=network.target [Service] -ExecStart=cross-seed daemon -Restart=always +ExecStart=/usr/bin/cross-seed daemon +Restart=on-failure +RestartSec=30 User=root [Install] diff --git a/install/cryptpad-install.sh b/install/cryptpad-install.sh index ef8188f7b..14581b888 100644 --- a/install/cryptpad-install.sh +++ b/install/cryptpad-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y git +$STD apt install -y git msg_ok "Installed Dependencies" NODE_VERSION="22" setup_nodejs @@ -22,7 +22,7 @@ NODE_VERSION="22" setup_nodejs read -rp "${TAB3}Install OnlyOffice components instead of CKEditor? (Y/N): " onlyoffice fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad" "tarball" -msg_info "Setup ${APPLICATION}" +msg_info "Setup CryptPad" cd /opt/cryptpad $STD npm ci $STD npm run install:components @@ -33,7 +33,7 @@ sed -i "80s#//httpAddress: 'localhost'#httpAddress: '0.0.0.0'#g" /opt/cryptpad/c if [[ "$onlyoffice" =~ ^[Yy]$ ]]; then $STD bash -c "./install-onlyoffice.sh --accept-license" fi -msg_ok "Setup ${APPLICATION}" +msg_ok "Setup CryptPad" msg_info "Creating Service" cat </etc/systemd/system/cryptpad.service diff --git a/install/daemonsync-install.sh b/install/daemonsync-install.sh index aeafec45e..e22e79aef 100644 --- a/install/daemonsync-install.sh +++ b/install/daemonsync-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y g++-multilib +$STD apt install -y g++-multilib msg_ok "Installed Dependencies" msg_info "Installing Daemon Sync Server" diff --git a/install/deluge-install.sh b/install/deluge-install.sh index 5d6add201..478e9f8d4 100644 --- a/install/deluge-install.sh +++ b/install/deluge-install.sh @@ -14,24 +14,23 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y python3-libtorrent +$STD apt install -y \ + python3-pip \ + python3-libtorrent msg_ok "Installed Dependencies" -msg_info "Setup Python3" -$STD apt-get install -y \ - python3 \ - python3-dev \ - python3-pip -rm -rf /usr/lib/python3.*/EXTERNALLY-MANAGED -msg_ok "Setup Python3" - msg_info "Installing Deluge" +mkdir -p ~/.config/pip +cat >~/.config/pip/pip.conf </etc/systemd/system/deluged.service +[Unit] Description=Deluge Bittorrent Client Daemon Documentation=man:deluged After=network-online.target @@ -39,15 +38,16 @@ After=network-online.target [Service] Type=simple UMask=007 -ExecStart=/usr/local/bin/deluged -d +ExecStart=/usr/bin/deluged -d Restart=on-failure TimeoutStopSec=300 [Install] -WantedBy=multi-user.target" >$service_path +WantedBy=multi-user.target +EOF -service_path="/etc/systemd/system/deluge-web.service" -echo "[Unit] +cat </etc/systemd/system/deluge-web.service +[Unit] Description=Deluge Bittorrent Client Web Interface Documentation=man:deluge-web After=deluged.service @@ -56,13 +56,13 @@ Wants=deluged.service [Service] Type=simple UMask=027 -ExecStart=/usr/local/bin/deluge-web -d +ExecStart=/usr/bin/deluge-web -d Restart=on-failure [Install] -WantedBy=multi-user.target" >$service_path -systemctl enable --now -q deluged.service -systemctl enable --now -q deluge-web.service +WantedBy=multi-user.target +EOF +systemctl enable --now -q deluged.service deluge-web.service msg_ok "Created Service" motd_ssh diff --git a/install/elementsynapse-install.sh b/install/elementsynapse-install.sh index 4114cc42b..59ff41ed2 100644 --- a/install/elementsynapse-install.sh +++ b/install/elementsynapse-install.sh @@ -14,23 +14,24 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y \ - lsb-release \ +$STD apt install -y \ apt-transport-https \ debconf-utils msg_ok "Installed Dependencies" -NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs +NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs read -p "${TAB3}Please enter the name for your server: " servername msg_info "Installing Element Synapse" -curl -fsSL "https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg" -o "/usr/share/keyrings/matrix-org-archive-keyring.gpg" -echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" >/etc/apt/sources.list.d/matrix-org.list -$STD apt-get update +setup_deb822_repo "matrix-org" \ + "https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg" \ + "https://packages.matrix.org/debian/" \ + "$(get_os_info codename)" \ + "main" echo "matrix-synapse-py3 matrix-synapse/server-name string $servername" | debconf-set-selections echo "matrix-synapse-py3 matrix-synapse/report-stats boolean false" | debconf-set-selections -$STD apt-get install matrix-synapse-py3 -y +$STD apt install matrix-synapse-py3 -y systemctl stop matrix-synapse sed -i 's/127.0.0.1/0.0.0.0/g' /etc/matrix-synapse/homeserver.yaml sed -i 's/'\''::1'\'', //g' /etc/matrix-synapse/homeserver.yaml @@ -48,11 +49,11 @@ $STD register_new_matrix_user -a --user admin --password "$ADMIN_PASS" --config systemctl stop matrix-synapse sed -i '34d' /etc/matrix-synapse/homeserver.yaml systemctl start matrix-synapse -temp_file=$(mktemp) -mkdir -p /opt/synapse-admin -RELEASE=$(curl -fsSL https://api.github.com/repos/etkecc/synapse-admin/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }') -curl -fsSL "https://github.com/etkecc/synapse-admin/archive/refs/tags/v${RELEASE}.tar.gz" -o "$temp_file" -tar xzf "$temp_file" -C /opt/synapse-admin --strip-components=1 +msg_ok "Installed Element Synapse" + +fetch_and_deploy_gh_release "etkecc/synapse-admin" "/opt/synapse-admin" "tarball" + +msg_info "Installing Synapse-Admin" cd /opt/synapse-admin $STD yarn global add serve $STD yarn install --ignore-engines @@ -60,7 +61,7 @@ $STD yarn build mv ./dist ../ && rm -rf * && mv ../dist ./ -msg_ok "Installed Element Synapse" +msg_ok "Installed Synapse-Admin" msg_info "Creating Service" cat </etc/systemd/system/synapse-admin.service diff --git a/install/emqx-install.sh b/install/emqx-install.sh index 4b04bab01..d53465723 100644 --- a/install/emqx-install.sh +++ b/install/emqx-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing dependencies" -$STD apt-get install -y ca-certificates +$STD apt install -y ca-certificates msg_ok "Installed dependencies" msg_info "Fetching latest EMQX Enterprise version" @@ -33,7 +33,7 @@ $STD curl -fsSL -o "$DEB_FILE" "$DOWNLOAD_URL" msg_ok "Downloaded EMQX" msg_info "Installing EMQX" -$STD apt-get install -y "$DEB_FILE" +$STD apt install -y "$DEB_FILE" rm -f "$DEB_FILE" echo "$LATEST_VERSION" >~/.emqx msg_ok "Installed EMQX" diff --git a/install/excalidraw-install.sh b/install/excalidraw-install.sh index 32efb27da..e9e8456ac 100644 --- a/install/excalidraw-install.sh +++ b/install/excalidraw-install.sh @@ -14,10 +14,10 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y xdg-utils +$STD apt install -y xdg-utils msg_ok "Installed Dependencies" -NODE_VERSION="22" NODE_MODULE="yarn@latest" setup_nodejs +NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw" "tarball" msg_info "Configuring Excalidraw" diff --git a/install/fileflows-install.sh b/install/fileflows-install.sh index 0e04c881d..3b452fc3b 100644 --- a/install/fileflows-install.sh +++ b/install/fileflows-install.sh @@ -24,23 +24,23 @@ msg_ok "Installed Dependencies" setup_hwaccel msg_info "Installing ASP.NET Core Runtime" -curl -fsSL https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -o packages-microsoft-prod.deb +curl -fsSL https://packages.microsoft.com/config/debian/13/packages-microsoft-prod.deb -o packages-microsoft-prod.deb $STD dpkg -i packages-microsoft-prod.deb rm -rf packages-microsoft-prod.deb $STD apt-get update $STD apt-get install -y aspnetcore-runtime-8.0 msg_ok "Installed ASP.NET Core Runtime" -msg_info "Setup ${APPLICATION}" +msg_info "Setup FileFlows" $STD ln -svf /usr/bin/ffmpeg /usr/local/bin/ffmpeg $STD ln -svf /usr/bin/ffprobe /usr/local/bin/ffprobe temp_file=$(mktemp) curl -fsSL https://fileflows.com/downloads/zip -o "$temp_file" $STD unzip -d /opt/fileflows "$temp_file" -(cd /opt/fileflows/Server && dotnet FileFlows.Server.dll --systemd install --root true) +$STD bash -c "cd /opt/fileflows/Server && dotnet FileFlows.Server.dll --systemd install --root true" systemctl enable -q --now fileflows rm -f "$temp_file" -msg_ok "Setup ${APPLICATION}" +msg_ok "Setup FileFlows" motd_ssh customize diff --git a/install/fluid-calendar-install.sh b/install/fluid-calendar-install.sh index 1333a222d..7b6aacccc 100644 --- a/install/fluid-calendar-install.sh +++ b/install/fluid-calendar-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y zip +$STD apt install -y zip msg_ok "Installed Dependencies" PG_VERSION="17" setup_postgresql diff --git a/install/fumadocs-install.sh b/install/fumadocs-install.sh index d62f84441..4cbb7675e 100644 --- a/install/fumadocs-install.sh +++ b/install/fumadocs-install.sh @@ -13,20 +13,20 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y \ +$STD apt install -y \ ca-certificates \ git msg_ok "Installed Dependencies" -NODE_VERSION="22" NODE_MODULE="pnpm@latest" setup_nodejs +NODE_VERSION="22" NODE_MODULE="pnpm" setup_nodejs -msg_info "Installing Fumadocs" +msg_info "Preparing Fumadocs - " mkdir -p /opt/fumadocs cd /opt/fumadocs +msg_ok "Important: Manual configuration is required after this step." pnpm create fumadocs-app PROJECT_NAME=$(find . -maxdepth 1 -type d ! -name '.' ! -name '..' | sed 's|^\./||') echo "$PROJECT_NAME" >/opt/fumadocs/.projectname -msg_ok "Installed Fumadocs" msg_info "Creating Service" cat </etc/systemd/system/fumadocs_$PROJECT_NAME.service diff --git a/install/gatus-install.sh b/install/gatus-install.sh index b0629fbd1..2da993fe1 100644 --- a/install/gatus-install.sh +++ b/install/gatus-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y \ +$STD apt install -y \ ca-certificates \ libcap2-bin msg_ok "Installed Dependencies" diff --git a/install/ghost-install.sh b/install/ghost-install.sh index 62f2e4196..d97de4f31 100644 --- a/install/ghost-install.sh +++ b/install/ghost-install.sh @@ -14,29 +14,14 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y \ +$STD apt install -y \ nginx \ ca-certificates \ libjemalloc2 msg_ok "Installed Dependencies" setup_mariadb - -msg_info "Configuring Database" -DB_NAME=ghost -DB_USER=ghostuser -DB_PASS=$(openssl rand -base64 18 | tr -dc 'a-zA-Z0-9' | head -c13) -$STD mariadb -u root -e "CREATE DATABASE $DB_NAME;" -$STD mariadb -u root -e "CREATE USER '$DB_USER'@'localhost' IDENTIFIED BY '$DB_PASS';" -$STD mariadb -u root -e "GRANT ALL ON $DB_NAME.* TO '$DB_USER'@'localhost'; FLUSH PRIVILEGES;" -{ - echo "Ghost-Credentials" - echo "Ghost Database User: $DB_USER" - echo "Ghost Database Password: $DB_PASS" - echo "Ghost Database Name: $DB_NAME" -} >>~/ghost.creds -msg_ok "Configured MariaDB" - +MARIADB_DB_NAME="ghost" MARIADB_DB_USER="ghostuser" setup_mariadb_db NODE_VERSION="22" setup_nodejs msg_info "Installing Ghost CLI" @@ -50,7 +35,7 @@ echo "ghost-user ALL=(ALL) NOPASSWD:ALL" | tee /etc/sudoers.d/ghost-user mkdir -p /var/www/ghost chown -R ghost-user:ghost-user /var/www/ghost chmod 775 /var/www/ghost -$STD sudo -u ghost-user -H sh -c "cd /var/www/ghost && ghost install --db=mysql --dbhost=localhost --dbuser=$DB_USER --dbpass=$DB_PASS --dbname=ghost --url=http://localhost:2368 --no-prompt --no-setup-nginx --no-setup-ssl --no-setup-mysql --enable --start --ip 0.0.0.0" +$STD sudo -u ghost-user -H sh -c "cd /var/www/ghost && ghost install --db=mysql --dbhost=localhost --dbuser=$MARIADB_DB_USER --dbpass=$MARIADB_DB_PASS --dbname=$MARIADB_DB_NAME --url=http://localhost:2368 --no-prompt --no-setup-nginx --no-setup-ssl --no-setup-mysql --enable --start --ip 0.0.0.0" rm /etc/sudoers.d/ghost-user msg_ok "Creating Service" diff --git a/install/gitea-install.sh b/install/gitea-install.sh index 411307f1d..2aa9d764c 100644 --- a/install/gitea-install.sh +++ b/install/gitea-install.sh @@ -15,15 +15,16 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y git -$STD apt-get install -y sqlite3 +$STD apt install -y \ + git \ + sqlite3 msg_ok "Installed Dependencies" fetch_and_deploy_gh_release "gitea" "go-gitea/gitea" "singlefile" "latest" "/usr/local/bin" "gitea-*-linux-amd64" msg_info "Configuring Gitea" chmod +x /usr/local/bin/gitea -adduser --system --group --disabled-password --shell /bin/bash --home /etc/gitea gitea >/dev/null +$STD adduser --system --group --disabled-password --shell /bin/bash --home /etc/gitea gitea mkdir -p /var/lib/gitea/{custom,data,log} chown -R gitea:gitea /var/lib/gitea/ chmod -R 750 /var/lib/gitea/ diff --git a/install/gitea-mirror-install.sh b/install/gitea-mirror-install.sh index 8455b59d0..ecb4cf078 100644 --- a/install/gitea-mirror-install.sh +++ b/install/gitea-mirror-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing dependencies" -$STD apt-get install -y \ +$STD apt install -y \ build-essential \ openssl \ sqlite3 \ diff --git a/install/grist-install.sh b/install/grist-install.sh index 5d5bd1681..a616965ec 100644 --- a/install/grist-install.sh +++ b/install/grist-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y \ +$STD apt install -y \ make \ ca-certificates \ python3-venv @@ -42,7 +42,7 @@ Description=Grist After=network.target [Service] -Type=exec +Type=simple WorkingDirectory=/opt/grist ExecStart=/usr/bin/yarn run start:prod EnvironmentFile=-/opt/grist/.env diff --git a/install/grocy-install.sh b/install/grocy-install.sh index 3cdf1009d..ae60af268 100644 --- a/install/grocy-install.sh +++ b/install/grocy-install.sh @@ -14,7 +14,7 @@ network_check update_os msg_info "Installing Dependencies" -$STD apt-get install -y apt-transport-https +$STD apt install -y apt-transport-https msg_ok "Installed Dependencies" PHP_VERSION="8.3" PHP_MODULE="sqlite3,bz2" PHP_APACHE="yes" setup_php @@ -38,7 +38,6 @@ cat </etc/apache2/sites-available/grocy.conf EOF - $STD a2dissite 000-default.conf $STD a2ensite grocy.conf $STD a2enmod rewrite diff --git a/misc/tools.func b/misc/tools.func index 1392adfe0..9c4f58654 100644 --- a/misc/tools.func +++ b/misc/tools.func @@ -1900,7 +1900,7 @@ function fetch_and_deploy_gh_release() { rm -rf "$tmpdir" "$unpack_tmp" return 1 } - elif [[ "$filename" == *.tar.* || "$filename" == *.tgz ]]; then + elif [[ "$filename" == *.tar.* || "$filename" == *.tgz || "$filename" == *.txz ]]; then tar --no-same-owner -xf "$tmpdir/$filename" -C "$unpack_tmp" || { msg_error "Failed to extract TAR archive" rm -rf "$tmpdir" "$unpack_tmp"