mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-08-23 13:02:41 +02:00
a35a75eadb
* Set default ProxmoxVE raw URL in UPS script Define `_CS_DEFAULT_URL` at the top of `ct/pve-ups.sh` and remove the outdated bootstrap comments, aligning the script with the newer URL-default pattern used for script sourcing. * Branch var_cpu by OS where the two variants actually differ The merged scripts branch var_ram, var_disk and var_version on var_os but left var_cpu above the branch, so both variants inherited the Debian value. On Vaultwarden that meant an Alpine container was told it wanted four cores for an update that runs apk and restarts a service. Only seven scripts are affected. Comparing each merged script against the alpine-* script it replaced, 22 of the 29 already had the same CPU count on both sides, so moving the line there would be churn with no behaviour change. These seven did not: docker, forgejo, ironclaw, syncthing, transmission, zigbee2mqtt 2 -> 1 vaultwarden 4 -> 1 The Alpine values are the ones those scripts carried before the merge, read back out of the deleted alpine-* files rather than picked. The Debian arm keeps what it has now. Needs the matching core change: until build.func derives var_os inside a container, an update never reaches the Alpine arm at all. * fix: source url * Update script to source build functions from URLs --------- Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
98 lines
3.1 KiB
Bash
98 lines
3.1 KiB
Bash
#!/usr/bin/env bash
|
|
_CS_DEFAULT_URL="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main"
|
|
_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://www.zigbee2mqtt.io/ | Github: https://github.com/Koenkk/zigbee2mqtt
|
|
|
|
APP="Zigbee2MQTT"
|
|
var_tags="${var_tags:-smarthome;zigbee;mqtt}"
|
|
var_arm64="${var_arm64:-yes}"
|
|
var_unprivileged="${var_unprivileged:-0}"
|
|
if [[ -z "${var_os:-}" ]] && command -v pveversion >/dev/null 2>&1; then
|
|
var_os=$(msg_menu "Choose the container OS" \
|
|
"debian" "Debian 13" \
|
|
"alpine" "Alpine (smaller footprint)")
|
|
fi
|
|
|
|
if [[ "${var_os:-}" == "alpine" ]]; then
|
|
var_cpu="${var_cpu:-1}"
|
|
var_ram="${var_ram:-256}"
|
|
var_disk="${var_disk:-1}"
|
|
var_version="${var_version:-3.24}"
|
|
else
|
|
var_cpu="${var_cpu:-2}"
|
|
var_ram="${var_ram:-1024}"
|
|
var_disk="${var_disk:-5}"
|
|
var_version="${var_version:-13}"
|
|
fi
|
|
|
|
header_info "$APP"
|
|
variables
|
|
color
|
|
catch_errors
|
|
|
|
update_deb_based() {
|
|
if [[ ! -d /opt/zigbee2mqtt ]]; then
|
|
msg_error "No ${APP} Installation Found!"
|
|
exit
|
|
fi
|
|
|
|
if check_for_gh_release "Zigbee2MQTT" "Koenkk/zigbee2mqtt"; then
|
|
NODE_VERSION="24" NODE_MODULE="pnpm@$(curl -fsSL https://raw.githubusercontent.com/Koenkk/zigbee2mqtt/master/package.json | jq -r '.packageManager | split("@")[1]')" setup_nodejs
|
|
msg_info "Stopping Service"
|
|
systemctl stop zigbee2mqtt
|
|
msg_ok "Stopped Service"
|
|
|
|
msg_info "Creating Backup"
|
|
ensure_dependencies zstd
|
|
mkdir -p /opt/backups
|
|
BACKUP_VERSION="$(<"$HOME/.zigbee2mqtt")"
|
|
BACKUP_FILE="/opt/backups/${APP}_backup_${BACKUP_VERSION}.tar.zst"
|
|
$STD tar -cf - -C /opt zigbee2mqtt | zstd -q -o "$BACKUP_FILE"
|
|
ls -t /opt/backups/${APP}_backup_*.tar.zst 2>/dev/null | tail -n +6 | xargs -r rm -f
|
|
msg_ok "Backup Created (${BACKUP_VERSION})"
|
|
|
|
create_backup /opt/zigbee2mqtt/data
|
|
|
|
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "Zigbee2MQTT" "Koenkk/zigbee2mqtt" "tarball" "latest" "/opt/zigbee2mqtt"
|
|
|
|
restore_backup
|
|
|
|
msg_info "Updating Zigbee2MQTT"
|
|
cd /opt/zigbee2mqtt
|
|
grep -q "^packageImportMethod" ./pnpm-workspace.yaml 2>/dev/null || echo "packageImportMethod: hardlink" >>./pnpm-workspace.yaml
|
|
$STD pnpm install --frozen-lockfile
|
|
$STD pnpm build
|
|
msg_ok "Updated Zigbee2MQTT"
|
|
|
|
msg_info "Starting Service"
|
|
systemctl start zigbee2mqtt
|
|
msg_ok "Started Service"
|
|
msg_ok "Updated successfully!"
|
|
fi
|
|
}
|
|
|
|
update_alpine() {
|
|
$STD apk -U upgrade
|
|
msg_ok "Updated successfully!"
|
|
}
|
|
|
|
function update_script() {
|
|
header_info
|
|
check_container_storage
|
|
check_container_resources
|
|
run_os_update
|
|
}
|
|
|
|
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}:9442${CL}"
|