mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2026-10-27 22:52:33 +01:00
Compare commits
16
Commits
No files matched your search
@@ -574,8 +574,30 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
|
|||||||
|
|
||||||
- #### 🐞 Bug Fixes
|
- #### 🐞 Bug Fixes
|
||||||
|
|
||||||
|
- Zabbix: leave out the NVIDIA agent2 plugin that breaks the all-plugins install [@MickLesk](https://github.com/MickLesk) ([#18262](https://github.com/community-scripts/ProxmoxVE/pull/18262))
|
||||||
|
- Omada: detect latest version from product download page [@ChrisKappe](https://github.com/ChrisKappe) ([#18248](https://github.com/community-scripts/ProxmoxVE/pull/18248))
|
||||||
|
- LanguageTool: count ngram prompt retries without tripping errexit [@MickLesk](https://github.com/MickLesk) ([#18258](https://github.com/community-scripts/ProxmoxVE/pull/18258))
|
||||||
|
- Overseerr: point fresh installs to Seerr [@MickLesk](https://github.com/MickLesk) ([#18259](https://github.com/community-scripts/ProxmoxVE/pull/18259))
|
||||||
- stalwart: pin to v0.16.27 until v1 migration is supported [@MickLesk](https://github.com/MickLesk) ([#18252](https://github.com/community-scripts/ProxmoxVE/pull/18252))
|
- stalwart: pin to v0.16.27 until v1 migration is supported [@MickLesk](https://github.com/MickLesk) ([#18252](https://github.com/community-scripts/ProxmoxVE/pull/18252))
|
||||||
|
|
||||||
|
- #### ✨ New Features
|
||||||
|
|
||||||
|
- TurnKey: offer only current appliances, stop on arm64 [@MickLesk](https://github.com/MickLesk) ([#18265](https://github.com/community-scripts/ProxmoxVE/pull/18265))
|
||||||
|
|
||||||
|
- #### 🔧 Refactor
|
||||||
|
|
||||||
|
- NPMplus: let the ACME e-mail stay empty again, Let's Encrypt does not need one [@MickLesk](https://github.com/MickLesk) ([#18263](https://github.com/community-scripts/ProxmoxVE/pull/18263))
|
||||||
|
|
||||||
|
### 🗑️ Deleted Scripts
|
||||||
|
|
||||||
|
- Remove: Readarr [@MickLesk](https://github.com/MickLesk) ([#18264](https://github.com/community-scripts/ProxmoxVE/pull/18264))
|
||||||
|
|
||||||
|
### 💾 Core
|
||||||
|
|
||||||
|
- Say the same thing on both hosts while a container is created [@MickLesk](https://github.com/MickLesk) ([core#173](https://github.com/community-scripts/core/pull/173))
|
||||||
|
- Skip the IPv6 sysctl when the host kernel has no IPv6 [@MickLesk](https://github.com/MickLesk) ([core#171](https://github.com/community-scripts/core/pull/171))
|
||||||
|
- Stop reporting a closed console as a user abort, and shield the host's own work [@MickLesk](https://github.com/MickLesk) ([core#172](https://github.com/community-scripts/core/pull/172))
|
||||||
|
|
||||||
## 2026-10-26
|
## 2026-10-26
|
||||||
|
|
||||||
### 🆕 New Scripts
|
### 🆕 New Scripts
|
||||||
|
|||||||
+5
-2
@@ -40,9 +40,12 @@ function update_script() {
|
|||||||
|
|
||||||
JAVA_VERSION="21" setup_java
|
JAVA_VERSION="21" setup_java
|
||||||
|
|
||||||
OMADA_URL=$(curl -fsSL -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Safari/605.1.15" "https://support.omadanetworks.com/en/download/software/omada-controller/" |
|
OMADA_URL=$(curl -fsSL -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Safari/605.1.15" \
|
||||||
|
"https://support.omadanetworks.com/en/product/omada-software-controller/?resourceType=download" \
|
||||||
|
"https://support.omadanetworks.com/en/download/software/omada-controller/" |
|
||||||
grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' |
|
grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' |
|
||||||
head -n1)
|
sed -n 's/.*_v\([0-9.]*\)_linux.*/\1 &/p' |
|
||||||
|
sort -V | tail -n1 | cut -d' ' -f2)
|
||||||
OMADA_PKG=$(basename "${OMADA_URL}")
|
OMADA_PKG=$(basename "${OMADA_URL}")
|
||||||
VERSION=$(sed -n 's/.*_v\([0-9.]*\)_linux.*/\1/p' <<<"${OMADA_PKG}")
|
VERSION=$(sed -n 's/.*_v\([0-9.]*\)_linux.*/\1/p' <<<"${OMADA_PKG}")
|
||||||
|
|
||||||
|
|||||||
@@ -82,6 +82,12 @@ EOF
|
|||||||
exit
|
exit
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if [[ ! -d /opt/overseerr ]]; then
|
||||||
|
msg_error "Overseerr 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
|
start
|
||||||
build_container
|
build_container
|
||||||
description
|
description
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ while [[ $attempt -lt $max_attempts ]]; do
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$lang_code" =~ [[:space:]] ]]; then
|
if [[ "$lang_code" =~ [[:space:]] ]]; then
|
||||||
((attempt++))
|
attempt=$((attempt + 1))
|
||||||
remaining=$((max_attempts - attempt))
|
remaining=$((max_attempts - attempt))
|
||||||
lang_code=""
|
lang_code=""
|
||||||
if [[ $remaining -gt 0 ]]; then
|
if [[ $remaining -gt 0 ]]; then
|
||||||
|
|||||||
@@ -55,8 +55,7 @@ while true; do
|
|||||||
done
|
done
|
||||||
|
|
||||||
ACME_EMAIL_INPUT="${var_npmplus_acme_email:-}"
|
ACME_EMAIL_INPUT="${var_npmplus_acme_email:-}"
|
||||||
[[ -n "$ACME_EMAIL_INPUT" ]] || read -r -p "${TAB3}Enter your ACME Email: " ACME_EMAIL_INPUT || true
|
[[ -n "$ACME_EMAIL_INPUT" ]] || read -r -p "${TAB3}Enter your ACME Email (optional, press ENTER to skip): " ACME_EMAIL_INPUT || true
|
||||||
[[ -n "$ACME_EMAIL_INPUT" ]] || { msg_error "No ACME e-mail given; set var_npmplus_acme_email or answer the prompt"; exit 64; }
|
|
||||||
|
|
||||||
yq -i "
|
yq -i "
|
||||||
.services.npmplus.environment |=
|
.services.npmplus.environment |=
|
||||||
|
|||||||
@@ -59,9 +59,12 @@ if ! dpkg -l | grep -q 'libssl1.1'; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
msg_info "Installing Omada Controller"
|
msg_info "Installing Omada Controller"
|
||||||
OMADA_URL=$(curl -fsSL -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Safari/605.1.15" "https://support.omadanetworks.com/en/download/software/omada-controller/" |
|
OMADA_URL=$(curl -fsSL -A "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.5 Safari/605.1.15" \
|
||||||
|
"https://support.omadanetworks.com/en/product/omada-software-controller/?resourceType=download" \
|
||||||
|
"https://support.omadanetworks.com/en/download/software/omada-controller/" |
|
||||||
grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' |
|
grep -o 'https://static\.tp-link\.com/upload/software/[^"]*linux_x64[^"]*\.deb' |
|
||||||
head -n1)
|
sed -n 's/.*_v\([0-9.]*\)_linux.*/\1 &/p' |
|
||||||
|
sort -V | tail -n1 | cut -d' ' -f2)
|
||||||
OMADA_PKG=$(basename "${OMADA_URL}")
|
OMADA_PKG=$(basename "${OMADA_URL}")
|
||||||
curl_download "${OMADA_PKG}" "${OMADA_URL}"
|
curl_download "${OMADA_PKG}" "${OMADA_URL}"
|
||||||
$STD dpkg -i "${OMADA_PKG}"
|
$STD dpkg -i "${OMADA_PKG}"
|
||||||
|
|||||||
@@ -83,23 +83,20 @@ msg_ok "Selected $AGENT_PKG"
|
|||||||
if [ "$AGENT_PKG" = "zabbix-agent2" ]; then
|
if [ "$AGENT_PKG" = "zabbix-agent2" ]; then
|
||||||
echo "Choose plugins for Zabbix Agent2:"
|
echo "Choose plugins for Zabbix Agent2:"
|
||||||
echo "1) PostgreSQL only (default, recommended)"
|
echo "1) PostgreSQL only (default, recommended)"
|
||||||
echo "2) All plugins (may cause issues)"
|
echo "2) All plugins except NVIDIA GPU (may cause issues)"
|
||||||
PLUGIN_CHOICE="${var_zabbix_plugins:-}"
|
PLUGIN_CHOICE="${var_zabbix_plugins:-}"
|
||||||
[[ -n "$PLUGIN_CHOICE" ]] || read -rp "Choose option [1-2]: " PLUGIN_CHOICE || true
|
[[ -n "$PLUGIN_CHOICE" ]] || read -rp "Choose option [1-2]: " PLUGIN_CHOICE || true
|
||||||
|
|
||||||
case "$PLUGIN_CHOICE" in
|
case "$PLUGIN_CHOICE" in
|
||||||
2)
|
2)
|
||||||
$STD apt install -y zabbix-agent2 zabbix-agent2-plugin-*
|
# The NVIDIA plugin fails the agent's config test without NVML, which aborts the package install
|
||||||
|
mapfile -t AGENT2_PLUGINS < <(apt-cache search --names-only '^zabbix-agent2-plugin-' | awk '{print $1}' | grep -v nvidia)
|
||||||
|
$STD apt install -y zabbix-agent2 "${AGENT2_PLUGINS[@]}"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
$STD apt install -y zabbix-agent2 zabbix-agent2-plugin-postgresql
|
$STD apt install -y zabbix-agent2 zabbix-agent2-plugin-postgresql
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
if [ -f /etc/zabbix/zabbix_agent2.d/plugins.d/nvidia.conf ]; then
|
|
||||||
sed -i 's|^Plugins.NVIDIA.System.Path=.*|# Plugins.NVIDIA.System.Path=/usr/libexec/zabbix/zabbix-agent2-plugin-nvidia-gpu|' \
|
|
||||||
/etc/zabbix/zabbix_agent2.d/plugins.d/nvidia.conf
|
|
||||||
fi
|
|
||||||
else
|
else
|
||||||
$STD apt install -y zabbix-agent
|
$STD apt install -y zabbix-agent
|
||||||
fi
|
fi
|
||||||
|
|||||||
+12
-6
@@ -12,6 +12,7 @@ catch_errors
|
|||||||
|
|
||||||
APP="TurnKey LXC"
|
APP="TurnKey LXC"
|
||||||
NSAPP="turnkey"
|
NSAPP="turnkey"
|
||||||
|
var_arm64="no"
|
||||||
DIAGNOSTICS="no"
|
DIAGNOSTICS="no"
|
||||||
METHOD="default"
|
METHOD="default"
|
||||||
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
RANDOM_UUID="$(cat /proc/sys/kernel/random/uuid)"
|
||||||
@@ -159,6 +160,7 @@ fi
|
|||||||
pve_check
|
pve_check
|
||||||
shell_check
|
shell_check
|
||||||
root_check
|
root_check
|
||||||
|
arch_check
|
||||||
|
|
||||||
# Read diagnostics preference (same logic as build.func diagnostics_check)
|
# Read diagnostics preference (same logic as build.func diagnostics_check)
|
||||||
DIAG_CONFIG="/usr/local/community-scripts/diagnostics"
|
DIAG_CONFIG="/usr/local/community-scripts/diagnostics"
|
||||||
@@ -178,6 +180,7 @@ msg_ok "Updated LXC template list"
|
|||||||
|
|
||||||
# Build TurnKey selection menu dynamically from available templates
|
# Build TurnKey selection menu dynamically from available templates
|
||||||
# Requires gawk for regex capture groups in match()
|
# Requires gawk for regex capture groups in match()
|
||||||
|
# Newest template per appliance, current or previous Debian only: the catalog still lists dropped appliances on EOL releases
|
||||||
command -v gawk &>/dev/null || apt-get install -y gawk &>/dev/null
|
command -v gawk &>/dev/null || apt-get install -y gawk &>/dev/null
|
||||||
declare -A TURNKEY_TEMPLATES
|
declare -A TURNKEY_TEMPLATES
|
||||||
TURNKEY_MENU=()
|
TURNKEY_MENU=()
|
||||||
@@ -187,10 +190,14 @@ while IFS=$'\t' read -r TEMPLATE_FILE TAG ITEM; do
|
|||||||
OFFSET=2
|
OFFSET=2
|
||||||
((${#ITEM} + OFFSET > MSG_MAX_LENGTH)) && MSG_MAX_LENGTH=$((${#ITEM} + OFFSET))
|
((${#ITEM} + OFFSET > MSG_MAX_LENGTH)) && MSG_MAX_LENGTH=$((${#ITEM} + OFFSET))
|
||||||
TURNKEY_MENU+=("$TAG" "$ITEM " "OFF")
|
TURNKEY_MENU+=("$TAG" "$ITEM " "OFF")
|
||||||
done < <(pveam available -section turnkeylinux | gawk '{
|
done < <(pveam available -section turnkeylinux | sort -k2,2V | gawk '
|
||||||
tpl = $2
|
match($2, /debian-([0-9]+)-turnkey-([^_]+)_([^_]+)_/, m) {
|
||||||
if (match(tpl, /debian-([0-9]+)-turnkey-([^_]+)_([^_]+)_/, m)) {
|
tpl[m[2]] = $2; deb[m[2]] = m[1] + 0; ver[m[2]] = m[3]
|
||||||
app = m[2]; deb = m[1]; ver = m[3]
|
if (m[1] + 0 > newest) newest = m[1] + 0
|
||||||
|
}
|
||||||
|
END {
|
||||||
|
for (app in tpl) {
|
||||||
|
if (deb[app] < newest - 1) continue
|
||||||
display = app
|
display = app
|
||||||
gsub(/-/, " ", display)
|
gsub(/-/, " ", display)
|
||||||
n = split(display, words, " ")
|
n = split(display, words, " ")
|
||||||
@@ -199,8 +206,7 @@ done < <(pveam available -section turnkeylinux | gawk '{
|
|||||||
words[i] = toupper(substr(words[i], 1, 1)) substr(words[i], 2)
|
words[i] = toupper(substr(words[i], 1, 1)) substr(words[i], 2)
|
||||||
display = display (i > 1 ? " " : "") words[i]
|
display = display (i > 1 ? " " : "") words[i]
|
||||||
}
|
}
|
||||||
tag = app "-" deb
|
printf "%s\t%s-%s\t%s | Debian %s | %s\n", tpl[app], app, deb[app], display, deb[app], ver[app]
|
||||||
printf "%s\t%s\t%s | Debian %s | %s\n", tpl, tag, display, deb, ver
|
|
||||||
}
|
}
|
||||||
}' | sort -t$'\t' -k2,2)
|
}' | sort -t$'\t' -k2,2)
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user