mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-11-06 16:57:51 +01:00
ef7f811a7a
* fix(jellyseerr,overseerr): skip the Seerr migration prompt when unattended Both scripts ask whether to migrate to Seerr before rewriting /usr/bin/update. With PHS_SILENT=1 and stdin open the read blocks and stalls the whole batch; with stdin closed it fails under the ERR trap, so the container is recorded as FAILED and the backup is restored. Skip with exit 75, which update-apps.sh already renders as "skipped - requires interactive mode". Interactive behaviour is unchanged. * fix(paperless-ngx): skip migration prompts when unattended Two prompts can appear during an update: the v3 encryption confirmation and the uv-migration snapshot confirmation. Unattended, the first either blocks or fails the container; the second sits after the services are already stopped, so a failure leaves Paperless down. Guard both with exit 75. The v3 guard sits behind the encryption notices, so a skip still logs why. The uv guard is placed before the services are stopped, so skipping never leaves the container half-updated. Interactive behaviour is unchanged. * fix(vikunja): skip the 1.0 migration prompt when unattended The 1.0 config migration asks twice with a 30 second timeout and exits 254 when it gets no answer, which update-apps.sh treats as a failed container. The config file choice that follows also waits up to 60 seconds. Skip the migration prompt with exit 75 when unattended, and take the documented default (keep the current config) for the second question without waiting. Interactive behaviour is unchanged.
117 lines
3.6 KiB
Bash
117 lines
3.6 KiB
Bash
#!/usr/bin/env bash
|
|
_cs_boot="${COMMUNITY_SCRIPTS_CORE_DIR:-$(dirname "${BASH_SOURCE[0]}")/../../core}/core/build.func"
|
|
source "$_cs_boot" 2>/dev/null || source <(curl -fsSL "${COMMUNITY_SCRIPTS_CORE_URL:-https://raw.githubusercontent.com/community-scripts/core/main}/core/build.func")
|
|
# Copyright (c) 2021-2026 tteck
|
|
# Author: tteck (tteckster)
|
|
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
|
|
# Source: https://docs.jellyseerr.dev/
|
|
|
|
APP="Jellyseerr"
|
|
var_tags="${var_tags:-media}"
|
|
var_cpu="${var_cpu:-4}"
|
|
var_ram="${var_ram:-4096}"
|
|
var_disk="${var_disk:-8}"
|
|
var_os="${var_os:-debian}"
|
|
var_version="${var_version:-12}"
|
|
var_arm64="${var_arm64:-yes}"
|
|
var_unprivileged="${var_unprivileged:-1}"
|
|
|
|
header_info "$APP"
|
|
variables
|
|
color
|
|
catch_errors
|
|
|
|
function update_script() {
|
|
header_info
|
|
check_container_storage
|
|
check_container_resources
|
|
|
|
if [[ ! -d /opt/jellyseerr ]]; then
|
|
msg_error "No ${APP} Installation Found!"
|
|
exit
|
|
fi
|
|
|
|
if [[ -f "/opt/jellyseerr/package.json" ]] && [[ "$(grep -m1 '"version"' /opt/jellyseerr/package.json | awk -F'"' '{print $4}')" == "2.7.3" ]]; then
|
|
echo
|
|
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
echo "Jellyseerr v2.7.3 detected."
|
|
echo
|
|
echo "Seerr is the new unified Jellyseerr and Overseerr."
|
|
echo "More info: https://docs.seerr.dev/blog/seerr-release"
|
|
echo
|
|
if [[ "${PHS_SILENT:-0}" == "1" ]]; then
|
|
msg_warn "Seerr migration detected - skipping update, requires an interactive run"
|
|
exit 75
|
|
fi
|
|
read -rp "Do you want to migrate to Seerr now? (y/N): " MIGRATE
|
|
echo
|
|
if [[ ! "$MIGRATE" =~ ^[Yy]$ ]]; then
|
|
msg_info "Migration cancelled. Exiting."
|
|
exit 0
|
|
fi
|
|
|
|
msg_info "Switching update script to Seerr"
|
|
TMP_UPDATE=$(mktemp)
|
|
cat <<'EOF' >"$TMP_UPDATE"
|
|
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/seerr.sh)"
|
|
EOF
|
|
mv "$TMP_UPDATE" /usr/bin/update
|
|
chmod +x /usr/bin/update
|
|
msg_ok "Switched update script to Seerr"
|
|
msg_warn "Please type 'update' again to complete the migration"
|
|
exit 0
|
|
fi
|
|
|
|
msg_info "Updating Jellyseerr"
|
|
cd /opt/jellyseerr
|
|
systemctl stop jellyseerr
|
|
output=$(git pull --no-rebase)
|
|
pnpm_desired=$(grep -Po '"pnpm":\s*"\K[^"]+' /opt/jellyseerr/package.json)
|
|
NODE_VERSION="22" NODE_MODULE="pnpm@$pnpm_desired" setup_nodejs
|
|
if echo "$output" | grep -q "Already up to date."; then
|
|
msg_ok "$APP is already up to date."
|
|
exit
|
|
fi
|
|
rm -rf dist .next node_modules
|
|
export CYPRESS_INSTALL_BINARY=0
|
|
cd /opt/jellyseerr
|
|
$STD pnpm install --frozen-lockfile
|
|
export NODE_OPTIONS="--max-old-space-size=3072"
|
|
$STD pnpm build
|
|
cat <<EOF >/etc/systemd/system/jellyseerr.service
|
|
[Unit]
|
|
Description=jellyseerr Service
|
|
After=network.target
|
|
|
|
[Service]
|
|
EnvironmentFile=/etc/jellyseerr/jellyseerr.conf
|
|
Environment=NODE_ENV=production
|
|
Type=exec
|
|
WorkingDirectory=/opt/jellyseerr
|
|
ExecStart=/usr/bin/node dist/index.js
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
systemctl daemon-reload
|
|
systemctl start jellyseerr
|
|
msg_ok "Updated Jellyseerr"
|
|
msg_ok "Updated successfully!"
|
|
exit
|
|
}
|
|
|
|
if [[ ! -d /opt/jellyseerr ]]; then
|
|
msg_error "Jellyseerr is now Seerr and can no longer be installed with this script."
|
|
msg_warn "Install Seerr instead: https://community-scripts.org/scripts/seerr"
|
|
exit 1
|
|
fi
|
|
|
|
start
|
|
build_container
|
|
description
|
|
|
|
msg_ok "Completed successfully!\n"
|
|
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
|
|
echo -e "${INFO}${YW}Access it using the following URL:${CL}"
|
|
echo -e "${GATEWAY}${BGN}http://${IP}:5055${CL}"
|