Compare commits

..

7 Commits

Author SHA1 Message Date
github-actions[bot] c335941ebe Update CHANGELOG.md 2026-11-08 20:53:49 +00:00
CanbiZ (MickLesk) d6d5996837 fix(update-apps): keep the backup alive on a closed console, stop before restoring (#18540)
A closed console killed vzdump with the session (7 runs ended "Backup failed ... creating vzdump archive"); it now runs shielded from SIGHUP. A restore after a failed update raced the background shutdown and failed with "can't overwrite running container" (3 runs); it now waits for that shutdown and for the container to stop, and says so when it does not.
2026-11-08 21:53:34 +01:00
CanbiZ (MickLesk) d4ab2d465f fix(clean-lxcs): run with sh and keep going when one container fails (#18538)
Alpine containers without bash failed with 127, and a failed apt update or pct start ended the whole run (12 runs in three days). The cleanup now runs with sh, keeps the apt lists so a failed update does not leave none, and lists the failed containers at the end.
2026-11-08 21:53:28 +01:00
CanbiZ (MickLesk) 31666305dc fix(update-lxcs): keep going when one container fails (#18541)
A failed patchmon-agent report, apk upgrade or pct start ended the whole run under set -e (18 runs in three days). The run now updates the other containers, lists the failed ones at the end and exits 1.
2026-11-08 21:53:26 +01:00
community-scripts-pr-app[bot] 84ba70bc1c Update CHANGELOG.md (#18543)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-08 17:04:05 +00:00
CanbiZ (MickLesk) 2032fa8175 fix(immich): do not clone libjxl's testdata (#18539)
The build runs with BUILD_TESTING=OFF, but the recursive submodule update also cloned the large testdata repo, and two installs died on network errors inside it. Only third_party is fetched now; libjxl at Immich's pinned revision configures and builds without it.
2026-11-08 18:03:40 +01:00
community-scripts-pr-app[bot] d4de03f8e8 Update CHANGELOG.md (#18542)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-11-08 16:06:59 +00:00
5 changed files with 47 additions and 15 deletions
+13
View File
@@ -592,8 +592,21 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- #### 🔧 Refactor
- Immich: do not clone libjxl's testdata [@MickLesk](https://github.com/MickLesk) ([#18539](https://github.com/community-scripts/ProxmoxVE/pull/18539))
- Databasus: build 3.65 and ship the verification agent [@MickLesk](https://github.com/MickLesk) ([#18500](https://github.com/community-scripts/ProxmoxVE/pull/18500))
### 💾 Core
- fix: a closed console no longer ends a running setup | ERR trap fixes | check VM ID before creating [@MickLesk](https://github.com/MickLesk) ([core#219](https://github.com/community-scripts/core/pull/219))
### 🧰 Tools
- #### 🐞 Bug Fixes
- update-apps: keep the backup alive on a closed console, stop before restoring [@MickLesk](https://github.com/MickLesk) ([#18540](https://github.com/community-scripts/ProxmoxVE/pull/18540))
- clean-lxcs: run with sh and keep going when one container fails [@MickLesk](https://github.com/MickLesk) ([#18538](https://github.com/community-scripts/ProxmoxVE/pull/18538))
- update-lxcs: keep going when one container fails [@MickLesk](https://github.com/MickLesk) ([#18541](https://github.com/community-scripts/ProxmoxVE/pull/18541))
## 2026-11-07
### 🆕 New Scripts
+1 -1
View File
@@ -419,7 +419,7 @@ function compile_libjxl() {
$STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBJXL_REVISION"
$STD git submodule update --init --recursive --depth 1 --recommend-shallow
$STD git submodule update --init --recursive --depth 1 --recommend-shallow -- third_party
mkdir build
cd build
$STD cmake \
+1 -1
View File
@@ -222,7 +222,7 @@ LIBJXL_REVISION="$(jq -cr '.revision' "$BASE_DIR"/server/sources/libjxl.json)"
$STD git clone https://github.com/libjxl/libjxl.git "$SOURCE"
cd "$SOURCE"
$STD git reset --hard "$LIBJXL_REVISION"
$STD git submodule update --init --recursive --depth 1 --recommend-shallow
$STD git submodule update --init --recursive --depth 1 --recommend-shallow -- third_party
mkdir build
cd build
$STD cmake \
+16 -8
View File
@@ -54,35 +54,35 @@ function run_lxc_clean() {
header_info
name=$(pct exec "$container" -- hostname)
pct exec "$container" -- bash -c '
pct exec "$container" -- sh -c '
BL="\033[36m"; GN="\033[1;92m"; CL="\033[m"
name=$(hostname)
if [ -e /etc/alpine-release ]; then
echo -e "${BL}[Info]${GN} Cleaning $name (Alpine)${CL}\n"
printf "%b\n\n" "${BL}[Info]${GN} Cleaning $name (Alpine)${CL}"
apk cache clean
find /var/log -type f -delete 2>/dev/null
find /tmp -mindepth 1 -delete 2>/dev/null
apk update
elif [ -e /etc/redhat-release ]; then
echo -e "${BL}[Info]${GN} Cleaning $name (CentOS)${CL}\n"
printf "%b\n\n" "${BL}[Info]${GN} Cleaning $name (CentOS)${CL}"
yum clean all
find /var/log -type f -delete 2>/dev/null
find /tmp -mindepth 1 -delete 2>/dev/null
yum update
yum upgrade -y
else
echo -e "${BL}[Info]${GN} Cleaning $name (Debian/Ubuntu)${CL}\n"
printf "%b\n\n" "${BL}[Info]${GN} Cleaning $name (Debian/Ubuntu)${CL}"
find /var/cache -type f -delete 2>/dev/null
find /var/log -type f -delete 2>/dev/null
find /tmp -mindepth 1 -delete 2>/dev/null
apt -y --purge autoremove
apt -y autoclean
rm -rf /var/lib/apt/lists/*
apt update
fi
'
}
failed_containers=()
for container in $(pct list | awk '{if(NR>1) print $1}'); do
excluded=0
for ex in $excluded_containers; do
@@ -112,17 +112,25 @@ for container in $(pct list | awk '{if(NR>1) print $1}'); do
if [ "$template" == "false" ] && [ "$status" == "status: stopped" ]; then
echo -e "${BL}[Info]${GN} Starting${BL} $container ${CL} \n"
pct start "$container"
if ! pct start "$container"; then
failed_containers+=("$container (start)")
continue
fi
echo -e "${BL}[Info]${GN} Waiting For${BL} $container${CL}${GN} To Start ${CL} \n"
sleep 5
run_lxc_clean "$container"
run_lxc_clean "$container" || failed_containers+=("$container")
echo -e "${BL}[Info]${GN} Shutting down${BL} $container ${CL} \n"
pct shutdown "$container" &
elif [ "$status" == "status: running" ]; then
run_lxc_clean "$container"
run_lxc_clean "$container" || failed_containers+=("$container")
fi
done
wait
header_info
if [ "${#failed_containers[@]}" -gt 0 ]; then
echo -e "${RD}Cleaning failed in these containers:${CL}"
printf '%s\n' "${failed_containers[@]}"
exit 1
fi
echo -e "${GN} Finished, Selected Containers Cleaned. ${CL} \n"
+16 -5
View File
@@ -84,6 +84,7 @@ function update_container() {
}
containers_needing_reboot=()
failed_containers=()
header_info
for container in $(pct list | awk '{if(NR>1) print $1}'); do
if [[ " ${excluded_containers[@]} " =~ " $container " ]]; then
@@ -101,14 +102,17 @@ for container in $(pct list | awk '{if(NR>1) print $1}'); do
template=$(pct config $container | grep -q "template:" && echo "true" || echo "false")
if [ "$template" == "false" ] && [ "$status" == "status: stopped" ]; then
echo -e "${BL}[Info]${GN} Starting${BL} $container ${CL} \n"
pct start $container
if ! pct start $container; then
failed_containers+=("$container (start)")
continue
fi
echo -e "${BL}[Info]${GN} Waiting For${BL} $container${CL}${GN} To Start ${CL} \n"
sleep 5
update_container $container
update_container $container || failed_containers+=("$container")
echo -e "${BL}[Info]${GN} Shutting down${BL} $container ${CL} \n"
pct shutdown $container &
elif [ "$status" == "status: running" ]; then
update_container $container
update_container $container || failed_containers+=("$container")
fi
if [ "$status" == "status: running" ]; then
if pct exec "$container" -- [ -e "/var/run/reboot-required" ]; then
@@ -119,14 +123,20 @@ for container in $(pct list | awk '{if(NR>1) print $1}'); do
# check if patchmon agent is present in container and run a report if found
if pct exec "$container" -- [ -e "/usr/local/bin/patchmon-agent" ]; then
echo -e "${BL}[Info]${GN} patchmon-agent found in ${BL} $container ${CL}, triggering report. \n"
pct exec "$container" -- "/usr/local/bin/patchmon-agent" "report"
pct exec "$container" -- "/usr/local/bin/patchmon-agent" "report" || echo -e "${YW}[Warn]${CL} patchmon-agent report failed in $container\n"
fi
fi
fi
done
wait
header_info
echo -e "${GN}The process is complete, and the containers have been successfully updated.${CL}\n"
if [ "${#failed_containers[@]}" -gt 0 ]; then
echo -e "${RD}The update failed in these containers:${CL}"
printf '%s\n' "${failed_containers[@]}"
echo ""
else
echo -e "${GN}The process is complete, and the containers have been successfully updated.${CL}\n"
fi
if [ "${#containers_needing_reboot[@]}" -gt 0 ]; then
echo -e "${RD}The following containers require a reboot:${CL}"
for container_name in "${containers_needing_reboot[@]}"; do
@@ -134,3 +144,4 @@ if [ "${#containers_needing_reboot[@]}" -gt 0 ]; then
done
fi
echo ""
[ "${#failed_containers[@]}" -eq 0 ] || exit 1