From 76b839b04c528f137d9fbc7862b4beaceb821543 Mon Sep 17 00:00:00 2001 From: "CanbiZ (MickLesk)" <47820557+MickLesk@users.noreply.github.com> Date: Tue, 22 Sep 2026 16:06:15 +0200 Subject: [PATCH] several scripts: let uv see the project before syncing it | refactor some scripts that use uv (#17436) * Let uv see the project before syncing it uv refuses to run when a project pins a required-version it does not match, in either direction: RomM pins ==0.12.13, which fails against both the 0.10.3 a container was built with and the 0.12.17 latest installs. UV_PROJECT_DIR points setup_uv at the project so it reads that pin. It is a prefix like PYTHON_VERSION and UV_VERSION, and the call sits directly under fetch_and_deploy: the project is on disk by then, and the deploy has closed its message block, which setup_uv needs since it opens one of its own. That is also the only call needed - nothing between the old early call and the deploy uses uv or Python, so the two collapse into one. Two things found along the way: UV_PYTHON was set as a command prefix on setup_uv in 14 places. setup_uv reads PYTHON_VERSION, never UV_PYTHON, and a prefix assignment does not outlive the call, so those pins did nothing. They now use PYTHON_VERSION, which installs the interpreter they were asking for. Five update scripts had no setup_uv at all while their install counterpart pinned a Python version. They now carry the same pin. immich is left out: it runs uv through sudo -u inside a retry loop. * yubal: drop the uv 0.7.19 pin The pin came in with the script and was never explained. uv 0.7.19 is from 2025-07-02; yubal's uv.lock has carried revision 3 since at least 2025-12-27, and older uv refuses a newer lockfile revision. The script runs uv sync --frozen, so there is no fallback. yubal declares no required-version of its own, so latest is what it gets - and if it ever pins one, that pin is now honoured. --- ct/authentik.sh | 2 +- ct/autocaliweb.sh | 3 +-- ct/baserow.sh | 1 + ct/beaverhabits.sh | 1 + ct/byparr.sh | 1 + ct/dispatcharr.sh | 2 +- ct/fireshare.sh | 1 + ct/flatnotes.sh | 2 +- ct/journiv.sh | 1 + ct/kitchenowl.sh | 1 + ct/linkding.sh | 1 + ct/mealie.sh | 2 +- ct/mediamanager.sh | 3 +-- ct/metube.sh | 1 + ct/notediscovery.sh | 1 + ct/paperless-ngx.sh | 2 +- ct/romm.sh | 1 + ct/shelfmark.sh | 2 +- ct/spoolman.sh | 3 +-- ct/wizarr.sh | 3 +-- ct/yamtrack.sh | 1 + ct/yubal.sh | 1 + install/apache-airflow-install.sh | 2 +- install/audiomuse-ai-install.sh | 2 +- install/authentik-install.sh | 2 +- install/autocaliweb-install.sh | 3 +-- install/baserow-install.sh | 2 +- install/beaverhabits-install.sh | 3 +-- install/borg-ui-install.sh | 2 +- install/byparr-install.sh | 2 +- install/dispatcharr-install.sh | 2 +- install/erpnext-install.sh | 2 +- install/fireshare-install.sh | 1 + install/flatnotes-install.sh | 1 + install/homelable-install.sh | 2 +- install/journiv-install.sh | 2 +- install/kitchenowl-install.sh | 2 +- install/librechat-install.sh | 2 +- install/linkding-install.sh | 2 +- install/matter-server-install.sh | 2 +- install/mealie-install.sh | 2 +- install/mediamanager-install.sh | 2 +- install/metube-install.sh | 2 +- install/notediscovery-install.sh | 3 +-- install/paperless-ngx-install.sh | 2 +- install/pyload-install.sh | 2 +- install/romm-install.sh | 2 +- install/securo-install.sh | 2 +- install/shelfmark-install.sh | 2 +- install/soulsync-install.sh | 2 +- install/spoolman-install.sh | 1 + install/suggestarr-install.sh | 2 +- install/transmute-install.sh | 2 +- install/tubearchivist-install.sh | 2 +- install/wizarr-install.sh | 2 +- install/yamtrack-install.sh | 2 +- install/yubal-install.sh | 3 +-- 57 files changed, 57 insertions(+), 50 deletions(-) diff --git a/ct/authentik.sh b/ct/authentik.sh index 9bf8f432b..5ec151a03 100644 --- a/ct/authentik.sh +++ b/ct/authentik.sh @@ -45,7 +45,6 @@ function update_script() { NODE_VERSION="26" NODE_MODULE=pnpm@12 setup_nodejs $STD uv cache clean - UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" setup_uv RUST_PROFILE="minimal" RUST_TOOLCHAIN="stable" setup_rust setup_yq @@ -95,6 +94,7 @@ function update_script() { fi CLEAN_INSTALL=1 fetch_and_deploy_gh_release "authentik" "goauthentik/authentik" "tarball" "${AUTHENTIK_VERSION}" "/opt/authentik" + UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" UV_PROJECT_DIR="/opt/authentik" setup_uv GO_VERSION="$(grep -m1 '^go ' /opt/authentik/go.mod | awk '{print $2}')" setup_go msg_info "Configuring rust" diff --git a/ct/autocaliweb.sh b/ct/autocaliweb.sh index 763f53964..b0f57d62a 100644 --- a/ct/autocaliweb.sh +++ b/ct/autocaliweb.sh @@ -31,8 +31,6 @@ function update_script() { exit fi - setup_uv - RELEASE=$(get_latest_codeberg_release "gelbphoenix/autocaliweb") if check_for_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb"; then msg_info "Stopping Services" @@ -43,6 +41,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_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb" "tarball" "latest" "/opt/autocaliweb" + setup_uv $INSTALL_DIR msg_info "Updating Autocaliweb" cd "$INSTALL_DIR" diff --git a/ct/baserow.sh b/ct/baserow.sh index c9e8c9493..4c99518a7 100644 --- a/ct/baserow.sh +++ b/ct/baserow.sh @@ -39,6 +39,7 @@ function update_script() { create_backup /opt/baserow/.env CLEAN_INSTALL=1 fetch_and_deploy_gh_release "baserow" "baserow/baserow" "tarball" + UV_PROJECT_DIR="/opt/baserow/backend" setup_uv restore_backup msg_info "Configuring Baserow" diff --git a/ct/beaverhabits.sh b/ct/beaverhabits.sh index b6124f7e8..a0d78c8e6 100644 --- a/ct/beaverhabits.sh +++ b/ct/beaverhabits.sh @@ -40,6 +40,7 @@ function update_script() { create_backup /opt/beaverhabits/.user CLEAN_INSTALL=1 fetch_and_deploy_gh_release "beaverhabits" "daya0576/beaverhabits" "tarball" + PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/beaverhabits" setup_uv msg_info "Syncing Dependencies" cd /opt/beaverhabits diff --git a/ct/byparr.sh b/ct/byparr.sh index a2db22a6e..f8ff609e0 100644 --- a/ct/byparr.sh +++ b/ct/byparr.sh @@ -37,6 +37,7 @@ function update_script() { msg_ok "Stopped Service" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Byparr" "ThePhaseless/Byparr" "tarball" "latest" + UV_PROJECT_DIR="/opt/Byparr" setup_uv if ! dpkg -l | grep -q ffmpeg; then msg_info "Installing dependencies" diff --git a/ct/dispatcharr.sh b/ct/dispatcharr.sh index 60a33a775..6bcd48aec 100644 --- a/ct/dispatcharr.sh +++ b/ct/dispatcharr.sh @@ -32,7 +32,6 @@ function update_script() { exit fi - setup_uv NODE_VERSION="24" setup_nodejs if [[ -f "/etc/nginx/sites-available/dispatcharr.conf" ]] && ! grep -q "real_forwarded_proto" "/etc/nginx/sites-available/dispatcharr.conf"; then msg_info "Migrating Nginx Configuration" @@ -146,6 +145,7 @@ EOF msg_ok "Backup created: $BACKUP_FILE" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dispatcharr" "Dispatcharr/Dispatcharr" "tarball" + UV_PROJECT_DIR="/opt/dispatcharr" setup_uv restore_backup diff --git a/ct/fireshare.sh b/ct/fireshare.sh index d00fa06c2..86c45b6d6 100644 --- a/ct/fireshare.sh +++ b/ct/fireshare.sh @@ -39,6 +39,7 @@ function update_script() { create_backup /opt/fireshare/fireshare.env CLEAN_INSTALL=1 fetch_and_deploy_gh_release "fireshare" "ShaneIsrael/fireshare" "tarball" + UV_PROJECT_DIR="/opt/fireshare" setup_uv restore_backup rm -f /usr/local/bin/fireshare diff --git a/ct/flatnotes.sh b/ct/flatnotes.sh index e81574266..207139e96 100644 --- a/ct/flatnotes.sh +++ b/ct/flatnotes.sh @@ -38,10 +38,10 @@ function update_script() { create_backup /opt/flatnotes/.env /opt/flatnotes/data - PYTHON_VERSION="3.13" setup_uv NODE_VERSION="24" setup_nodejs CLEAN_INSTALL=1 fetch_and_deploy_gh_release "flatnotes" "dullage/flatnotes" "tarball" + PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/flatnotes" setup_uv restore_backup diff --git a/ct/journiv.sh b/ct/journiv.sh index 9f231b48d..43187fe6e 100644 --- a/ct/journiv.sh +++ b/ct/journiv.sh @@ -38,6 +38,7 @@ function update_script() { msg_ok "Stopped Services" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "journiv" "journiv/journiv-app" "tarball" + UV_PROJECT_DIR="/opt/journiv" setup_uv msg_info "Updating Python Environment" cd /opt/journiv diff --git a/ct/kitchenowl.sh b/ct/kitchenowl.sh index de15d46bb..584abbf21 100644 --- a/ct/kitchenowl.sh +++ b/ct/kitchenowl.sh @@ -42,6 +42,7 @@ function update_script() { CLEAN_INSTALL=1 fetch_and_deploy_gh_release "kitchenowl" "TomBursch/kitchenowl" "tarball" "latest" "/opt/kitchenowl" rm -rf /opt/kitchenowl/web CLEAN_INSTALL=1 fetch_and_deploy_gh_release "kitchenowl-web" "TomBursch/kitchenowl" "prebuild" "latest" "/opt/kitchenowl/web" "kitchenowl_Web.tar.gz" + PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/kitchenowl/backend" setup_uv restore_backup sed -i 's/default=True/default=False/' /opt/kitchenowl/backend/wsgi.py diff --git a/ct/linkding.sh b/ct/linkding.sh index e8508877b..9cdb60212 100644 --- a/ct/linkding.sh +++ b/ct/linkding.sh @@ -40,6 +40,7 @@ function update_script() { create_backup /opt/linkding/data /opt/linkding/.env CLEAN_INSTALL=1 fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding" "tarball" + UV_PROJECT_DIR="/opt/linkding" setup_uv restore_backup ln -sf /usr/lib/$(arch_resolve "x86_64-linux-gnu" "aarch64-linux-gnu")/mod_icu.so /opt/linkding/libicu.so diff --git a/ct/mealie.sh b/ct/mealie.sh index 7673cb26c..5c59fc036 100644 --- a/ct/mealie.sh +++ b/ct/mealie.sh @@ -32,7 +32,6 @@ function update_script() { exit fi if check_for_gh_release "mealie" "mealie-recipes/mealie"; then - PYTHON_VERSION="3.12" setup_uv msg_info "Stopping Service" systemctl stop mealie @@ -44,6 +43,7 @@ function update_script() { msg_ok "Backup completed" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mealie" "mealie-recipes/mealie" "tarball" + PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/mealie" setup_uv msg_info "Restoring Configuration" mv -f /opt/mealie.env /opt/mealie/mealie.env diff --git a/ct/mediamanager.sh b/ct/mediamanager.sh index f6ce15a4c..f903c10d6 100644 --- a/ct/mediamanager.sh +++ b/ct/mediamanager.sh @@ -31,14 +31,13 @@ function update_script() { exit fi - setup_uv - if check_for_gh_release "mediamanager" "maxdorninger/MediaManager"; then msg_info "Stopping Service" systemctl stop mediamanager msg_ok "Stopped Service" fetch_and_deploy_gh_release "MediaManager" "maxdorninger/MediaManager" "tarball" "latest" "/opt/mediamanager" + UV_PROJECT_DIR="/opt/mediamanager" setup_uv msg_info "Updating MediaManager" MM_DIR="/opt/mm" export CONFIG_DIR="${MM_DIR}/config" diff --git a/ct/metube.sh b/ct/metube.sh index bfa2d6e14..099d00212 100644 --- a/ct/metube.sh +++ b/ct/metube.sh @@ -53,6 +53,7 @@ function update_script() { create_backup /opt/metube/.env CLEAN_INSTALL=1 fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest" + UV_PROJECT_DIR="/opt/metube" setup_uv restore_backup diff --git a/ct/notediscovery.sh b/ct/notediscovery.sh index dd478d756..8658644d2 100644 --- a/ct/notediscovery.sh +++ b/ct/notediscovery.sh @@ -40,6 +40,7 @@ function update_script() { create_backup /opt/notediscovery/data /opt/notediscovery/config.yaml CLEAN_INSTALL=1 fetch_and_deploy_gh_release "notediscovery" "gamosoft/NoteDiscovery" "tarball" + UV_PROJECT_DIR="/opt/notediscovery" setup_uv msg_info "Syncing Dependencies" cd /opt/notediscovery diff --git a/ct/paperless-ngx.sh b/ct/paperless-ngx.sh index 1be02bfd5..bf59ecd1b 100644 --- a/ct/paperless-ngx.sh +++ b/ct/paperless-ngx.sh @@ -83,13 +83,13 @@ function update_script() { [[ -f /opt/paperless/paperless.conf ]] && cp /opt/paperless/paperless.conf "$BACKUP_DIR/" msg_ok "Backup completed to $BACKUP_DIR" - PYTHON_VERSION="3.13" setup_uv if ((BRIDGE_UPDATE)); then CLEAN_INSTALL=1 fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "v2.20.15" "/opt/paperless" "paperless*tar.xz" else CLEAN_INSTALL=1 fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz" fi CLEAN_INSTALL=1 fetch_and_deploy_gh_release "jbig2enc" "ie13/jbig2enc" "tarball" "latest" "/opt/jbig2enc" + PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/paperless" setup_uv . /etc/os-release if [ "$VERSION_CODENAME" = "bookworm" ]; then diff --git a/ct/romm.sh b/ct/romm.sh index 8e569e6d1..596964b23 100644 --- a/ct/romm.sh +++ b/ct/romm.sh @@ -51,6 +51,7 @@ function update_script() { /opt/romm/frontend/dist/assets/ruffle CLEAN_INSTALL=1 fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball" "latest" "/opt/romm" + PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/romm" setup_uv echo "__version__ = \"$(cat ~/.romm)\"" >/opt/romm/backend/__version__.py find /opt/romm/backend/alembic/versions -maxdepth 1 -type f -name '1.*.py' -delete 2>/dev/null || true diff --git a/ct/shelfmark.sh b/ct/shelfmark.sh index 5d5a1385f..af293bc95 100644 --- a/ct/shelfmark.sh +++ b/ct/shelfmark.sh @@ -33,7 +33,6 @@ function update_script() { fi NODE_VERSION="24" setup_nodejs - PYTHON_VERSION="3.14" setup_uv if check_for_gh_release "shelfmark" "calibrain/shelfmark"; then msg_info "Stopping Service(s)" @@ -68,6 +67,7 @@ function update_script() { $STD apt remove -y chromium-driver fi CLEAN_INSTALL=1 fetch_and_deploy_gh_release "shelfmark" "calibrain/shelfmark" "tarball" "latest" "/opt/shelfmark" + PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/shelfmark" setup_uv restore_backup RELEASE_VERSION=$(cat "$HOME/.shelfmark") diff --git a/ct/spoolman.sh b/ct/spoolman.sh index aa57885bf..d10ca7a7e 100644 --- a/ct/spoolman.sh +++ b/ct/spoolman.sh @@ -31,8 +31,6 @@ function update_script() { exit fi - PYTHON_VERSION="3.14" setup_uv - if check_for_gh_release "spoolman" "Donkie/Spoolman"; then msg_info "Stopping Service" systemctl stop spoolman @@ -41,6 +39,7 @@ function update_script() { create_backup /opt/spoolman/.env CLEAN_INSTALL=1 fetch_and_deploy_gh_release "spoolman" "Donkie/Spoolman" "prebuild" "latest" "/opt/spoolman" "spoolman.zip" + PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/spoolman" setup_uv restore_backup diff --git a/ct/wizarr.sh b/ct/wizarr.sh index 488353ff5..8411d456a 100644 --- a/ct/wizarr.sh +++ b/ct/wizarr.sh @@ -32,8 +32,6 @@ function update_script() { exit fi - setup_uv - if check_for_gh_release "wizarr" "wizarrrr/wizarr"; then msg_info "Stopping Service" systemctl stop wizarr @@ -46,6 +44,7 @@ function update_script() { msg_ok "Backup Created" fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr" "tarball" + UV_PROJECT_DIR="/opt/wizarr" setup_uv msg_info "Updating Wizarr" cd /opt/wizarr diff --git a/ct/yamtrack.sh b/ct/yamtrack.sh index 2c1e3d7d2..7168c5fc1 100644 --- a/ct/yamtrack.sh +++ b/ct/yamtrack.sh @@ -41,6 +41,7 @@ function update_script() { create_backup /opt/yamtrack/src/.env CLEAN_INSTALL=1 fetch_and_deploy_gh_release "yamtrack" "FuzzyGrim/Yamtrack" "tarball" + PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/yamtrack" setup_uv restore_backup diff --git a/ct/yubal.sh b/ct/yubal.sh index 941230cb2..9ca391e9c 100644 --- a/ct/yubal.sh +++ b/ct/yubal.sh @@ -40,6 +40,7 @@ function update_script() { msg_ok "Stopped Services" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "yubal" "guillevc/yubal" "tarball" "latest" "/opt/yubal" + PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/yubal" setup_uv msg_info "Building Frontend" cd /opt/yubal/web diff --git a/install/apache-airflow-install.sh b/install/apache-airflow-install.sh index 89ec4835c..0db70aa7d 100644 --- a/install/apache-airflow-install.sh +++ b/install/apache-airflow-install.sh @@ -22,7 +22,7 @@ $STD apt install -y \ python3-dev msg_ok "Installed Dependencies" -UV_PYTHON="3.12" setup_uv +PYTHON_VERSION="3.12" setup_uv PG_VERSION="16" setup_postgresql PG_DB_NAME="airflow" PG_DB_USER="airflow" setup_postgresql_db diff --git a/install/audiomuse-ai-install.sh b/install/audiomuse-ai-install.sh index ad1240a21..cdfaee765 100644 --- a/install/audiomuse-ai-install.sh +++ b/install/audiomuse-ai-install.sh @@ -25,7 +25,7 @@ msg_ok "Installed Dependencies" PG_VERSION="16" setup_postgresql PG_DB_NAME="audiomuse" PG_DB_USER="audiomuse" setup_postgresql_db -UV_PYTHON="3.12" setup_uv +PYTHON_VERSION="3.12" setup_uv setup_hwaccel fetch_and_deploy_gh_release "audiomuse-ai" "NeptuneHub/AudioMuse-AI" "tarball" diff --git a/install/authentik-install.sh b/install/authentik-install.sh index e9ff468c4..cfb86ee2a 100644 --- a/install/authentik-install.sh +++ b/install/authentik-install.sh @@ -53,7 +53,6 @@ msg_ok "Installed Dependencies" NODE_VERSION="26" NODE_MODULE=pnpm@12 setup_nodejs setup_yq RUST_PROFILE="minimal" RUST_TOOLCHAIN="stable" setup_rust -UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" setup_uv PG_VERSION="17" setup_postgresql PG_DB_NAME="authentik" PG_DB_USER="authentik" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db @@ -63,6 +62,7 @@ fetch_and_deploy_gh_release "xmlsec" "lsh123/xmlsec" "tarball" "${XMLSEC_VERSION fetch_and_deploy_gh_release "authentik" "goauthentik/authentik" "tarball" "${AUTHENTIK_VERSION}" "/opt/authentik" GO_VERSION="$(grep -m1 '^go ' /opt/authentik/go.mod | awk '{print $2}')" setup_go fetch_and_deploy_gh_release "geoipupdate" "maxmind/geoipupdate" "binary" +UV_PYTHON_INSTALL_DIR="/usr/local/bin" PYTHON_VERSION="3.14.7" UV_PROJECT_DIR="/opt/authentik" setup_uv msg_info "Setting up xmlsec" cd /opt/xmlsec diff --git a/install/autocaliweb-install.sh b/install/autocaliweb-install.sh index 8b5af83ef..9b950f7e5 100644 --- a/install/autocaliweb-install.sh +++ b/install/autocaliweb-install.sh @@ -54,9 +54,8 @@ $STD /opt/calibre/calibre_postinstall CALIBRE_VERSION=$(cat ~/.calibre) msg_ok "Installed Calibre" -setup_uv - fetch_and_deploy_codeberg_release "autocaliweb" "gelbphoenix/autocaliweb" "tarball" "latest" "/opt/autocaliweb" +setup_uv $INSTALL_DIR msg_info "Configuring Autocaliweb" INSTALL_DIR="/opt/autocaliweb" diff --git a/install/baserow-install.sh b/install/baserow-install.sh index bd2b61d5d..d5c342418 100644 --- a/install/baserow-install.sh +++ b/install/baserow-install.sh @@ -33,9 +33,9 @@ msg_ok "Installed Dependencies" PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql PG_DB_NAME="baserow" PG_DB_USER="baserow" setup_postgresql_db NODE_VERSION="24" setup_nodejs -setup_uv fetch_and_deploy_gh_release "baserow" "baserow/baserow" "tarball" +UV_PROJECT_DIR="/opt/baserow/backend" setup_uv msg_info "Installing Backend Dependencies" cd /opt/baserow/backend diff --git a/install/beaverhabits-install.sh b/install/beaverhabits-install.sh index f58f4003a..49ee4cf4f 100644 --- a/install/beaverhabits-install.sh +++ b/install/beaverhabits-install.sh @@ -13,9 +13,8 @@ setting_up_container network_check update_os -PYTHON_VERSION="3.14" setup_uv - fetch_and_deploy_gh_release "beaverhabits" "daya0576/beaverhabits" "tarball" +PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/beaverhabits" setup_uv msg_info "Installing Dependencies" cd /opt/beaverhabits diff --git a/install/borg-ui-install.sh b/install/borg-ui-install.sh index 13102b915..ce4b01ca5 100644 --- a/install/borg-ui-install.sh +++ b/install/borg-ui-install.sh @@ -32,7 +32,7 @@ $STD apt install -y \ sshpass msg_ok "Installed Dependencies" -UV_PYTHON="3.12" setup_uv +PYTHON_VERSION="3.12" setup_uv NODE_VERSION="22" setup_nodejs fetch_and_deploy_gh_release "borg-ui" "karanhudia/borg-ui" "tarball" diff --git a/install/byparr-install.sh b/install/byparr-install.sh index a45691815..4822e8edb 100644 --- a/install/byparr-install.sh +++ b/install/byparr-install.sh @@ -52,8 +52,8 @@ $STD apt -y install --no-install-recommends \ fonts-tlwg-loma-otf msg_ok "Installed Dependencies" -setup_uv fetch_and_deploy_gh_release "Byparr" "ThePhaseless/Byparr" "tarball" "latest" +UV_PROJECT_DIR="/opt/Byparr" setup_uv msg_info "Configuring Byparr" cd /opt/Byparr diff --git a/install/dispatcharr-install.sh b/install/dispatcharr-install.sh index 9c538785d..b213e11b6 100644 --- a/install/dispatcharr-install.sh +++ b/install/dispatcharr-install.sh @@ -34,12 +34,12 @@ $STD apt install -y \ libswscale-dev msg_ok "Installed Dependencies" -setup_uv NODE_VERSION="24" setup_nodejs PG_VERSION="16" setup_postgresql PG_DB_NAME="dispatcharr_db" PG_DB_USER="dispatcharr_usr" setup_postgresql_db fetch_and_deploy_gh_release "dispatcharr" "Dispatcharr/Dispatcharr" "tarball" fetch_and_deploy_gh_release "Comskip" "erikkaashoek/Comskip" "tarball" +UV_PROJECT_DIR="/opt/dispatcharr" setup_uv msg_info "Compiling Comskip" cd /opt/Comskip diff --git a/install/erpnext-install.sh b/install/erpnext-install.sh index bb313ce7a..7f9d74012 100644 --- a/install/erpnext-install.sh +++ b/install/erpnext-install.sh @@ -36,7 +36,7 @@ $STD apt install -y \ msg_ok "Installed Dependencies" NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs -UV_PYTHON="3.14" setup_uv +PYTHON_VERSION="3.14" setup_uv setup_mariadb msg_info "Configuring MariaDB for ERPNext" diff --git a/install/fireshare-install.sh b/install/fireshare-install.sh index 311ba230b..3fe5497de 100644 --- a/install/fireshare-install.sh +++ b/install/fireshare-install.sh @@ -44,6 +44,7 @@ NODE_VERSION=24 setup_nodejs PYTHON_VERSION=3.14 setup_uv fetch_and_deploy_gh_release "fireshare" "ShaneIsrael/fireshare" "tarball" +UV_PROJECT_DIR="/opt/fireshare" setup_uv msg_info "Compiling SVT-AV1 (Patience)" cd /tmp diff --git a/install/flatnotes-install.sh b/install/flatnotes-install.sh index 338a84cc9..9728d0db0 100644 --- a/install/flatnotes-install.sh +++ b/install/flatnotes-install.sh @@ -14,6 +14,7 @@ network_check update_os fetch_and_deploy_gh_release "flatnotes" "dullage/flatnotes" "tarball" +UV_PROJECT_DIR="/opt/flatnotes" setup_uv PYTHON_VERSION="3.13" setup_uv NODE_VERSION="24" setup_nodejs diff --git a/install/homelable-install.sh b/install/homelable-install.sh index 28e020f81..2356e5b7a 100644 --- a/install/homelable-install.sh +++ b/install/homelable-install.sh @@ -20,7 +20,7 @@ $STD apt install -y \ caddy msg_ok "Installed Dependencies" -UV_PYTHON="3.13" setup_uv +PYTHON_VERSION="3.13" setup_uv NODE_VERSION="20" setup_nodejs fetch_and_deploy_gh_release "homelable" "Pouzor/homelable" "tarball" "latest" "/opt/homelable" diff --git a/install/journiv-install.sh b/install/journiv-install.sh index 664a60930..0e76df4ec 100644 --- a/install/journiv-install.sh +++ b/install/journiv-install.sh @@ -30,9 +30,9 @@ msg_ok "Installed Dependencies" setup_ffmpeg PG_VERSION="17" setup_postgresql PG_DB_NAME="journiv" PG_DB_USER="journiv" setup_postgresql_db -UV_PYTHON="3.12" setup_uv fetch_and_deploy_gh_release "journiv" "journiv/journiv-app" "tarball" +PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/journiv" setup_uv msg_info "Setting up Python Environment" cd /opt/journiv diff --git a/install/kitchenowl-install.sh b/install/kitchenowl-install.sh index a5f4e4ca4..1b1c8f9d5 100644 --- a/install/kitchenowl-install.sh +++ b/install/kitchenowl-install.sh @@ -38,10 +38,10 @@ $STD apt install -y \ libicu-dev msg_ok "Installed Dependencies" -PYTHON_VERSION="3.14" setup_uv fetch_and_deploy_gh_release "kitchenowl" "TomBursch/kitchenowl" "tarball" "latest" "/opt/kitchenowl" rm -rf /opt/kitchenowl/web fetch_and_deploy_gh_release "kitchenowl-web" "TomBursch/kitchenowl" "prebuild" "latest" "/opt/kitchenowl/web" "kitchenowl_Web.tar.gz" +PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/kitchenowl/backend" setup_uv msg_info "Setting up KitchenOwl" cd /opt/kitchenowl/backend diff --git a/install/librechat-install.sh b/install/librechat-install.sh index 6263147c3..3be771e67 100644 --- a/install/librechat-install.sh +++ b/install/librechat-install.sh @@ -18,7 +18,7 @@ setup_meilisearch PG_VERSION="17" PG_MODULES="pgvector" setup_postgresql PG_DB_NAME="ragapi" PG_DB_USER="ragapi" PG_DB_EXTENSIONS="vector" setup_postgresql_db NODE_VERSION="24" setup_nodejs -UV_PYTHON="3.12" setup_uv +PYTHON_VERSION="3.12" setup_uv fetch_and_deploy_gh_tag "librechat" "danny-avila/LibreChat" fetch_and_deploy_gh_release "rag-api" "danny-avila/rag_api" "tarball" diff --git a/install/linkding-install.sh b/install/linkding-install.sh index 6ea8ea22e..0dc777fef 100644 --- a/install/linkding-install.sh +++ b/install/linkding-install.sh @@ -26,8 +26,8 @@ $STD apt install -y \ msg_ok "Installed Dependencies" NODE_VERSION="22" setup_nodejs -setup_uv fetch_and_deploy_gh_release "linkding" "sissbruecker/linkding" "tarball" +UV_PROJECT_DIR="/opt/linkding" setup_uv msg_info "Building Frontend" cd /opt/linkding diff --git a/install/matter-server-install.sh b/install/matter-server-install.sh index acedc4eb3..1d07c28e8 100644 --- a/install/matter-server-install.sh +++ b/install/matter-server-install.sh @@ -23,7 +23,7 @@ $STD apt install -y \ iproute2 msg_ok "Installed Dependencies" -UV_PYTHON="3.12" setup_uv +PYTHON_VERSION="3.12" setup_uv msg_info "Setting up Matter Server" mkdir -p /opt/matter-server/data/credentials diff --git a/install/mealie-install.sh b/install/mealie-install.sh index a81faa808..6aa57d452 100644 --- a/install/mealie-install.sh +++ b/install/mealie-install.sh @@ -27,9 +27,9 @@ $STD apt install -y \ iproute2 msg_ok "Installed Dependencies" -PYTHON_VERSION="3.12" setup_uv PG_VERSION="16" setup_postgresql fetch_and_deploy_gh_release "mealie" "mealie-recipes/mealie" "tarball" +PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/mealie" setup_uv PG_DB_NAME="mealie_db" PG_DB_USER="mealie_user" PG_DB_GRANT_SUPERUSER="true" setup_postgresql_db if [[ -f /opt/mealie/frontend/pnpm-lock.yaml ]]; then diff --git a/install/mediamanager-install.sh b/install/mediamanager-install.sh index 7240c649e..6f9326e3c 100644 --- a/install/mediamanager-install.sh +++ b/install/mediamanager-install.sh @@ -20,7 +20,6 @@ fi setup_yq NODE_VERSION="24" setup_nodejs -setup_uv PG_VERSION="17" setup_postgresql msg_info "Setting up PostgreSQL" @@ -39,6 +38,7 @@ EOF msg_ok "Set up PostgreSQL" fetch_and_deploy_gh_release "MediaManager" "maxdorninger/MediaManager" "tarball" "latest" "/opt/mediamanager" +UV_PROJECT_DIR="/opt/mediamanager" setup_uv msg_info "Configuring MediaManager" MM_DIR="/opt/mm" diff --git a/install/metube-install.sh b/install/metube-install.sh index ee4a6247b..d8ab4cf75 100644 --- a/install/metube-install.sh +++ b/install/metube-install.sh @@ -22,7 +22,6 @@ $STD apt install -y \ ffmpeg msg_ok "Installed Dependencies" -PYTHON_VERSION="3.13" setup_uv NODE_VERSION="24" NODE_MODULE="corepack,pnpm" setup_nodejs msg_info "Installing Deno" @@ -34,6 +33,7 @@ curl -fsSL https://deno.land/install.sh | $STD sh -s -- -y msg_ok "Installed Deno" fetch_and_deploy_gh_release "metube" "alexta69/metube" "tarball" "latest" +PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/metube" setup_uv msg_info "Installing MeTube" cd /opt/metube/ui diff --git a/install/notediscovery-install.sh b/install/notediscovery-install.sh index 26687f8c6..19e74b397 100644 --- a/install/notediscovery-install.sh +++ b/install/notediscovery-install.sh @@ -13,9 +13,8 @@ setting_up_container network_check update_os -setup_uv - fetch_and_deploy_gh_release "notediscovery" "gamosoft/NoteDiscovery" "tarball" +UV_PROJECT_DIR="/opt/notediscovery" setup_uv msg_info "Installing Dependencies" cd /opt/notediscovery diff --git a/install/paperless-ngx-install.sh b/install/paperless-ngx-install.sh index 8348e5ebe..d8a1cc9c5 100644 --- a/install/paperless-ngx-install.sh +++ b/install/paperless-ngx-install.sh @@ -45,8 +45,8 @@ msg_ok "Installed Dependencies" PG_VERSION="18" setup_postgresql PG_DB_NAME="paperlessdb" PG_DB_USER="paperless" setup_postgresql_db -PYTHON_VERSION="3.13" setup_uv fetch_and_deploy_gh_release "paperless" "paperless-ngx/paperless-ngx" "prebuild" "latest" "/opt/paperless" "paperless*tar.xz" +PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/paperless" setup_uv msg_info "Setup Paperless-ngx" cd /opt/paperless diff --git a/install/pyload-install.sh b/install/pyload-install.sh index 1715f5921..d9bc8affd 100644 --- a/install/pyload-install.sh +++ b/install/pyload-install.sh @@ -20,7 +20,7 @@ $STD apt install -y \ tesseract-ocr msg_ok "Installed Dependencies" -UV_PYTHON="3.13" setup_uv +PYTHON_VERSION="3.13" setup_uv msg_info "Setting up pyLoad" mkdir -p /opt/pyload_data/{userdir,downloads} diff --git a/install/romm-install.sh b/install/romm-install.sh index c28b60514..92b4e0759 100644 --- a/install/romm-install.sh +++ b/install/romm-install.sh @@ -76,7 +76,6 @@ function decodeBase64(r) { export default { decodeBase64 }; EOF msg_ok "Installed Angie with mod_zip and njs modules" -PYTHON_VERSION="3.13" setup_uv NODE_VERSION="24" setup_nodejs setup_mariadb MARIADB_DB_NAME="romm" MARIADB_DB_USER="romm" setup_mariadb_db @@ -161,6 +160,7 @@ else fi fetch_and_deploy_gh_release "romm" "rommapp/romm" "tarball" +PYTHON_VERSION="3.13" UV_PROJECT_DIR="/opt/romm" setup_uv echo "__version__ = \"$(cat ~/.romm)\"" >/opt/romm/backend/__version__.py msg_info "Creating environment file" diff --git a/install/securo-install.sh b/install/securo-install.sh index f24ae935b..e686616f2 100644 --- a/install/securo-install.sh +++ b/install/securo-install.sh @@ -24,7 +24,7 @@ msg_ok "Installed Dependencies" PG_VERSION="16" PG_MODULES="pgvector" setup_postgresql PG_DB_NAME="securo" PG_DB_USER="securo" PG_DB_EXTENSIONS="vector" setup_postgresql_db NODE_VERSION="22" setup_nodejs -UV_PYTHON="3.12" setup_uv +PYTHON_VERSION="3.12" setup_uv fetch_and_deploy_gh_release "securo" "securo-finance/securo" "tarball" diff --git a/install/shelfmark-install.sh b/install/shelfmark-install.sh index 308f97946..8c5cfbf59 100644 --- a/install/shelfmark-install.sh +++ b/install/shelfmark-install.sh @@ -121,9 +121,9 @@ else fi NODE_VERSION="24" setup_nodejs -PYTHON_VERSION="3.14" setup_uv fetch_and_deploy_gh_release "shelfmark" "calibrain/shelfmark" "tarball" "latest" "/opt/shelfmark" +PYTHON_VERSION="3.14" UV_PROJECT_DIR="/opt/shelfmark" setup_uv RELEASE_VERSION=$(cat "$HOME/.shelfmark") msg_info "Building Shelfmark frontend" diff --git a/install/soulsync-install.sh b/install/soulsync-install.sh index ab5f67d17..6e8433a8d 100644 --- a/install/soulsync-install.sh +++ b/install/soulsync-install.sh @@ -22,7 +22,7 @@ $STD apt install -y \ ffmpeg msg_ok "Installed Dependencies" -UV_PYTHON="3.11" setup_uv +PYTHON_VERSION="3.11" setup_uv NODE_VERSION="24" setup_nodejs fetch_and_deploy_gh_release "soulsync" "Nezreka/SoulSync" "tarball" diff --git a/install/spoolman-install.sh b/install/spoolman-install.sh index c99d8887b..3b5aff2c8 100644 --- a/install/spoolman-install.sh +++ b/install/spoolman-install.sh @@ -22,6 +22,7 @@ $STD apt install -y \ msg_ok "Installed Dependencies" fetch_and_deploy_gh_release "spoolman" "Donkie/Spoolman" "prebuild" "latest" "/opt/spoolman" "spoolman.zip" +UV_PROJECT_DIR="/opt/spoolman" setup_uv PYTHON_VERSION="3.14" setup_uv msg_info "Setting up Spoolman" diff --git a/install/suggestarr-install.sh b/install/suggestarr-install.sh index cd972196e..f4141e869 100644 --- a/install/suggestarr-install.sh +++ b/install/suggestarr-install.sh @@ -17,7 +17,7 @@ msg_info "Installing Dependencies" $STD apt install -y build-essential msg_ok "Installed Dependencies" -UV_PYTHON="3.12" setup_uv +PYTHON_VERSION="3.12" setup_uv NODE_VERSION="22" setup_nodejs fetch_and_deploy_gh_release "suggestarr" "giuseppe99barchetta/SuggestArr" "tarball" diff --git a/install/transmute-install.sh b/install/transmute-install.sh index 8546c0f0c..76db77b32 100644 --- a/install/transmute-install.sh +++ b/install/transmute-install.sh @@ -13,7 +13,7 @@ setting_up_container network_check update_os -UV_PYTHON="3.13" setup_uv +PYTHON_VERSION="3.13" setup_uv NODE_VERSION="25" setup_nodejs setup_ffmpeg setup_gs diff --git a/install/tubearchivist-install.sh b/install/tubearchivist-install.sh index dedafa7e8..9ce601318 100644 --- a/install/tubearchivist-install.sh +++ b/install/tubearchivist-install.sh @@ -34,7 +34,7 @@ $STD apt install -y \ pkg-config msg_ok "Installed Dependencies" -UV_PYTHON="3.13" setup_uv +PYTHON_VERSION="3.13" setup_uv NODE_VERSION="24" setup_nodejs fetch_and_deploy_gh_release "deno" "denoland/deno" "prebuild" "latest" "/usr/local/bin" "deno-$(arch_resolve "x86_64" "aarch64")-unknown-linux-gnu.zip" diff --git a/install/wizarr-install.sh b/install/wizarr-install.sh index ba6bca712..0b347a8de 100644 --- a/install/wizarr-install.sh +++ b/install/wizarr-install.sh @@ -17,10 +17,10 @@ msg_info "Installing Dependencies" $STD apt install -y sqlite3 msg_ok "Installed Dependencies" -setup_uv NODE_VERSION="22" setup_nodejs fetch_and_deploy_gh_release "wizarr" "wizarrrr/wizarr" "tarball" +UV_PROJECT_DIR="/opt/wizarr" setup_uv msg_info "Configure Wizarr" cd /opt/wizarr diff --git a/install/yamtrack-install.sh b/install/yamtrack-install.sh index 69b1db9e6..e449b84cf 100644 --- a/install/yamtrack-install.sh +++ b/install/yamtrack-install.sh @@ -21,9 +21,9 @@ msg_ok "Installed Dependencies" PG_VERSION="16" setup_postgresql PG_DB_NAME="yamtrack" PG_DB_USER="yamtrack" setup_postgresql_db -PYTHON_VERSION="3.12" setup_uv fetch_and_deploy_gh_release "yamtrack" "FuzzyGrim/Yamtrack" "tarball" +PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/yamtrack" setup_uv msg_info "Installing Python Dependencies" cd /opt/yamtrack diff --git a/install/yubal-install.sh b/install/yubal-install.sh index fa086a363..f58eac071 100644 --- a/install/yubal-install.sh +++ b/install/yubal-install.sh @@ -30,8 +30,6 @@ ln -sf /opt/bun/bin/bun /usr/local/bin/bun ln -sf /opt/bun/bin/bunx /usr/local/bin/bunx msg_ok "Installed Bun" -UV_VERSION="0.7.19" PYTHON_VERSION="3.12" setup_uv - msg_info "Installing Deno" $STD sh -c "curl -fsSL https://deno.land/install.sh | DENO_INSTALL=/usr/local sh -s -- -y" msg_ok "Installed Deno" @@ -43,6 +41,7 @@ mkdir -p /opt/yubal \ msg_ok "Created directories" fetch_and_deploy_gh_release "yubal" "guillevc/yubal" "tarball" "latest" "/opt/yubal" +PYTHON_VERSION="3.12" UV_PROJECT_DIR="/opt/yubal" setup_uv msg_info "Building Frontend" cd /opt/yubal/web