Refactor/core qol adoption (#17655)

* Scripts: close every msg_info block with msg_ok

Past-tense msg_info calls that should have been msg_ok, notices that opened a block before a prompt, and blocks without a closing msg_ok. These already left a stale spinner; with core's block stack they would resume it after every later msg_ok.

* Generate passwords with random_password

openssl rand -base64 | tr -dc | head -c returned fewer characters than asked for, and the unfiltered | cut variants put / and + into passwords that end up in DSNs and sed expressions. Secrets an app decodes as base64 are unchanged. Requires community-scripts/core#61.

* Keep data directories through CLEAN_INSTALL instead of copying them

create_backup copied uploads, storage and similar directories twice per update and needed their size again in free space. CLEAN_INSTALL_KEEP moves them aside instead. Only directories the upstream release does not ship, in scripts that restored right after the fetch. Requires community-scripts/core#61.

* Drop the 300s uv timeout overrides

setup_uv exports UV_HTTP_TIMEOUT=600 now; the scripts' 300 only lowered it. Requires community-scripts/core#61.
This commit is contained in:
CanbiZ (MickLesk)
2026-10-03 08:19:10 +02:00
committed by GitHub
parent 45599d63ec
commit 7f57d0998c
169 changed files with 224 additions and 275 deletions
+2 -2
View File
@@ -36,9 +36,9 @@ function update_script() {
systemctl stop airtrail
msg_ok "Stopped Service"
create_backup /opt/airtrail/.env /opt/airtrail/uploads
create_backup /opt/airtrail/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "airtrail" "johanohly/AirTrail" "tarball" "latest" "/opt/airtrail"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="uploads" fetch_and_deploy_gh_release "airtrail" "johanohly/AirTrail" "tarball" "latest" "/opt/airtrail"
restore_backup
+1 -3
View File
@@ -48,9 +48,7 @@ function update_script() {
exit
fi
msg_info "Setting up SSH Public Key for backup user"
msg_info "Please paste your SSH public key (e.g., ssh-rsa AAAAB3... user@host): \n"
echo -e "${INFO}${YW}Please paste your SSH public key (e.g., ssh-rsa AAAAB3... user@host):${CL}"
read -p "Key: " SSH_PUBLIC_KEY
echo
+2 -2
View File
@@ -31,7 +31,7 @@ function update_script() {
msg_warn "⚠️ ${APP} has been migrated to an addon script."
echo ""
msg_info "This is a one-time migration. After this, you can update ${APP} anytime with:"
echo -e "${INFO}${YW}This is a one-time migration. After this, you can update ${APP} anytime with:${CL}"
echo -e "${TAB}${TAB}${GN}update_komodo${CL} or ${GN}bash <(curl -fsSL ${ADDON_SCRIPT})${CL}"
echo ""
read -r -p "${TAB}Migrate update function now? [y/N]: " CONFIRM
@@ -62,7 +62,7 @@ MIGRATION_EOF
ln -sf /usr/bin/update /usr/bin/update_komodo 2>/dev/null || true
msg_ok "Migration complete"
msg_info "Running addon update"
echo -e "${INFO}${YW}Running addon update${CL}"
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
exit
}
-1
View File
@@ -136,7 +136,6 @@ function update_script() {
export UV_COMPILE_BYTECODE="1"
export UV_LINK_MODE="copy"
export UV_NATIVE_TLS="1"
export UV_HTTP_TIMEOUT="300"
export RUSTUP_PERMIT_COPY_RENAME="true"
export UV_PYTHON_INSTALL_DIR="/usr/local/bin"
cd /opt/authentik
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
if check_for_gh_release "beszel" "henrygd/beszel"; then
msg_info "Stopping Service"
systemctl stop beszel-hub
msg_info "Stopped Service"
msg_ok "Stopped Service"
msg_info "Updating Beszel"
$STD /opt/beszel/beszel update
+2 -4
View File
@@ -38,11 +38,9 @@ function update_script() {
systemctl stop nginx "$PHP_FPM_SERVICE"
msg_ok "Stopped Services"
create_backup /opt/chevereto/app/env.php \
/opt/chevereto/images \
/opt/chevereto/content
create_backup /opt/chevereto/app/env.php /opt/chevereto/content
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "chevereto" "chevereto/chevereto" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="images" fetch_and_deploy_gh_release "chevereto" "chevereto/chevereto" "tarball"
restore_backup
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
if check_for_gh_release "cloudreve" "cloudreve/cloudreve"; then
msg_info "Stopping Service"
systemctl stop cloudreve
msg_info "Stopped Service"
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "cloudreve" "cloudreve/cloudreve" "prebuild" "latest" "/opt/cloudreve" "*linux_$(arch_resolve).tar.gz"
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
if check_for_gh_release "ConvertX" "C4illin/ConvertX"; then
msg_info "Stopping Service"
systemctl stop convertx
msg_info "Stopped Service"
msg_ok "Stopped Service"
ensure_dependencies libreoffice-writer dasel graphicsmagick libemail-outlook-message-perl libheif-examples libjxl-tools resvg
+2 -2
View File
@@ -35,7 +35,7 @@ function update_script() {
msg_warn "⚠️ ${APP} has been migrated to an addon script."
echo ""
msg_info "This is a one-time migration. After this, you can update ${APP} anytime with:"
echo -e "${INFO}${YW}This is a one-time migration. After this, you can update ${APP} anytime with:${CL}"
echo -e "${TAB}${TAB}${GN}update_coolify${CL} or ${GN}bash <(curl -fsSL ${ADDON_SCRIPT})${CL}"
echo ""
read -r -p "${TAB}Migrate update function now? [y/N]: " CONFIRM
@@ -58,7 +58,7 @@ MIGRATION_EOF
ln -sf /usr/bin/update /usr/bin/update_coolify 2>/dev/null || true
msg_ok "Migration complete"
msg_info "Running addon update"
echo -e "${INFO}${YW}Running addon update${CL}"
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
exit
}
+3 -10
View File
@@ -33,18 +33,11 @@ function update_script() {
if check_for_gh_release "cryptpad" "cryptpad/cryptpad"; then
msg_info "Stopping Service"
systemctl stop cryptpad
msg_info "Stopped Service"
msg_ok "Stopped Service"
create_backup /opt/cryptpad/config/config.js \
/opt/cryptpad/blob \
/opt/cryptpad/block \
/opt/cryptpad/customize \
/opt/cryptpad/data \
/opt/cryptpad/datastore \
/opt/cryptpad/www/common/onlyoffice/dist \
/opt/cryptpad/onlyoffice-conf
create_backup /opt/cryptpad/config/config.js /opt/cryptpad/www/common/onlyoffice/dist
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="blob block customize data datastore onlyoffice-conf" fetch_and_deploy_gh_release "cryptpad" "cryptpad/cryptpad" "tarball"
restore_backup
+1 -2
View File
@@ -137,7 +137,6 @@ EOF
set +o allexport
if [[ -n "$POSTGRES_DB" ]] && [[ -n "$POSTGRES_USER" ]] && [[ -n "$POSTGRES_PASSWORD" ]]; then
PGPASSWORD=$POSTGRES_PASSWORD pg_dump -U "$POSTGRES_USER" -h "${POSTGRES_HOST:-localhost}" -p "${POSTGRES_PORT:-5432}" "$POSTGRES_DB" >/tmp/dispatcharr_db_$(date +%F).sql
msg_info "Database backup created"
fi
fi
$STD tar -czf "$BACKUP_FILE" -C /opt dispatcharr /tmp/dispatcharr_db_*.sql
@@ -150,7 +149,7 @@ EOF
msg_info "Updating Dispatcharr Backend"
if ! grep -q "DJANGO_SECRET_KEY" /opt/dispatcharr/.env; then
DJANGO_SECRET=$(openssl rand -base64 48 | tr -dc 'a-zA-Z0-9' | cut -c1-50)
DJANGO_SECRET=$(random_password 50)
echo "DJANGO_SECRET_KEY=$DJANGO_SECRET" >>/opt/dispatcharr/.env
fi
+2 -2
View File
@@ -35,7 +35,7 @@ function update_script() {
msg_warn "⚠️ ${APP} has been migrated to an addon script."
echo ""
msg_info "This is a one-time migration. After this, you can update ${APP} anytime with:"
echo -e "${INFO}${YW}This is a one-time migration. After this, you can update ${APP} anytime with:${CL}"
echo -e "${TAB}${TAB}${GN}update_dockge${CL} or ${GN}bash <(curl -fsSL ${ADDON_SCRIPT})${CL}"
echo ""
read -r -p "${TAB}Migrate update function now? [y/N]: " CONFIRM
@@ -60,7 +60,7 @@ MIGRATION_EOF
ln -sf /usr/bin/update /usr/bin/update_dockge 2>/dev/null || true
msg_ok "Migration complete"
msg_info "Running addon update"
echo -e "${INFO}${YW}Running addon update${CL}"
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
exit
}
+2 -2
View File
@@ -38,9 +38,9 @@ function update_script() {
systemctl stop docmost
msg_ok "Stopped Service"
create_backup /opt/docmost/.env /opt/docmost/data
create_backup /opt/docmost/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "docmost" "docmost/docmost" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="data" fetch_and_deploy_gh_release "docmost" "docmost/docmost" "tarball"
restore_backup
+2 -2
View File
@@ -35,7 +35,7 @@ function update_script() {
msg_warn "⚠️ ${APP} has been migrated to an addon script."
echo ""
msg_info "This is a one-time migration. After this, you can update ${APP} anytime with:"
echo -e "${INFO}${YW}This is a one-time migration. After this, you can update ${APP} anytime with:${CL}"
echo -e "${TAB}${TAB}${GN}update_dokploy${CL} or ${GN}bash <(curl -fsSL ${ADDON_SCRIPT})${CL}"
echo ""
read -r -p "${TAB}Migrate update function now? [y/N]: " CONFIRM
@@ -58,7 +58,7 @@ MIGRATION_EOF
ln -sf /usr/bin/update /usr/bin/update_dokploy 2>/dev/null || true
msg_ok "Migration complete"
msg_info "Running addon update"
echo -e "${INFO}${YW}Running addon update${CL}"
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
exit
}
+2 -2
View File
@@ -35,7 +35,7 @@ function update_script() {
if check_for_gh_release "domain-locker" "Lissy93/domain-locker"; then
msg_info "Stopping Service"
systemctl stop domain-locker
msg_info "Service stopped"
msg_ok "Stopped Service"
PG_VERSION="17" setup_postgresql
NODE_VERSION="22" setup_nodejs
@@ -51,7 +51,7 @@ function update_script() {
source /opt/domain-locker.env
set +a
$STD npm run build
msg_info "Built Domain-Locker"
msg_ok "Built Domain-Locker"
msg_info "Restarting Services"
systemctl start domain-locker
+1 -1
View File
@@ -42,7 +42,7 @@ function update_script() {
if check_for_gh_release "domain-monitor" "Hosteroid/domain-monitor"; then
msg_info "Stopping Service"
systemctl stop apache2
msg_info "Service stopped"
msg_ok "Stopped Service"
create_backup /opt/domain-monitor/.env
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
if check_for_gh_release "duplicati" "duplicati/duplicati"; then
msg_info "Stopping Service"
systemctl stop duplicati
msg_info "Stopped Service"
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "duplicati" "duplicati/duplicati" "binary" "latest" "/opt/duplicati" "duplicati-*-linux-$(arch_resolve "x64" "arm64")-gui.deb"
+1 -1
View File
@@ -36,7 +36,7 @@ function update_script() {
if check_for_gh_release "excalidraw" "excalidraw/excalidraw"; then
msg_info "Stopping Service"
systemctl stop excalidraw
msg_info "Stopped Service"
msg_ok "Stopped Service"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "excalidraw" "excalidraw/excalidraw" "tarball"
+2 -3
View File
@@ -36,9 +36,8 @@ function update_script() {
systemctl stop flame
msg_ok "Stopped Service"
create_backup /opt/flame/.env \
/opt/flame/data
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "flame" "pawelmalak/flame" "tarball"
create_backup /opt/flame/.env
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="data" fetch_and_deploy_gh_release "flame" "pawelmalak/flame" "tarball"
restore_backup
msg_info "Rebuilding Application"
+1 -1
View File
@@ -37,7 +37,7 @@ function update_script() {
if check_for_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar"; then
msg_info "Stopping Service"
systemctl stop fluid-calendar
msg_info "Stopped Service"
msg_ok "Stopped Service"
create_backup /opt/fluid-calendar/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "fluid-calendar" "dotnetfactory/fluid-calendar" "tarball"
+2 -2
View File
@@ -50,10 +50,10 @@ function update_script() {
echo ""
read -r -p "Final confirmation - proceed? (y/N): " CONFIRM2
if [[ ! "$CONFIRM2" =~ ^[Yy]$ ]]; then
msg_info "Update cancelled. Please backup your configuration before proceeding."
msg_warn "Update cancelled. Please backup your configuration before proceeding."
exit 0
fi
msg_info "Proceeding with version $APP_VERSION update. All configuration will be cleared as warned."
msg_warn "Proceeding with version $APP_VERSION update. All configuration will be cleared as warned."
rm -rf /opt/gitea-mirror
fi
+1 -1
View File
@@ -34,7 +34,7 @@ function update_script() {
msg_info "Stopping Service"
systemctl stop graylog-datanode
systemctl stop graylog-server
msg_info "Stopped Service"
msg_ok "Stopped Service"
CURRENT_VERSION=$(apt list --installed 2>/dev/null | grep graylog-server | grep -oP '\d+\.\d+\.\d+')
+2 -2
View File
@@ -38,9 +38,9 @@ function update_script() {
systemctl stop grist
msg_ok "Stopped Service"
create_backup /opt/grist/.env /opt/grist/docs /opt/grist/grist-sessions.db /opt/grist/landing.db
create_backup /opt/grist/.env /opt/grist/grist-sessions.db /opt/grist/landing.db
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "grist" "gristlabs/grist-core" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="docs" fetch_and_deploy_gh_release "grist" "gristlabs/grist-core" "tarball"
restore_backup
+1 -1
View File
@@ -50,7 +50,7 @@ function update_script() {
[ -d /opt/.data ] && mv /opt/.data /opt/homebox/.data
if ! grep -q "HBOX_AUTH_API_KEY_PEPPER" /opt/homebox/.env; then
AUTH_KEY=$(openssl rand -base64 32 | tr -dc 'a-zA-Z0-9' | cut -c1-32)
AUTH_KEY=$(random_password 32)
echo "HBOX_AUTH_API_KEY_PEPPER=${AUTH_KEY}" >>/opt/homebox/.env
fi
+2 -2
View File
@@ -36,9 +36,9 @@ function update_script() {
systemctl stop homelable
msg_ok "Stopped Service"
create_backup /opt/homelable/backend/.env /opt/homelable/data /opt/homelable/mcp/.env
create_backup /opt/homelable/backend/.env /opt/homelable/mcp/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "homelable" "Pouzor/homelable" "tarball" "latest" "/opt/homelable"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="data" fetch_and_deploy_gh_release "homelable" "Pouzor/homelable" "tarball" "latest" "/opt/homelable"
restore_backup
+2 -2
View File
@@ -38,10 +38,10 @@ function update_script() {
systemctl stop homepage
msg_ok "Stopped service"
create_backup /opt/homepage/.env /opt/homepage/config
create_backup /opt/homepage/.env
BACKUP_DIR=/opt/homepage-assets.backup create_backup /opt/homepage/public/images /opt/homepage/public/icons
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "homepage" "gethomepage/homepage" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="config" fetch_and_deploy_gh_release "homepage" "gethomepage/homepage" "tarball"
restore_backup
+2 -7
View File
@@ -55,18 +55,13 @@ function update_script() {
printf '["%s"]\n' "$(<~/.hortusfox)" >app/migrations/verhist.json
fi
create_backup \
/opt/hortusfox/.env \
create_backup /opt/hortusfox/.env \
/opt/hortusfox/app/migrations/migrations.list \
/opt/hortusfox/app/migrations/verhist.json \
/opt/hortusfox/public/img \
/opt/hortusfox/public/attachments \
/opt/hortusfox/public/backup \
/opt/hortusfox/public/exports \
/opt/hortusfox/public/snd \
/opt/hortusfox/public/themes
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "hortusfox" "danielbrendel/hortusfox-web" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="public/attachments public/backup public/exports public/snd" fetch_and_deploy_gh_release "hortusfox" "danielbrendel/hortusfox-web" "tarball"
restore_backup
msg_info "Updating HortusFox"
-1
View File
@@ -262,7 +262,6 @@ EOF
chown immich:immich "${UPLOAD_DIR:-$INSTALL_DIR/upload}" 2>/dev/null || true
chown immich:immich ./uv.lock
export VIRTUAL_ENV="${ML_DIR}"/ml-venv
export UV_HTTP_TIMEOUT=300
if [[ -f ~/.openvino ]]; then
ML_PYTHON="python3.13"
msg_info "Pre-installing Python ${ML_PYTHON} for machine-learning"
+2 -2
View File
@@ -42,9 +42,9 @@ function update_script() {
NODE_VERSION="22" setup_nodejs
PG_VERSION="17" setup_postgresql
create_backup /opt/investbrain/.env /opt/investbrain/storage
create_backup /opt/investbrain/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Investbrain" "investbrainapp/investbrain" "tarball" "latest" "/opt/investbrain"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="storage" fetch_and_deploy_gh_release "Investbrain" "investbrainapp/investbrain" "tarball" "latest" "/opt/investbrain"
restore_backup
+2 -2
View File
@@ -36,9 +36,9 @@ function update_script() {
systemctl stop caddy
msg_ok "Stopped Services"
create_backup /opt/invoiceshelf/.env /opt/invoiceshelf/storage
create_backup /opt/invoiceshelf/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "invoiceshelf" "InvoiceShelf/InvoiceShelf" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="storage" fetch_and_deploy_gh_release "invoiceshelf" "InvoiceShelf/InvoiceShelf" "tarball"
restore_backup
+1 -1
View File
@@ -52,7 +52,7 @@ function update_script() {
msg_error "Unable to detect latest Kasm release URL."
exit 250
fi
msg_info "Checked for new version"
msg_ok "Checked for new version"
msg_info "Removing outdated docker-compose plugin"
[ -f ~/.docker/cli-plugins/docker-compose ] && rm -rf ~/.docker/cli-plugins/docker-compose
+1 -1
View File
@@ -66,7 +66,7 @@ MIGRATION_EOF
ln -sf /usr/bin/update /usr/bin/update_komodo 2>/dev/null || true
msg_ok "Migration complete"
msg_info "Running addon update"
echo -e "${INFO}${YW}Running addon update${CL}"
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
exit
}
+2 -2
View File
@@ -37,8 +37,8 @@ function update_script() {
systemctl stop php8.4-fpm librenms-scheduler.timer
msg_ok "Stopped Services"
create_backup /opt/librenms/.env /opt/librenms/config.php /opt/librenms/rrd
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "librenms" "librenms/librenms" "tarball"
create_backup /opt/librenms/.env /opt/librenms/config.php
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="rrd" fetch_and_deploy_gh_release "librenms" "librenms/librenms" "tarball"
restore_backup
msg_info "Updating LibreNMS"
+2 -2
View File
@@ -36,9 +36,9 @@ function update_script() {
RUST_CRATES="monolith" setup_rust
create_backup /opt/linkwarden/.env /opt/linkwarden/data
create_backup /opt/linkwarden/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="data" fetch_and_deploy_gh_release "linkwarden" "linkwarden/linkwarden" "tarball"
restore_backup
+3 -2
View File
@@ -34,7 +34,7 @@ function update_script() {
if check_for_gh_release "livebook" "livebook-dev/livebook"; then
msg_info "Stopping Service"
systemctl stop livebook
msg_info "Stopped Service"
msg_ok "Stopped Service"
msg_info "Updating Container"
apt_update_safe
@@ -47,10 +47,11 @@ function update_script() {
$STD mix escript.install hex livebook --force
chown -R livebook:livebook /opt/livebook /data
msg_ok "Updated Livebook"
msg_info "Starting Service"
systemctl start livebook
msg_info "Started Service"
msg_ok "Started Service"
msg_ok "Updated successfully!"
fi
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
if check_for_gh_release "metabase" "metabase/metabase"; then
msg_info "Stopping Service"
systemctl stop metabase
msg_info "Stopped Service"
msg_ok "Stopped Service"
msg_info "Creating backup"
mv /opt/metabase/.env /opt
+2 -2
View File
@@ -36,9 +36,9 @@ function update_script() {
systemctl stop nametag
msg_ok "Stopped Service"
create_backup /opt/nametag/.env /opt/nametag/data
create_backup /opt/nametag/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "nametag" "mattogodoy/nametag" "tarball" "latest" "/opt/nametag"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="data" fetch_and_deploy_gh_release "nametag" "mattogodoy/nametag" "tarball" "latest" "/opt/nametag"
restore_backup
-2
View File
@@ -49,7 +49,6 @@ function update_script() {
msg_info "Installing uv-based Open-WebUI"
PYTHON_VERSION="3.12" setup_uv
export UV_HTTP_TIMEOUT=300
for attempt in $(seq 1 3); do
$STD uv tool install --python 3.12 --constraint <(echo "numba>=0.60") open-webui[all] && break
[[ $attempt -lt 3 ]] && msg_warn "Open WebUI install attempt $attempt failed, retrying..." && sleep 10
@@ -126,7 +125,6 @@ EOF
OTEL_ARGS+=(--with "$pkg")
done < <(uv pip list --python "$OWUI_PYTHON" --format freeze 2>/dev/null | grep -i '^opentelemetry-' | cut -d= -f1)
fi
export UV_HTTP_TIMEOUT=300
for attempt in $(seq 1 3); do
$STD uv tool install --force --python 3.12 --constraint <(echo "numba>=0.60") "${OTEL_ARGS[@]}" open-webui[all] && break
[[ $attempt -lt 3 ]] && msg_warn "Open WebUI update attempt $attempt failed, retrying..." && sleep 10
+1 -5
View File
@@ -36,11 +36,7 @@ function update_script() {
systemctl stop ownfoil
msg_ok "Stopped Service"
create_backup /opt/ownfoil/app/config
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ownfoil" "a1ex4/ownfoil" "tarball" "${RELEASE}"
restore_backup
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="app/config" fetch_and_deploy_gh_release "ownfoil" "a1ex4/ownfoil" "tarball" "${RELEASE}"
msg_info "Installing Dependencies"
cd /opt/ownfoil
+1 -1
View File
@@ -52,7 +52,7 @@ function update_script() {
msg_info "Stopping Service"
systemctl stop pangolin
systemctl stop gerbil
msg_info "Service stopped"
msg_ok "Stopped Service"
DB_URL=$(sed -n 's/.*connection_string: "\(.*\)".*/\1/p' /opt/pangolin/config/config.yml)
create_backup /opt/pangolin/config
+2 -2
View File
@@ -36,9 +36,9 @@ function update_script() {
systemctl stop passwordpusher
msg_ok "Stopped Service"
create_backup /opt/passwordpusher/storage /opt/passwordpusher/.env.production
create_backup /opt/passwordpusher/.env.production
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "passwordpusher" "pglombardo/PasswordPusher" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="storage" fetch_and_deploy_gh_release "passwordpusher" "pglombardo/PasswordPusher" "tarball"
restore_backup
+1 -1
View File
@@ -35,7 +35,7 @@ function update_script() {
if check_for_gh_release "PeaNUT" "Brandawg93/PeaNUT"; then
msg_info "Stopping Service"
systemctl stop peanut
msg_info "Stopped Service"
msg_ok "Stopped Service"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "PeaNUT" "Brandawg93/PeaNUT" "tarball" "latest" "/opt/peanut"
+1 -1
View File
@@ -34,7 +34,7 @@ function update_script() {
if check_for_gh_release "plant-it" "MDeLuise/plant-it" "${RELEASE}" "last version that includes the web frontend"; then
msg_info "Stopping Service"
systemctl stop plant-it
msg_info "Stopped Service"
msg_ok "Stopped Service"
USE_ORIGINAL_FILENAME="true" fetch_and_deploy_gh_release "plant-it" "MDeLuise/plant-it" "singlefile" "${RELEASE}" "/opt/plant-it/backend" "server.jar"
fetch_and_deploy_gh_release "plant-it-front" "MDeLuise/plant-it" "prebuild" "${RELEASE}" "/opt/plant-it/frontend" "client.tar.gz"
+2 -3
View File
@@ -37,10 +37,9 @@ function update_script() {
systemctl stop postiz-orchestrator postiz-frontend postiz-backend
msg_ok "Stopped Services"
create_backup /opt/postiz/.env \
/opt/postiz/uploads
create_backup /opt/postiz/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "postiz" "gitroomhq/postiz-app" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="uploads" fetch_and_deploy_gh_release "postiz" "gitroomhq/postiz-app" "tarball"
restore_backup
+1 -5
View File
@@ -35,12 +35,8 @@ function update_script() {
systemctl stop radicale
msg_ok "Stopped service"
create_backup /opt/radicale/users
PYTHON_VERSION="3.13" setup_uv
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Radicale" "Kozea/Radicale" "tarball" "latest" "/opt/radicale"
restore_backup
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="users" fetch_and_deploy_gh_release "Radicale" "Kozea/Radicale" "tarball" "latest" "/opt/radicale"
if grep -q 'start.sh' /etc/systemd/system/radicale.service; then
sed -i -e '/^Description/i[Unit]' \
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
if check_for_gh_release "revealjs" "hakimel/reveal.js"; then
msg_info "Stopping Service"
systemctl stop revealjs
msg_info "Stopped Service"
msg_ok "Stopped Service"
cp /opt/revealjs/index.html /opt
fetch_and_deploy_gh_release "revealjs" "hakimel/reveal.js" "tarball"
+2 -2
View File
@@ -35,7 +35,7 @@ function update_script() {
msg_warn "⚠️ ${APP} has been migrated to an addon script."
echo ""
msg_info "This is a one-time migration. After this, you can update ${APP} anytime with:"
echo -e "${INFO}${YW}This is a one-time migration. After this, you can update ${APP} anytime with:${CL}"
echo -e "${TAB}${TAB}${GN}update_runtipi${CL} or ${GN}bash <(curl -fsSL ${ADDON_SCRIPT})${CL}"
echo ""
read -r -p "${TAB}Migrate update function now? [y/N]: " CONFIRM
@@ -58,7 +58,7 @@ MIGRATION_EOF
ln -sf /usr/bin/update /usr/bin/update_runtipi 2>/dev/null || true
msg_ok "Migration complete"
msg_info "Running addon update"
echo -e "${INFO}${YW}Running addon update${CL}"
type=update bash <(curl -fsSL "${ADDON_SCRIPT}")
exit
}
+1 -1
View File
@@ -45,7 +45,7 @@ update_deb_based() {
if [[ -f /lib/systemd/system/rustdesk-api.service ]]; then
systemctl stop rustdesk-api
fi
msg_info "Stopped Service"
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "rustdesk-hbbr" "lejianwen/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-hbbr*$(arch_resolve).deb"
fetch_and_deploy_gh_release "rustdesk-hbbs" "lejianwen/rustdesk-server" "binary" "latest" "/opt/rustdesk" "rustdesk-server-hbbs*$(arch_resolve).deb"
+1 -1
View File
@@ -33,7 +33,7 @@ function update_script() {
if check_for_gh_release "seelf" "YuukanOO/seelf"; then
msg_info "Stopping Service"
systemctl stop seelf
msg_info "Stopped Service"
msg_ok "Stopped Service"
msg_info "Updating seelf"
cd /opt/seelf
+2 -2
View File
@@ -36,9 +36,9 @@ function update_script() {
systemctl stop caddy
msg_ok "Stopped Services"
create_backup /opt/solidtime/.env /opt/solidtime/storage
create_backup /opt/solidtime/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "solidtime" "solidtime-io/solidtime" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="storage" fetch_and_deploy_gh_release "solidtime" "solidtime-io/solidtime" "tarball"
restore_backup
+2 -2
View File
@@ -38,9 +38,9 @@ function update_script() {
systemctl stop soulsync
msg_ok "Stopped Service"
create_backup /opt/soulsync/config /opt/soulsync/data
create_backup /opt/soulsync/config
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "soulsync" "Nezreka/SoulSync" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="data" fetch_and_deploy_gh_release "soulsync" "Nezreka/SoulSync" "tarball"
restore_backup
+1 -5
View File
@@ -37,11 +37,7 @@ function update_script() {
systemctl stop sparkyfitness-server nginx
msg_ok "Stopped Services"
create_backup /opt/sparkyfitness/SparkyFitnessServer/uploads /opt/sparkyfitness/SparkyFitnessServer/backup
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "sparkyfitness" "CodeWithCJ/SparkyFitness" "tarball"
restore_backup
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="SparkyFitnessServer/uploads SparkyFitnessServer/backup" fetch_and_deploy_gh_release "sparkyfitness" "CodeWithCJ/SparkyFitness" "tarball"
PNPM_VERSION="$(jq -r '.packageManager | split("@")[1]' /opt/sparkyfitness/package.json)"
NODE_VERSION="25" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs
+1 -1
View File
@@ -34,7 +34,7 @@ function update_script() {
if check_for_gh_release "streamlink-webui" "CrazyWolf13/streamlink-webui"; then
msg_info "Stopping Service"
systemctl stop streamlink-webui
msg_info "Stopped Service"
msg_ok "Stopped Service"
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
setup_uv
+1 -1
View File
@@ -34,7 +34,7 @@ function update_script() {
if check_for_gh_release "stylus" "mmastrac/stylus"; then
msg_info "Stopping Service"
systemctl stop stylus
msg_info "Stopped Service"
msg_ok "Stopped Service"
fetch_and_deploy_gh_release "stylus" "mmastrac/stylus" "singlefile" "latest" "/usr/bin/" "*_linux_$(arch_resolve)"
+1 -3
View File
@@ -65,9 +65,7 @@ EOF
msg_ok "Stopped services"
fi
create_backup /opt/sure/storage
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Sure" "we-promise/sure" "tarball" "latest" "/opt/sure"
restore_backup
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="storage" fetch_and_deploy_gh_release "Sure" "we-promise/sure" "tarball" "latest" "/opt/sure"
RUBY_VERSION="$(cat /opt/sure/.ruby-version)" RUBY_INSTALL_RAILS=false HOME=/root setup_ruby
msg_info "Updating Sure"
+2 -2
View File
@@ -44,11 +44,11 @@ function update_script() {
systemctl stop tandoor
msg_ok "Stopped Service"
create_backup /opt/tandoor/config /opt/tandoor/api /opt/tandoor/mediafiles /opt/tandoor/staticfiles /opt/tandoor/.env
create_backup /opt/tandoor/.env
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
PYTHON_VERSION="3.13" setup_uv
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "tandoor" "TandoorRecipes/recipes" "tarball" "latest" "/opt/tandoor"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="config api mediafiles staticfiles" fetch_and_deploy_gh_release "tandoor" "TandoorRecipes/recipes" "tarball" "latest" "/opt/tandoor"
restore_backup
+2 -6
View File
@@ -163,13 +163,9 @@ EOF
fi
msg_ok "Migrated Configuration"
create_backup \
/opt/termix/db/data \
/opt/termix/data \
/opt/termix/uploads \
/opt/termix/.env
create_backup /opt/termix/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "termix" "Termix-SSH/Termix" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="db/data data uploads" fetch_and_deploy_gh_release "termix" "Termix-SSH/Termix" "tarball"
restore_backup
+2 -2
View File
@@ -41,9 +41,9 @@ function update_script() {
systemctl stop transmute
msg_ok "Stopped Service"
create_backup /opt/transmute/backend/.env /opt/transmute/data
create_backup /opt/transmute/backend/.env
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "transmute" "transmute-app/transmute" "tarball"
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="data" fetch_and_deploy_gh_release "transmute" "transmute-app/transmute" "tarball"
restore_backup
+1 -5
View File
@@ -36,11 +36,7 @@ function update_script() {
systemctl stop xyops
msg_ok "Stopped Service"
create_backup /opt/xyops/data /opt/xyops/conf
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "xyops" "pixlcore/xyops" "tarball"
restore_backup
CLEAN_INSTALL=1 CLEAN_INSTALL_KEEP="data conf" fetch_and_deploy_gh_release "xyops" "pixlcore/xyops" "tarball"
msg_info "Rebuilding Application"
cd /opt/xyops