mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-07-29 17:22:53 +02:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 00c18ddad8 | |||
| 18cbd7fb50 |
@@ -510,14 +510,6 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
||||
|
||||
## 2026-07-29
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- backup virtual printer in bambuddy [@asylumexp](https://github.com/asylumexp) ([#16142](https://github.com/community-scripts/ProxmoxVE/pull/16142))
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- ImmichFrame: check .NET SDK before update deployment [@aidaskni](https://github.com/aidaskni) ([#16104](https://github.com/community-scripts/ProxmoxVE/pull/16104))
|
||||
|
||||
## 2026-07-28
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
+1
-2
@@ -42,8 +42,7 @@ function update_script() {
|
||||
/opt/bambuddy/data \
|
||||
/opt/bambuddy/bambuddy.db \
|
||||
/opt/bambuddy/bambutrack.db \
|
||||
/opt/bambuddy/archive \
|
||||
/opt/bambuddy/virtual_printer
|
||||
/opt/bambuddy/archive
|
||||
msg_ok "Backed up Configuration and Data"
|
||||
|
||||
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "bambuddy" "maziggy/bambuddy" "tarball" "latest" "/opt/bambuddy"
|
||||
|
||||
@@ -30,25 +30,6 @@ function update_script() {
|
||||
exit
|
||||
fi
|
||||
|
||||
if ! dotnet --list-sdks 2>/dev/null | grep -q '^8\.'; then
|
||||
msg_info "Installing .NET SDK 8.0"
|
||||
if [[ "$(arch_resolve)" == "arm64" ]]; then
|
||||
curl -fsSL https://dot.net/v1/dotnet-install.sh -o /tmp/dotnet-install.sh
|
||||
$STD bash /tmp/dotnet-install.sh --channel 8.0 --install-dir /usr/lib/dotnet8
|
||||
ln -sf /usr/lib/dotnet8/dotnet /usr/bin/dotnet
|
||||
rm -f /tmp/dotnet-install.sh
|
||||
else
|
||||
setup_deb822_repo \
|
||||
"microsoft" \
|
||||
"https://packages.microsoft.com/keys/microsoft-2025.asc" \
|
||||
"https://packages.microsoft.com/debian/13/prod/" \
|
||||
"trixie" \
|
||||
"main"
|
||||
$STD apt install -y dotnet-sdk-8.0
|
||||
fi
|
||||
msg_ok "Installed .NET SDK 8.0"
|
||||
fi
|
||||
|
||||
if check_for_gh_release "immichframe" "immichFrame/ImmichFrame"; then
|
||||
msg_info "Stopping Service"
|
||||
systemctl stop immichframe
|
||||
|
||||
@@ -71,12 +71,6 @@ msg_ok "Created Service"
|
||||
msg_info "Starting Service"
|
||||
systemctl enable -q --now nginx-ui
|
||||
rm -rf /etc/nginx/sites-enabled/default
|
||||
sleep 3
|
||||
cat <<EOF >~/nginx-ui.creds
|
||||
Nginx UI Install Secret: $(cat /usr/local/etc/nginx-ui/.install_secret 2>/dev/null)
|
||||
Valid for 10 minutes after service start, then removed.
|
||||
New secret: systemctl restart nginx-ui && cat /usr/local/etc/nginx-ui/.install_secret
|
||||
EOF
|
||||
msg_ok "Started Service"
|
||||
|
||||
motd_ssh
|
||||
|
||||
@@ -10,8 +10,29 @@ fi
|
||||
# must write local failure artifacts instead of talking to the telemetry API
|
||||
# (the host is the single telemetry reporter).
|
||||
export TELEMETRY_CONTEXT="container"
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/core.func)
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/error_handler.func)
|
||||
# A freshly booted container may not have DNS up yet. `source <(curl ...)` hides
|
||||
# curl's exit code, so a failed download would silently source an empty stream.
|
||||
_bootstrap_die() {
|
||||
if declare -f msg_error >/dev/null 2>&1; then
|
||||
msg_error "$1"
|
||||
else
|
||||
echo "FATAL: $1" >&2
|
||||
fi
|
||||
exit 115
|
||||
}
|
||||
|
||||
_bootstrap_source() {
|
||||
local url="$1" probe="$2" content
|
||||
content=$(curl -fsSL --connect-timeout 10 --retry 5 --retry-connrefused --retry-delay 2 "$url") ||
|
||||
_bootstrap_die "Failed to download ${url##*/}"
|
||||
source /dev/stdin <<<"$content"
|
||||
declare -f "$probe" >/dev/null 2>&1 ||
|
||||
_bootstrap_die "${url##*/} loaded but incomplete (missing ${probe})"
|
||||
}
|
||||
|
||||
_FUNC_BASE="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc"
|
||||
_bootstrap_source "$_FUNC_BASE/core.func" load_functions
|
||||
_bootstrap_source "$_FUNC_BASE/error_handler.func" catch_errors
|
||||
load_functions
|
||||
catch_errors
|
||||
|
||||
|
||||
+31
-12
@@ -88,19 +88,38 @@ variables() {
|
||||
fi
|
||||
}
|
||||
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/api.func)
|
||||
# `source <(curl ...)` hides the download exit code, so a failed fetch would
|
||||
# silently source an empty stream and leave the helpers undefined.
|
||||
_bootstrap_die() {
|
||||
if declare -f msg_error >/dev/null 2>&1; then
|
||||
msg_error "$1"
|
||||
else
|
||||
echo "FATAL: $1" >&2
|
||||
fi
|
||||
exit 115
|
||||
}
|
||||
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/core.func)
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/error_handler.func)
|
||||
load_functions
|
||||
catch_errors
|
||||
elif command -v wget >/dev/null 2>&1; then
|
||||
source <(wget -qO- https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/core.func)
|
||||
source <(wget -qO- https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/error_handler.func)
|
||||
load_functions
|
||||
catch_errors
|
||||
fi
|
||||
_bootstrap_source() {
|
||||
local url="$1" probe="$2" content=""
|
||||
if command -v curl >/dev/null 2>&1; then
|
||||
content=$(curl -fsSL --connect-timeout 10 --retry 5 --retry-connrefused --retry-delay 2 "$url") || content=""
|
||||
elif command -v wget >/dev/null 2>&1; then
|
||||
content=$(wget -qO- --tries=5 --timeout=10 "$url") || content=""
|
||||
else
|
||||
_bootstrap_die "Neither curl nor wget available"
|
||||
fi
|
||||
[[ -n "$content" ]] || _bootstrap_die "Failed to download ${url##*/}"
|
||||
source /dev/stdin <<<"$content"
|
||||
declare -f "$probe" >/dev/null 2>&1 ||
|
||||
_bootstrap_die "${url##*/} loaded but incomplete (missing ${probe})"
|
||||
}
|
||||
|
||||
_FUNC_BASE="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc"
|
||||
_bootstrap_source "$_FUNC_BASE/api.func" post_to_api
|
||||
_bootstrap_source "$_FUNC_BASE/core.func" load_functions
|
||||
_bootstrap_source "$_FUNC_BASE/error_handler.func" catch_errors
|
||||
load_functions
|
||||
catch_errors
|
||||
|
||||
# ==============================================================================
|
||||
# SECTION 2: PRE-FLIGHT CHECKS & SYSTEM VALIDATION
|
||||
|
||||
+23
-2
@@ -37,8 +37,29 @@ fi
|
||||
# (the host is the single telemetry reporter).
|
||||
export TELEMETRY_CONTEXT="container"
|
||||
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/core.func)
|
||||
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/error_handler.func)
|
||||
# A freshly booted container may not have DNS up yet. `source <(curl ...)` hides
|
||||
# curl's exit code, so a failed download would silently source an empty stream.
|
||||
_bootstrap_die() {
|
||||
if declare -f msg_error >/dev/null 2>&1; then
|
||||
msg_error "$1"
|
||||
else
|
||||
echo "FATAL: $1" >&2
|
||||
fi
|
||||
exit 115
|
||||
}
|
||||
|
||||
_bootstrap_source() {
|
||||
local url="$1" probe="$2" content
|
||||
content=$(curl -fsSL --connect-timeout 10 --retry 5 --retry-connrefused --retry-delay 2 "$url") ||
|
||||
_bootstrap_die "Failed to download ${url##*/}"
|
||||
source /dev/stdin <<<"$content"
|
||||
declare -f "$probe" >/dev/null 2>&1 ||
|
||||
_bootstrap_die "${url##*/} loaded but incomplete (missing ${probe})"
|
||||
}
|
||||
|
||||
_FUNC_BASE="https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc"
|
||||
_bootstrap_source "$_FUNC_BASE/core.func" load_functions
|
||||
_bootstrap_source "$_FUNC_BASE/error_handler.func" catch_errors
|
||||
load_functions
|
||||
catch_errors
|
||||
|
||||
|
||||
Reference in New Issue
Block a user