mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-10-06 02:50:59 +02:00
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:
committed by
GitHub
parent
45599d63ec
commit
7f57d0998c
+2
-2
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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"
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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"
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user