Compare commits

...

9 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot] 8792b8037b Update CHANGELOG.md (#15011)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-08 20:46:25 +00:00
community-scripts-pr-app[bot] b9c115acca Update CHANGELOG.md (#15010)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-08 20:29:01 +00:00
CanbiZ (MickLesk) 3f619e4286 security: Fix HTTP to HTTPS for all package and repository downloads (#15009)
Co-authored-by: Security Fix <security@community-scripts.org>
2026-06-08 22:28:40 +02:00
CanbiZ (MickLesk) 0f37e30f28 security: Fix MITM RCE vulnerability in microcode scripts (CVE) (#15007)
Co-authored-by: Security Fix <security@community-scripts.org>
2026-06-08 22:28:17 +02:00
Security Fix 34243ff62f security: Fix HTTP to HTTPS for package downloads (container-level)
- install/deconz-install.sh: Switch GPG key and repository URLs to HTTPS
- install/deconz-install.sh: Switch libssl1.1 .deb download to HTTPS with --proto flag
- install/odoo-install.sh: Switch python3-lxml-html-clean .deb download to HTTPS
- ct/odoo.sh: Switch python3-lxml-html-clean .deb download to HTTPS in update_script

Changes:
  - All http:// → https:// for package/key downloads
  - Added --proto '=https' to prevent protocol downgrade
  - Improved quoting for file variables

Impact: Prevents MITM attacks on container installations
Affected containers: deconz, odoo
Related to: security/fix-microcode-https PR (host-level fix)
2026-06-08 21:20:24 +02:00
community-scripts-pr-app[bot] 131545081c Update CHANGELOG.md (#15004)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-08 13:36:24 +00:00
Michel Roegl-Brunner f98a64b632 Move flowiseai to node 24 to alligne with upstream (#14999) 2026-06-08 15:35:50 +02:00
community-scripts-pr-app[bot] 56129f7833 Update CHANGELOG.md (#15001)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-06-08 11:34:16 +00:00
Stéphane FERREIRA 68af0f5b41 homelable: preserve MCP server config across updates (#14996)
* homelable: preserve MCP server config across updates

The update path runs CLEAN_INSTALL=1 fetch_and_deploy_gh_release, which
wipes /opt/homelable before redeploying. The backup/restore only covers
backend/.env and data/, so an optionally-installed MCP server (set up via
Pouzor/homelable's own scripts/lxc-mcp-install.sh, which targets exactly
this LXC and lives in /opt/homelable/mcp) loses its .env and .venv on
every update. The homelable-mcp service then keeps running on deleted
inodes and dies at the next restart.

Back up mcp/.env when present, and after the deploy restore it, rebuild
the venv (same uv pattern as the backend), restore ownership and restart
the service. Fully conditional: installs without the MCP are unaffected.

* homelable: remove comments per maintainer review
2026-06-08 13:33:50 +02:00
17 changed files with 62 additions and 34 deletions
+12
View File
@@ -486,8 +486,20 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- #### 🐞 Bug Fixes - #### 🐞 Bug Fixes
- security: Fix HTTP to HTTPS for all package and repository downloads [@MickLesk](https://github.com/MickLesk) ([#15009](https://github.com/community-scripts/ProxmoxVE/pull/15009))
- homelable: preserve MCP server config across updates [@ferr079](https://github.com/ferr079) ([#14996](https://github.com/community-scripts/ProxmoxVE/pull/14996))
- changedetection: migrate Python install to uv venv [@ferr079](https://github.com/ferr079) ([#14995](https://github.com/community-scripts/ProxmoxVE/pull/14995)) - changedetection: migrate Python install to uv venv [@ferr079](https://github.com/ferr079) ([#14995](https://github.com/community-scripts/ProxmoxVE/pull/14995))
- #### 🔧 Refactor
- Update Flowwiseai to node 24 [@michelroegl-brunner](https://github.com/michelroegl-brunner) ([#14999](https://github.com/community-scripts/ProxmoxVE/pull/14999))
### 🧰 Tools
- #### 🐞 Bug Fixes
- security: Fix MITM RCE vulnerability in microcode scripts (CVE) [@MickLesk](https://github.com/MickLesk) ([#15007](https://github.com/community-scripts/ProxmoxVE/pull/15007))
## 2026-06-07 ## 2026-06-07
### 🚀 Updated Scripts ### 🚀 Updated Scripts
+1 -1
View File
@@ -29,7 +29,7 @@ function update_script() {
exit exit
fi fi
NODE_VERSION="20" NODE_MODULE="pnpm" setup_nodejs NODE_VERSION="24" NODE_MODULE="pnpm" setup_nodejs
msg_info "Updating FlowiseAI (this may take some time)" msg_info "Updating FlowiseAI (this may take some time)"
systemctl stop flowise systemctl stop flowise
+16
View File
@@ -38,6 +38,9 @@ function update_script() {
msg_info "Backing up Configuration and Data" msg_info "Backing up Configuration and Data"
cp /opt/homelable/backend/.env /opt/homelable.env.bak cp /opt/homelable/backend/.env /opt/homelable.env.bak
cp -r /opt/homelable/data /opt/homelable_data_bak cp -r /opt/homelable/data /opt/homelable_data_bak
if [[ -f /opt/homelable/mcp/.env ]]; then
cp -a /opt/homelable/mcp/.env /opt/homelable-mcp.env.bak
fi
msg_ok "Backed up Configuration and Data" msg_ok "Backed up Configuration and Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "homelable" "Pouzor/homelable" "tarball" "latest" "/opt/homelable" CLEAN_INSTALL=1 fetch_and_deploy_gh_release "homelable" "Pouzor/homelable" "tarball" "latest" "/opt/homelable"
@@ -61,6 +64,19 @@ function update_script() {
rm -rf /opt/homelable_data_bak rm -rf /opt/homelable_data_bak
msg_ok "Restored Configuration and Data" msg_ok "Restored Configuration and Data"
if [[ -f /opt/homelable-mcp.env.bak ]]; then
msg_info "Restoring MCP Server"
cp -a /opt/homelable-mcp.env.bak /opt/homelable/mcp/.env
rm -f /opt/homelable-mcp.env.bak
MCP_OWNER=$(stat -c '%U' /opt/homelable/mcp/.env)
cd /opt/homelable/mcp
$STD uv venv --clear /opt/homelable/mcp/.venv
$STD uv pip install --python /opt/homelable/mcp/.venv/bin/python -r requirements.txt
chown -R "$MCP_OWNER":"$MCP_OWNER" /opt/homelable/mcp
systemctl restart homelable-mcp
msg_ok "Restored MCP Server"
fi
msg_info "Starting Service" msg_info "Starting Service"
systemctl start homelable systemctl start homelable
msg_ok "Started Service" msg_ok "Started Service"
+1 -1
View File
@@ -31,7 +31,7 @@ function update_script() {
fi fi
ensure_dependencies python3-lxml ensure_dependencies python3-lxml
if ! [[ $(dpkg -s python3-lxml-html-clean 2>/dev/null) ]]; then if ! [[ $(dpkg -s python3-lxml-html-clean 2>/dev/null) ]]; then
curl -fsSL "http://archive.ubuntu.com/ubuntu/pool/universe/l/lxml-html-clean/python3-lxml-html-clean_0.1.1-1_all.deb" -o /opt/python3-lxml-html-clean.deb curl -fsSL --proto '=https' "https://archive.ubuntu.com/ubuntu/pool/universe/l/lxml-html-clean/python3-lxml-html-clean_0.1.1-1_all.deb" -o /opt/python3-lxml-html-clean.deb
$STD dpkg -i /opt/python3-lxml-html-clean.deb $STD dpkg -i /opt/python3-lxml-html-clean.deb
rm -f /opt/python3-lxml-html-clean.deb rm -f /opt/python3-lxml-html-clean.deb
fi fi
+4 -4
View File
@@ -16,14 +16,14 @@ update_os
msg_info "Setting Phoscon Repository" msg_info "Setting Phoscon Repository"
setup_deb822_repo \ setup_deb822_repo \
"deconz" \ "deconz" \
"http://phoscon.de/apt/deconz.pub.key" \ "https://phoscon.de/apt/deconz.pub.key" \
"http://phoscon.de/apt/deconz" \ "https://phoscon.de/apt/deconz" \
"generic" "generic"
msg_ok "Setup Phoscon Repository" msg_ok "Setup Phoscon Repository"
msg_info "Installing deConz" msg_info "Installing deConz"
libssl=$(curl -fsSL "http://security.ubuntu.com/ubuntu/pool/main/o/openssl/" | grep -o 'libssl1\.1_1\.1\.1f-1ubuntu2\.2[^"]*amd64\.deb' | head -n1) libssl=$(curl -fsSL --proto '=https' "https://security.ubuntu.com/ubuntu/pool/main/o/openssl/" | grep -o 'libssl1\.1_1\.1\.1f-1ubuntu2\.2[^"]*amd64\.deb' | head -n1)
curl -fsSL "http://security.ubuntu.com/ubuntu/pool/main/o/openssl/$libssl" -o "$libssl" curl -fsSL --proto '=https' "https://security.ubuntu.com/ubuntu/pool/main/o/openssl/$libssl" -o "$libssl"
$STD dpkg -i "$libssl" $STD dpkg -i "$libssl"
$STD apt install -y deconz $STD apt install -y deconz
rm -rf "$libssl" rm -rf "$libssl"
+1 -1
View File
@@ -17,7 +17,7 @@ msg_info "Installing Dependencies"
$STD apt install -y build-essential python3-dev $STD apt install -y build-essential python3-dev
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
NODE_VERSION="20" setup_nodejs NODE_VERSION="24" setup_nodejs
msg_info "Installing FlowiseAI (Patience)" msg_info "Installing FlowiseAI (Patience)"
$STD npm install -g flowise \ $STD npm install -g flowise \
+1 -1
View File
@@ -15,7 +15,7 @@ update_os
msg_info "Setup GlobaLeaks" msg_info "Setup GlobaLeaks"
DISTRO_CODENAME="$(awk -F= '/^VERSION_CODENAME=/{print $2}' /etc/os-release)" DISTRO_CODENAME="$(awk -F= '/^VERSION_CODENAME=/{print $2}' /etc/os-release)"
curl -fsSL https://deb.globaleaks.org/globaleaks.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/globaleaks.gpg curl -fsSL https://deb.globaleaks.org/globaleaks.asc | gpg --dearmor -o /etc/apt/trusted.gpg.d/globaleaks.gpg
echo "deb [signed-by=/etc/apt/trusted.gpg.d/globaleaks.gpg] http://deb.globaleaks.org $DISTRO_CODENAME/" >/etc/apt/sources.list.d/globaleaks.list echo "deb [signed-by=/etc/apt/trusted.gpg.d/globaleaks.gpg] https://deb.globaleaks.org $DISTRO_CODENAME/" >/etc/apt/sources.list.d/globaleaks.list
echo 'APPARMOR_SANDBOXING=0' >/etc/default/globaleaks echo 'APPARMOR_SANDBOXING=0' >/etc/default/globaleaks
$STD apt update $STD apt update
$STD apt -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install globaleaks $STD apt -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install globaleaks
+1 -1
View File
@@ -20,7 +20,7 @@ $STD apt install -y \
mediainfo mediainfo
cat <<EOF >/etc/apt/sources.list.d/non-free.list cat <<EOF >/etc/apt/sources.list.d/non-free.list
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
EOF EOF
$STD apt update $STD apt update
$STD apt install -y unrar $STD apt install -y unrar
+1 -1
View File
@@ -15,7 +15,7 @@ update_os
msg_info "Installing Dependencies" msg_info "Installing Dependencies"
$STD apt install -y python3-lxml wkhtmltopdf $STD apt install -y python3-lxml wkhtmltopdf
curl -fsSL "http://archive.ubuntu.com/ubuntu/pool/universe/l/lxml-html-clean/python3-lxml-html-clean_0.1.1-1_all.deb" -o /opt/python3-lxml-html-clean.deb curl -fsSL --proto '=https' "https://archive.ubuntu.com/ubuntu/pool/universe/l/lxml-html-clean/python3-lxml-html-clean_0.1.1-1_all.deb" -o /opt/python3-lxml-html-clean.deb
$STD dpkg -i /opt/python3-lxml-html-clean.deb $STD dpkg -i /opt/python3-lxml-html-clean.deb
msg_ok "Installed Dependencies" msg_ok "Installed Dependencies"
+1 -1
View File
@@ -16,7 +16,7 @@ update_os
msg_info "Installing Proxmox Backup Server" msg_info "Installing Proxmox Backup Server"
curl -fsSL "https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg" -o "/etc/apt/trusted.gpg.d/proxmox-release-trixie.gpg" curl -fsSL "https://enterprise.proxmox.com/debian/proxmox-release-trixie.gpg" -o "/etc/apt/trusted.gpg.d/proxmox-release-trixie.gpg"
cat <<EOF >>/etc/apt/sources.list cat <<EOF >>/etc/apt/sources.list
deb http://download.proxmox.com/debian/pbs trixie pbs-no-subscription deb https://download.proxmox.com/debian/pbs trixie pbs-no-subscription
EOF EOF
$STD apt update $STD apt update
export DEBIAN_FRONTEND=noninteractive export DEBIAN_FRONTEND=noninteractive
+6 -6
View File
@@ -96,14 +96,14 @@ if [[ ${prompt,,} =~ ^(y|yes)$ ]]; then
msg_info "Installing Hardware Acceleration (non-free)" msg_info "Installing Hardware Acceleration (non-free)"
pct exec "${privileged_container}" -- bash -c "cat <<EOF >/etc/apt/sources.list.d/non-free.list pct exec "${privileged_container}" -- bash -c "cat <<EOF >/etc/apt/sources.list.d/non-free.list
deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware deb-src https://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware deb https://deb.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware deb-src https://deb.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware deb https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware deb-src https://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
EOF" EOF"
pct exec "${privileged_container}" -- bash -c "silent() { \"\$@\" >/dev/null 2>&1; } && $STD apt-get update && $STD apt-get install -y intel-media-va-driver-non-free ocl-icd-libopencl1 intel-opencl-icd vainfo intel-gpu-tools && $STD adduser \$(id -u -n) video && $STD adduser \$(id -u -n) render" pct exec "${privileged_container}" -- bash -c "silent() { \"\$@\" >/dev/null 2>&1; } && $STD apt-get update && $STD apt-get install -y intel-media-va-driver-non-free ocl-icd-libopencl1 intel-opencl-icd vainfo intel-gpu-tools && $STD adduser \$(id -u -n) video && $STD adduser \$(id -u -n) render"
+1 -1
View File
@@ -76,7 +76,7 @@ intel() {
} }
msg_info "Downloading the Intel Processor Microcode Package $microcode" msg_info "Downloading the Intel Processor Microcode Package $microcode"
curl -fsSL "http://ftp.debian.org/debian/pool/non-free-firmware/i/intel-microcode/$microcode" -o $(basename "http://ftp.debian.org/debian/pool/non-free-firmware/i/intel-microcode/$microcode") curl -fsSL --proto '=https' "https://ftp.debian.org/debian/pool/non-free-firmware/i/intel-microcode/$microcode" -o "$microcode"
msg_ok "Downloaded the Intel Processor Microcode Package $microcode" msg_ok "Downloaded the Intel Processor Microcode Package $microcode"
msg_info "Installing $microcode (Patience)" msg_info "Installing $microcode (Patience)"
+1 -1
View File
@@ -90,7 +90,7 @@ intel() {
} }
msg_info "Downloading Intel processor microcode package $microcode" msg_info "Downloading Intel processor microcode package $microcode"
curl -fsSL "http://ftp.debian.org/debian/pool/non-free-firmware/i/intel-microcode/$microcode" -o $(basename "http://ftp.debian.org/debian/pool/non-free-firmware/i/intel-microcode/$microcode") curl -fsSL --proto '=https' "https://ftp.debian.org/debian/pool/non-free-firmware/i/intel-microcode/$microcode" -o "$microcode"
msg_ok "Downloaded Intel processor microcode package $microcode" msg_ok "Downloaded Intel processor microcode package $microcode"
msg_info "Installing $microcode (this might take a while)" msg_info "Installing $microcode (this might take a while)"
+4 -4
View File
@@ -71,9 +71,9 @@ start_routines() {
yes) yes)
msg_info "Changing to Proxmox Backup Server 3 Sources" msg_info "Changing to Proxmox Backup Server 3 Sources"
cat <<EOF >/etc/apt/sources.list cat <<EOF >/etc/apt/sources.list
deb http://deb.debian.org/debian bookworm main contrib deb https://deb.debian.org/debian bookworm main contrib
deb http://deb.debian.org/debian bookworm-updates main contrib deb https://deb.debian.org/debian bookworm-updates main contrib
deb http://security.debian.org/debian-security bookworm-security main contrib deb https://security.debian.org/debian-security bookworm-security main contrib
EOF EOF
msg_ok "Changed to Proxmox Backup Server 3 Sources" msg_ok "Changed to Proxmox Backup Server 3 Sources"
;; ;;
@@ -105,7 +105,7 @@ EOF
yes) yes)
msg_info "Enabling 'pbs-no-subscription' repository" msg_info "Enabling 'pbs-no-subscription' repository"
cat <<EOF >/etc/apt/sources.list.d/pbs-install-repo.list cat <<EOF >/etc/apt/sources.list.d/pbs-install-repo.list
deb http://download.proxmox.com/debian/pbs bookworm pbs-no-subscription deb https://download.proxmox.com/debian/pbs bookworm pbs-no-subscription
EOF EOF
msg_ok "Enabled 'pbs-no-subscription' repository" msg_ok "Enabled 'pbs-no-subscription' repository"
;; ;;
+3 -3
View File
@@ -126,9 +126,9 @@ start_routines_3() {
yes) yes)
msg_info "Correcting Debian Sources" msg_info "Correcting Debian Sources"
cat <<EOF >/etc/apt/sources.list cat <<EOF >/etc/apt/sources.list
deb http://deb.debian.org/debian ${VERSION} main contrib deb https://deb.debian.org/debian ${VERSION} main contrib
deb http://deb.debian.org/debian ${VERSION}-updates main contrib deb https://deb.debian.org/debian ${VERSION}-updates main contrib
deb http://security.debian.org/debian-security ${VERSION}-security main contrib deb https://security.debian.org/debian-security ${VERSION}-security main contrib
EOF EOF
msg_ok "Corrected Debian Sources" msg_ok "Corrected Debian Sources"
;; ;;
+4 -4
View File
@@ -115,9 +115,9 @@ start_routines_8() {
yes) yes)
msg_info "Correcting Proxmox VE Sources" msg_info "Correcting Proxmox VE Sources"
cat <<EOF >/etc/apt/sources.list cat <<EOF >/etc/apt/sources.list
deb http://deb.debian.org/debian bookworm main contrib deb https://deb.debian.org/debian bookworm main contrib
deb http://deb.debian.org/debian bookworm-updates main contrib deb https://deb.debian.org/debian bookworm-updates main contrib
deb http://security.debian.org/debian-security bookworm-security main contrib deb https://security.debian.org/debian-security bookworm-security main contrib
EOF EOF
echo 'APT::Get::Update::SourceListWarnings::NonFreeFirmware "false";' >/etc/apt/apt.conf.d/no-bookworm-firmware.conf echo 'APT::Get::Update::SourceListWarnings::NonFreeFirmware "false";' >/etc/apt/apt.conf.d/no-bookworm-firmware.conf
msg_ok "Corrected Proxmox VE Sources" msg_ok "Corrected Proxmox VE Sources"
@@ -146,7 +146,7 @@ EOF
yes) yes)
msg_info "Enabling 'pve-no-subscription' repository" msg_info "Enabling 'pve-no-subscription' repository"
cat <<EOF >/etc/apt/sources.list.d/pve-install-repo.list cat <<EOF >/etc/apt/sources.list.d/pve-install-repo.list
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription deb https://download.proxmox.com/debian/pve bookworm pve-no-subscription
EOF EOF
msg_ok "Enabled 'pve-no-subscription' repository" msg_ok "Enabled 'pve-no-subscription' repository"
;; ;;
+4 -4
View File
@@ -54,9 +54,9 @@ start_routines() {
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "PVE8 SOURCES" "This will set the correct sources to update and install Proxmox VE 8." 10 58 whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "PVE8 SOURCES" "This will set the correct sources to update and install Proxmox VE 8." 10 58
msg_info "Changing to Proxmox VE 8 Sources" msg_info "Changing to Proxmox VE 8 Sources"
cat <<EOF >/etc/apt/sources.list cat <<EOF >/etc/apt/sources.list
deb http://ftp.debian.org/debian bookworm main contrib deb https://ftp.debian.org/debian bookworm main contrib
deb http://ftp.debian.org/debian bookworm-updates main contrib deb https://ftp.debian.org/debian bookworm-updates main contrib
deb http://security.debian.org/debian-security bookworm-security main contrib deb https://security.debian.org/debian-security bookworm-security main contrib
EOF EOF
msg_ok "Changed to Proxmox VE 8 Sources" msg_ok "Changed to Proxmox VE 8 Sources"
@@ -70,7 +70,7 @@ EOF
whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "PVE8-NO-SUBSCRIPTION" "The 'pve-no-subscription' repository provides access to all of the open-source components of Proxmox VE." 10 58 whiptail --backtitle "Proxmox VE Helper Scripts" --msgbox --title "PVE8-NO-SUBSCRIPTION" "The 'pve-no-subscription' repository provides access to all of the open-source components of Proxmox VE." 10 58
msg_info "Enabling 'pve-no-subscription' repository" msg_info "Enabling 'pve-no-subscription' repository"
cat <<EOF >/etc/apt/sources.list.d/pve-install-repo.list cat <<EOF >/etc/apt/sources.list.d/pve-install-repo.list
deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription deb https://download.proxmox.com/debian/pve bookworm pve-no-subscription
EOF EOF
msg_ok "Enabled 'pve-no-subscription' repository" msg_ok "Enabled 'pve-no-subscription' repository"