mirror of
https://github.com/community-scripts/ProxmoxVE.git
synced 2025-12-15 19:53:31 +01:00
Compare commits
23 Commits
2025-08-04
...
2025-08-06
| Author | SHA1 | Date | |
|---|---|---|---|
| bd41b236df | |||
| 229c7ce4b3 | |||
| cc8381d7f7 | |||
| dc5b9be9ae | |||
| 993aff59d7 | |||
| f3844c664c | |||
| 47b3f71992 | |||
| 09c815e935 | |||
| f59d4960f1 | |||
| c53d1d004a | |||
| bbdda06297 | |||
| daab80aaf4 | |||
| 9250f9fae9 | |||
| 6fa371fffc | |||
| e85263078e | |||
| f9b0916885 | |||
| 964e29cd9e | |||
| 31932499a9 | |||
| b155881de9 | |||
| 010435ecaf | |||
| 0863d080a4 | |||
| 99837db81a | |||
| b4df862579 |
30
CHANGELOG.md
30
CHANGELOG.md
@ -10,8 +10,38 @@
|
||||
> [!CAUTION]
|
||||
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
|
||||
|
||||
## 2025-08-07
|
||||
|
||||
## 2025-08-06
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### 🐞 Bug Fixes
|
||||
|
||||
- [core] better y/N handling for ressource check [@MickLesk](https://github.com/MickLesk) ([#6608](https://github.com/community-scripts/ProxmoxVE/pull/6608))
|
||||
- fix: update Pulse scripts for v4 Go rewrite support [@rcourtman](https://github.com/rcourtman) ([#6574](https://github.com/community-scripts/ProxmoxVE/pull/6574))
|
||||
- OpenProject: Fix missing apt update [@tremor021](https://github.com/tremor021) ([#6598](https://github.com/community-scripts/ProxmoxVE/pull/6598))
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- PVE9: Remove Beta Whiptail / add correct version check [@MickLesk](https://github.com/MickLesk) ([#6599](https://github.com/community-scripts/ProxmoxVE/pull/6599))
|
||||
|
||||
## 2025-08-05
|
||||
|
||||
### 🚀 Updated Scripts
|
||||
|
||||
- #### ✨ New Features
|
||||
|
||||
- NIC offloading: e1000 support [@rcastley](https://github.com/rcastley) ([#6575](https://github.com/community-scripts/ProxmoxVE/pull/6575))
|
||||
|
||||
- #### 💥 Breaking Changes
|
||||
|
||||
- Temporary Remove: SearXNG [@MickLesk](https://github.com/MickLesk) ([#6578](https://github.com/community-scripts/ProxmoxVE/pull/6578))
|
||||
|
||||
- #### 🔧 Refactor
|
||||
|
||||
- Refactor: Prometheus Alertmanager [@tremor021](https://github.com/tremor021) ([#6577](https://github.com/community-scripts/ProxmoxVE/pull/6577))
|
||||
|
||||
## 2025-08-04
|
||||
|
||||
### 🆕 New Scripts
|
||||
|
||||
@ -34,7 +34,7 @@ function update_script() {
|
||||
systemctl stop cleanuparr
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "$RELEASE" "/opt/cleanuparr" "*linux-amd64.zip"
|
||||
fetch_and_deploy_gh_release "Cleanuparr" "Cleanuparr/Cleanuparr" "prebuild" "latest" "/opt/cleanuparr" "*linux-amd64.zip"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start cleanuparr
|
||||
|
||||
@ -27,24 +27,19 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/prometheus/alertmanager/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
if [[ ! -f ~/.alertmanager ]] || [[ "${RELEASE}" != "$(cat ~/.alertmanager)" ]]; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop prometheus-alertmanager
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
msg_info "Updating ${APP} to v${RELEASE}"
|
||||
cd /opt
|
||||
curl -fsSL "https://github.com/prometheus/alertmanager/releases/download/v${RELEASE}/alertmanager-${RELEASE}.linux-amd64.tar.gz" -o $(basename "https://github.com/prometheus/alertmanager/releases/download/v${RELEASE}/alertmanager-${RELEASE}.linux-amd64.tar.gz")
|
||||
tar -xf alertmanager-${RELEASE}.linux-amd64.tar.gz
|
||||
cp -rf alertmanager-${RELEASE}.linux-amd64/alertmanager alertmanager-${RELEASE}.linux-amd64/amtool /usr/local/bin/
|
||||
rm -rf alertmanager-${RELEASE}.linux-amd64 alertmanager-${RELEASE}.linux-amd64.tar.gz
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated ${APP} to v${RELEASE}"
|
||||
fetch_and_deploy_gh_release "alertmanager" "prometheus/alertmanager" "prebuild" "latest" "/usr/local/bin/" "alertmanager*linux-amd64.tar.gz"
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start prometheus-alertmanager
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
|
||||
34
ct/pulse.sh
34
ct/pulse.sh
@ -23,40 +23,32 @@ function update_script() {
|
||||
header_info
|
||||
check_container_storage
|
||||
check_container_resources
|
||||
if [[ -d /opt/pulse-monitor ]]; then
|
||||
msg_error "An old installation was detected. Please recreate the LXC from scratch (https://github.com/community-scripts/ProxmoxVE/pull/4848)"
|
||||
exit 1
|
||||
fi
|
||||
if [[ ! -d /opt/pulse ]]; then
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/rcourtman/Pulse/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
if [[ ! -f /opt/${APP}_version.txt ]] || [[ "${RELEASE}" != "$(cat /opt/${APP}_version.txt)" ]]; then
|
||||
|
||||
if [[ ! -f ~/.pulse ]]; then
|
||||
msg_error "Old Installation Found! Please recreate the container due big changes in the software."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/rcourtman/Pulse/releases/latest | jq -r '.tag_name' | sed 's/^v//')
|
||||
if [[ "${RELEASE}" != "$(cat ~/.pulse 2>/dev/null)" ]] || [[ ! -f ~/.pulse ]]; then
|
||||
msg_info "Stopping ${APP}"
|
||||
systemctl stop pulse
|
||||
msg_ok "Stopped ${APP}"
|
||||
|
||||
msg_info "Updating Pulse"
|
||||
temp_file=$(mktemp)
|
||||
mkdir -p /opt/pulse
|
||||
rm -rf /opt/pulse/*
|
||||
curl -fsSL "https://github.com/rcourtman/Pulse/releases/download/v${RELEASE}/pulse-v${RELEASE}.tar.gz" -o "$temp_file"
|
||||
tar zxf "$temp_file" --strip-components=1 -C /opt/pulse
|
||||
echo "${RELEASE}" >/opt/${APP}_version.txt
|
||||
msg_ok "Updated Pulse to ${RELEASE}"
|
||||
|
||||
msg_info "Setting permissions for /opt/pulse..."
|
||||
chown -R pulse:pulse "/opt/pulse"
|
||||
find "/opt/pulse" -type d -exec chmod 755 {} \;
|
||||
find "/opt/pulse" -type f -exec chmod 644 {} \;
|
||||
msg_ok "Set permissions."
|
||||
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
|
||||
chown -R pulse:pulse /etc/pulse /opt/pulse
|
||||
|
||||
msg_info "Starting ${APP}"
|
||||
systemctl start pulse
|
||||
msg_ok "Started ${APP}"
|
||||
|
||||
msg_ok "Updated Successfully"
|
||||
else
|
||||
msg_ok "No update required. ${APP} is already at ${RELEASE}."
|
||||
msg_ok "No update required. ${APP} is already at v${RELEASE}"
|
||||
fi
|
||||
exit
|
||||
}
|
||||
|
||||
@ -27,10 +27,11 @@ function update_script() {
|
||||
msg_error "No ${APP} Installation Found!"
|
||||
exit
|
||||
fi
|
||||
sed -i 's/^\([[:space:]]*limiter:\)[[:space:]]*true/\1 false/' /etc/searxng/settings.yml
|
||||
if cd /usr/local/searxng/searxng-src && git pull | grep -q 'Already up to date'; then
|
||||
msg_ok "There is currently no update available."
|
||||
fi
|
||||
msg_ok "There is currently no update available."
|
||||
# sed -i 's/^\([[:space:]]*limiter:\)[[:space:]]*true/\1 false/' /etc/searxng/settings.yml
|
||||
# if cd /usr/local/searxng/searxng-src && git pull | grep -q 'Already up to date'; then
|
||||
# msg_ok "There is currently no update available."
|
||||
# fi
|
||||
exit
|
||||
}
|
||||
start
|
||||
|
||||
@ -1,35 +0,0 @@
|
||||
{
|
||||
"name": "SearXNG",
|
||||
"slug": "searxng",
|
||||
"categories": [
|
||||
0
|
||||
],
|
||||
"date_created": "2025-02-07",
|
||||
"type": "ct",
|
||||
"updateable": true,
|
||||
"privileged": false,
|
||||
"interface_port": 8888,
|
||||
"documentation": "https://docs.searxng.org/",
|
||||
"website": "https://github.com/searxng/searxng",
|
||||
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons/webp/searxng.webp",
|
||||
"config_path": "/etc/searxng/settings.yml",
|
||||
"description": "SearXNG is a free internet metasearch engine which aggregates results from up to 215 search services. Users are neither tracked nor profiled. Additionally, SearXNG can be used over Tor for online anonymity.",
|
||||
"install_methods": [
|
||||
{
|
||||
"type": "default",
|
||||
"script": "ct/searxng.sh",
|
||||
"resources": {
|
||||
"cpu": 2,
|
||||
"ram": 2048,
|
||||
"hdd": 7,
|
||||
"os": "debian",
|
||||
"version": "12"
|
||||
}
|
||||
}
|
||||
],
|
||||
"default_credentials": {
|
||||
"username": null,
|
||||
"password": null
|
||||
},
|
||||
"notes": []
|
||||
}
|
||||
@ -1,49 +1,264 @@
|
||||
[
|
||||
{
|
||||
"name": "rcourtman/Pulse",
|
||||
"version": "v4.0.0",
|
||||
"date": "2025-08-04T20:20:02Z"
|
||||
"name": "influxdata/influxdb",
|
||||
"version": "v1.12.2rc2",
|
||||
"date": "2025-08-06T23:12:18Z"
|
||||
},
|
||||
{
|
||||
"name": "mongodb/mongo",
|
||||
"version": "r8.1.3-rc0",
|
||||
"date": "2025-08-04T19:23:12Z"
|
||||
"version": "r8.2.0-rc3",
|
||||
"date": "2025-08-06T22:48:18Z"
|
||||
},
|
||||
{
|
||||
"name": "go-gitea/gitea",
|
||||
"version": "v1.24.4",
|
||||
"date": "2025-08-04T18:58:27Z"
|
||||
"name": "rcourtman/Pulse",
|
||||
"version": "v4.0.8",
|
||||
"date": "2025-08-06T22:04:29Z"
|
||||
},
|
||||
{
|
||||
"name": "fallenbagel/jellyseerr",
|
||||
"version": "preview-seerr",
|
||||
"date": "2025-08-06T21:45:58Z"
|
||||
},
|
||||
{
|
||||
"name": "booklore-app/booklore",
|
||||
"version": "v0.35.1",
|
||||
"date": "2025-08-06T21:30:17Z"
|
||||
},
|
||||
{
|
||||
"name": "MariaDB/server",
|
||||
"version": "mariadb-11.8.3",
|
||||
"date": "2025-08-06T21:17:38Z"
|
||||
},
|
||||
{
|
||||
"name": "Athou/commafeed",
|
||||
"version": "5.11.0",
|
||||
"date": "2025-08-06T21:14:18Z"
|
||||
},
|
||||
{
|
||||
"name": "bastienwirtz/homer",
|
||||
"version": "v25.08.1",
|
||||
"date": "2025-08-06T21:04:07Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.24.12",
|
||||
"date": "2025-08-06T18:42:07Z"
|
||||
},
|
||||
{
|
||||
"name": "firefly-iii/firefly-iii",
|
||||
"version": "v6.2.21",
|
||||
"date": "2025-07-17T04:46:25Z"
|
||||
},
|
||||
{
|
||||
"name": "home-assistant/core",
|
||||
"version": "2025.8.0",
|
||||
"date": "2025-08-06T17:54:23Z"
|
||||
},
|
||||
{
|
||||
"name": "NodeBB/NodeBB",
|
||||
"version": "v4.4.6",
|
||||
"date": "2025-08-06T17:48:36Z"
|
||||
},
|
||||
{
|
||||
"name": "apache/tika",
|
||||
"version": "3.2.2-rc1",
|
||||
"date": "2025-08-06T16:59:43Z"
|
||||
},
|
||||
{
|
||||
"name": "cross-seed/cross-seed",
|
||||
"version": "v6.13.1",
|
||||
"date": "2025-07-17T21:36:42Z"
|
||||
},
|
||||
{
|
||||
"name": "Graylog2/graylog2-server",
|
||||
"version": "6.1.14",
|
||||
"date": "2025-08-06T14:24:58Z"
|
||||
},
|
||||
{
|
||||
"name": "cockpit-project/cockpit",
|
||||
"version": "344",
|
||||
"date": "2025-08-06T13:09:25Z"
|
||||
},
|
||||
{
|
||||
"name": "Checkmk/checkmk",
|
||||
"version": "v2.4.0p9",
|
||||
"date": "2025-08-06T12:48:46Z"
|
||||
},
|
||||
{
|
||||
"name": "TryGhost/Ghost-CLI",
|
||||
"version": "v1.28.3",
|
||||
"date": "2025-08-06T12:32:02Z"
|
||||
},
|
||||
{
|
||||
"name": "outline/outline",
|
||||
"version": "v0.86.0",
|
||||
"date": "2025-08-06T12:20:31Z"
|
||||
},
|
||||
{
|
||||
"name": "nzbgetcom/nzbget",
|
||||
"version": "v25.2",
|
||||
"date": "2025-07-04T08:21:42Z"
|
||||
},
|
||||
{
|
||||
"name": "openobserve/openobserve",
|
||||
"version": "v0.15.0-rc5",
|
||||
"date": "2025-08-06T08:55:10Z"
|
||||
},
|
||||
{
|
||||
"name": "theonedev/onedev",
|
||||
"version": "v12.0.4",
|
||||
"date": "2025-08-06T06:30:07Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.22.2233",
|
||||
"date": "2025-08-06T05:56:01Z"
|
||||
},
|
||||
{
|
||||
"name": "garethgeorge/backrest",
|
||||
"version": "v1.9.1",
|
||||
"date": "2025-08-06T05:48:33Z"
|
||||
},
|
||||
{
|
||||
"name": "fuma-nama/fumadocs",
|
||||
"version": "fumadocs-openapi@9.1.9",
|
||||
"date": "2025-08-06T04:54:06Z"
|
||||
},
|
||||
{
|
||||
"name": "MediaBrowser/Emby.Releases",
|
||||
"version": "4.9.1.2",
|
||||
"date": "2025-06-26T22:08:00Z"
|
||||
},
|
||||
{
|
||||
"name": "ollama/ollama",
|
||||
"version": "v0.11.3",
|
||||
"date": "2025-08-06T01:29:59Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v3.6.2",
|
||||
"date": "2025-07-17T12:08:03Z"
|
||||
},
|
||||
{
|
||||
"name": "autobrr/autobrr",
|
||||
"version": "v1.65.0",
|
||||
"date": "2025-08-05T21:12:35Z"
|
||||
},
|
||||
{
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.0.14",
|
||||
"date": "2025-08-01T11:29:12Z"
|
||||
},
|
||||
{
|
||||
"name": "HabitRPG/habitica",
|
||||
"version": "v5.38.1",
|
||||
"date": "2025-08-05T19:33:40Z"
|
||||
},
|
||||
{
|
||||
"name": "YunoHost/yunohost",
|
||||
"version": "debian/12.1.7.1",
|
||||
"date": "2025-08-05T17:30:05Z"
|
||||
},
|
||||
{
|
||||
"name": "WordPress/WordPress",
|
||||
"version": "4.7.30",
|
||||
"date": "2025-08-05T17:23:06Z"
|
||||
},
|
||||
{
|
||||
"name": "ErsatzTV/ErsatzTV",
|
||||
"version": "v25.4.0",
|
||||
"date": "2025-08-05T17:10:01Z"
|
||||
},
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "prototype-webhooks-0",
|
||||
"date": "2025-08-05T16:55:32Z"
|
||||
},
|
||||
{
|
||||
"name": "jenkinsci/jenkins",
|
||||
"version": "jenkins-2.522",
|
||||
"date": "2025-08-05T15:33:22Z"
|
||||
},
|
||||
{
|
||||
"name": "n8n-io/n8n",
|
||||
"version": "n8n@1.105.3",
|
||||
"date": "2025-08-05T13:06:29Z"
|
||||
},
|
||||
{
|
||||
"name": "apache/cassandra",
|
||||
"version": "cassandra-5.0.5",
|
||||
"date": "2025-08-05T12:08:49Z"
|
||||
},
|
||||
{
|
||||
"name": "cloudreve/cloudreve",
|
||||
"version": "4.4.0",
|
||||
"date": "2025-08-05T11:51:08Z"
|
||||
},
|
||||
{
|
||||
"name": "semaphoreui/semaphore",
|
||||
"version": "v2.15.5",
|
||||
"date": "2025-08-05T11:49:45Z"
|
||||
},
|
||||
{
|
||||
"name": "sabnzbd/sabnzbd",
|
||||
"version": "4.5.2",
|
||||
"date": "2025-07-09T19:08:28Z"
|
||||
},
|
||||
{
|
||||
"name": "zitadel/zitadel",
|
||||
"version": "v2.71.14",
|
||||
"date": "2025-08-05T09:48:52Z"
|
||||
},
|
||||
{
|
||||
"name": "binwiederhier/ntfy",
|
||||
"version": "v2.14.0",
|
||||
"date": "2025-08-05T08:31:35Z"
|
||||
},
|
||||
{
|
||||
"name": "bunkerity/bunkerweb",
|
||||
"version": "v1.6.3",
|
||||
"date": "2025-08-05T07:46:45Z"
|
||||
},
|
||||
{
|
||||
"name": "jupyter/notebook",
|
||||
"version": "v7.4.5",
|
||||
"date": "2025-08-05T07:41:04Z"
|
||||
},
|
||||
{
|
||||
"name": "mattermost/mattermost",
|
||||
"version": "server/public/v0.1.16",
|
||||
"date": "2025-07-28T22:46:46Z"
|
||||
},
|
||||
{
|
||||
"name": "rogerfar/rdt-client",
|
||||
"version": "v2.0.116",
|
||||
"date": "2025-08-05T04:45:21Z"
|
||||
},
|
||||
{
|
||||
"name": "esphome/esphome",
|
||||
"version": "2025.7.5",
|
||||
"date": "2025-08-05T03:37:52Z"
|
||||
},
|
||||
{
|
||||
"name": "go-gitea/gitea",
|
||||
"version": "v1.24.4",
|
||||
"date": "2025-08-04T18:58:27Z"
|
||||
},
|
||||
{
|
||||
"name": "runtipi/runtipi",
|
||||
"version": "nightly",
|
||||
"date": "2025-08-04T18:08:42Z"
|
||||
},
|
||||
{
|
||||
"name": "Dolibarr/dolibarr",
|
||||
"version": "22.0.0",
|
||||
"date": "2025-08-04T16:23:05Z"
|
||||
},
|
||||
{
|
||||
"name": "bunkerity/bunkerweb",
|
||||
"version": "v1.6.2",
|
||||
"date": "2025-07-08T13:52:33Z"
|
||||
},
|
||||
{
|
||||
"name": "YunoHost/yunohost",
|
||||
"version": "debian/12.1.7",
|
||||
"date": "2025-08-04T15:33:31Z"
|
||||
},
|
||||
{
|
||||
"name": "wizarrrr/wizarr",
|
||||
"version": "2025.8.1",
|
||||
"date": "2025-08-04T15:23:03Z"
|
||||
},
|
||||
{
|
||||
"name": "fuma-nama/fumadocs",
|
||||
"version": "fumadocs-ui@15.6.9",
|
||||
"date": "2025-08-04T15:14:52Z"
|
||||
},
|
||||
{
|
||||
"name": "VictoriaMetrics/VictoriaMetrics",
|
||||
"version": "pmm-6401-v1.123.0",
|
||||
@ -64,21 +279,6 @@
|
||||
"version": "10.1.44",
|
||||
"date": "2025-08-04T13:17:59Z"
|
||||
},
|
||||
{
|
||||
"name": "n8n-io/n8n",
|
||||
"version": "n8n@1.104.2",
|
||||
"date": "2025-07-31T13:14:26Z"
|
||||
},
|
||||
{
|
||||
"name": "meilisearch/meilisearch",
|
||||
"version": "latest",
|
||||
"date": "2025-08-04T12:41:18Z"
|
||||
},
|
||||
{
|
||||
"name": "Checkmk/checkmk",
|
||||
"version": "v2.4.0p9-rc1",
|
||||
"date": "2025-08-04T12:19:49Z"
|
||||
},
|
||||
{
|
||||
"name": "rabbitmq/rabbitmq-server",
|
||||
"version": "v4.1.3",
|
||||
@ -94,36 +294,16 @@
|
||||
"version": "v1.14.0",
|
||||
"date": "2025-08-04T10:55:20Z"
|
||||
},
|
||||
{
|
||||
"name": "home-assistant/core",
|
||||
"version": "2025.7.4",
|
||||
"date": "2025-07-28T08:15:50Z"
|
||||
},
|
||||
{
|
||||
"name": "evcc-io/evcc",
|
||||
"version": "0.207.1",
|
||||
"date": "2025-08-04T06:56:14Z"
|
||||
},
|
||||
{
|
||||
"name": "Jackett/Jackett",
|
||||
"version": "v0.22.2225",
|
||||
"date": "2025-08-04T06:35:27Z"
|
||||
},
|
||||
{
|
||||
"name": "henrygd/beszel",
|
||||
"version": "v0.12.3",
|
||||
"date": "2025-08-04T02:21:16Z"
|
||||
},
|
||||
{
|
||||
"name": "steveiliop56/tinyauth",
|
||||
"version": "v3.6.2",
|
||||
"date": "2025-07-17T12:08:03Z"
|
||||
},
|
||||
{
|
||||
"name": "garethgeorge/backrest",
|
||||
"version": "v1.9.0",
|
||||
"date": "2025-08-04T00:12:47Z"
|
||||
},
|
||||
{
|
||||
"name": "benjaminjonard/koillection",
|
||||
"version": "1.6.18",
|
||||
@ -169,11 +349,6 @@
|
||||
"version": "v5.26.2.10099",
|
||||
"date": "2025-06-11T20:10:39Z"
|
||||
},
|
||||
{
|
||||
"name": "MediaBrowser/Emby.Releases",
|
||||
"version": "4.9.1.2",
|
||||
"date": "2025-06-26T22:08:00Z"
|
||||
},
|
||||
{
|
||||
"name": "advplyr/audiobookshelf",
|
||||
"version": "v2.27.0",
|
||||
@ -189,11 +364,6 @@
|
||||
"version": "v2.7.4",
|
||||
"date": "2025-08-02T16:51:19Z"
|
||||
},
|
||||
{
|
||||
"name": "msgbyte/tianji",
|
||||
"version": "v1.24.9",
|
||||
"date": "2025-08-02T16:46:17Z"
|
||||
},
|
||||
{
|
||||
"name": "actualbudget/actual",
|
||||
"version": "v25.8.0",
|
||||
@ -209,11 +379,6 @@
|
||||
"version": "v4.2.5",
|
||||
"date": "2025-08-02T08:58:21Z"
|
||||
},
|
||||
{
|
||||
"name": "theonedev/onedev",
|
||||
"version": "v12.0.3",
|
||||
"date": "2025-08-02T08:16:46Z"
|
||||
},
|
||||
{
|
||||
"name": "pocketbase/pocketbase",
|
||||
"version": "v0.29.1",
|
||||
@ -224,11 +389,6 @@
|
||||
"version": "v0.22.2",
|
||||
"date": "2025-08-01T23:27:06Z"
|
||||
},
|
||||
{
|
||||
"name": "influxdata/influxdb",
|
||||
"version": "v1.12.2rc0",
|
||||
"date": "2025-08-01T21:48:30Z"
|
||||
},
|
||||
{
|
||||
"name": "homarr-labs/homarr",
|
||||
"version": "v1.31.0",
|
||||
@ -249,11 +409,6 @@
|
||||
"version": "3.2.0",
|
||||
"date": "2025-08-01T14:49:29Z"
|
||||
},
|
||||
{
|
||||
"name": "keycloak/keycloak",
|
||||
"version": "26.0.14",
|
||||
"date": "2025-08-01T11:29:12Z"
|
||||
},
|
||||
{
|
||||
"name": "documenso/documenso",
|
||||
"version": "v1.12.2-rc.3",
|
||||
@ -264,16 +419,16 @@
|
||||
"version": "2025.07.31",
|
||||
"date": "2025-08-01T14:44:48Z"
|
||||
},
|
||||
{
|
||||
"name": "neo4j/neo4j",
|
||||
"version": "2025.07.1",
|
||||
"date": "2025-08-01T14:40:28Z"
|
||||
},
|
||||
{
|
||||
"name": "element-hq/synapse",
|
||||
"version": "v1.135.0",
|
||||
"date": "2025-08-01T12:43:17Z"
|
||||
},
|
||||
{
|
||||
"name": "neo4j/neo4j",
|
||||
"version": "5.26.10",
|
||||
"date": "2025-08-01T09:43:18Z"
|
||||
},
|
||||
{
|
||||
"name": "crowdsecurity/crowdsec",
|
||||
"version": "v1.6.11",
|
||||
@ -284,11 +439,6 @@
|
||||
"version": "v11.0.1",
|
||||
"date": "2025-08-01T07:43:59Z"
|
||||
},
|
||||
{
|
||||
"name": "mattermost/mattermost",
|
||||
"version": "server/public/v0.1.16",
|
||||
"date": "2025-07-28T22:46:46Z"
|
||||
},
|
||||
{
|
||||
"name": "gotson/komga",
|
||||
"version": "1.23.1",
|
||||
@ -299,11 +449,6 @@
|
||||
"version": "v1.7.1",
|
||||
"date": "2025-07-31T22:26:54Z"
|
||||
},
|
||||
{
|
||||
"name": "zitadel/zitadel",
|
||||
"version": "v4.0.0",
|
||||
"date": "2025-07-31T20:05:45Z"
|
||||
},
|
||||
{
|
||||
"name": "lazy-media/Reactive-Resume",
|
||||
"version": "v1.2.3",
|
||||
@ -319,31 +464,11 @@
|
||||
"version": "2.0.1",
|
||||
"date": "2025-07-31T17:29:38Z"
|
||||
},
|
||||
{
|
||||
"name": "TryGhost/Ghost-CLI",
|
||||
"version": "v1.28.2",
|
||||
"date": "2025-07-31T15:02:56Z"
|
||||
},
|
||||
{
|
||||
"name": "NodeBB/NodeBB",
|
||||
"version": "v3.12.8",
|
||||
"date": "2025-07-31T14:00:13Z"
|
||||
},
|
||||
{
|
||||
"name": "Stirling-Tools/Stirling-PDF",
|
||||
"version": "v1.1.1",
|
||||
"date": "2025-07-31T12:16:54Z"
|
||||
},
|
||||
{
|
||||
"name": "apache/cassandra",
|
||||
"version": "5.0.5-tentative",
|
||||
"date": "2025-07-31T09:40:54Z"
|
||||
},
|
||||
{
|
||||
"name": "ollama/ollama",
|
||||
"version": "v0.10.1",
|
||||
"date": "2025-07-31T04:39:49Z"
|
||||
},
|
||||
{
|
||||
"name": "coder/code-server",
|
||||
"version": "v4.102.3",
|
||||
@ -359,16 +484,6 @@
|
||||
"version": "v0.7.18-beta",
|
||||
"date": "2025-07-30T21:26:00Z"
|
||||
},
|
||||
{
|
||||
"name": "fallenbagel/jellyseerr",
|
||||
"version": "preview-fix-invalid-blacklisttag",
|
||||
"date": "2025-07-30T20:30:29Z"
|
||||
},
|
||||
{
|
||||
"name": "semaphoreui/semaphore",
|
||||
"version": "v2.16.0-beta6",
|
||||
"date": "2025-07-23T19:18:14Z"
|
||||
},
|
||||
{
|
||||
"name": "oauth2-proxy/oauth2-proxy",
|
||||
"version": "v7.11.0",
|
||||
@ -409,11 +524,6 @@
|
||||
"version": "v1.5.3-beta.10",
|
||||
"date": "2025-07-15T06:07:03Z"
|
||||
},
|
||||
{
|
||||
"name": "jenkinsci/jenkins",
|
||||
"version": "jenkins-2.521",
|
||||
"date": "2025-07-30T03:38:59Z"
|
||||
},
|
||||
{
|
||||
"name": "OliveTin/OliveTin",
|
||||
"version": "2025.7.29",
|
||||
@ -439,21 +549,11 @@
|
||||
"version": "4.1.0",
|
||||
"date": "2025-07-29T15:15:26Z"
|
||||
},
|
||||
{
|
||||
"name": "rogerfar/rdt-client",
|
||||
"version": "v2.0.115",
|
||||
"date": "2025-07-29T04:38:35Z"
|
||||
},
|
||||
{
|
||||
"name": "diced/zipline",
|
||||
"version": "v4.2.1",
|
||||
"date": "2025-07-28T19:25:48Z"
|
||||
},
|
||||
{
|
||||
"name": "HabitRPG/habitica",
|
||||
"version": "v5.38.0",
|
||||
"date": "2025-07-28T19:17:42Z"
|
||||
},
|
||||
{
|
||||
"name": "navidrome/navidrome",
|
||||
"version": "v0.58.0",
|
||||
@ -464,26 +564,11 @@
|
||||
"version": "v0.107.64",
|
||||
"date": "2025-07-28T14:24:56Z"
|
||||
},
|
||||
{
|
||||
"name": "booklore-app/BookLore",
|
||||
"version": "v0.35.0",
|
||||
"date": "2025-07-28T14:20:30Z"
|
||||
},
|
||||
{
|
||||
"name": "Graylog2/graylog2-server",
|
||||
"version": "7.0.0-alpha.1",
|
||||
"date": "2025-07-28T11:28:22Z"
|
||||
},
|
||||
{
|
||||
"name": "PrivateBin/PrivateBin",
|
||||
"version": "2.0.0",
|
||||
"date": "2025-07-28T07:48:40Z"
|
||||
},
|
||||
{
|
||||
"name": "esphome/esphome",
|
||||
"version": "2025.7.4",
|
||||
"date": "2025-07-28T07:33:36Z"
|
||||
},
|
||||
{
|
||||
"name": "umami-software/umami",
|
||||
"version": "v2.19.0",
|
||||
@ -499,11 +584,6 @@
|
||||
"version": "2.1.3",
|
||||
"date": "2025-07-26T14:19:00Z"
|
||||
},
|
||||
{
|
||||
"name": "openobserve/openobserve",
|
||||
"version": "v0.15.0-rc4",
|
||||
"date": "2025-07-25T16:50:34Z"
|
||||
},
|
||||
{
|
||||
"name": "emqx/emqx",
|
||||
"version": "e6.0.0-M2.202508-alpha.1",
|
||||
@ -519,11 +599,6 @@
|
||||
"version": "v12.0.1",
|
||||
"date": "2025-07-25T11:54:30Z"
|
||||
},
|
||||
{
|
||||
"name": "ErsatzTV/ErsatzTV",
|
||||
"version": "v25.3.1",
|
||||
"date": "2025-07-25T03:39:31Z"
|
||||
},
|
||||
{
|
||||
"name": "Brandawg93/PeaNUT",
|
||||
"version": "v5.10.0",
|
||||
@ -564,11 +639,6 @@
|
||||
"version": "v1.37.0.5076",
|
||||
"date": "2025-06-04T11:04:53Z"
|
||||
},
|
||||
{
|
||||
"name": "cockpit-project/cockpit",
|
||||
"version": "343",
|
||||
"date": "2025-07-23T11:21:34Z"
|
||||
},
|
||||
{
|
||||
"name": "jhuckaby/Cronicle",
|
||||
"version": "v0.9.85",
|
||||
@ -594,11 +664,6 @@
|
||||
"version": "v4.0.0",
|
||||
"date": "2025-07-21T21:05:02Z"
|
||||
},
|
||||
{
|
||||
"name": "autobrr/autobrr",
|
||||
"version": "v1.64.0",
|
||||
"date": "2025-07-21T20:56:33Z"
|
||||
},
|
||||
{
|
||||
"name": "tobychui/zoraxy",
|
||||
"version": "v3.2.5r2",
|
||||
@ -614,11 +679,6 @@
|
||||
"version": "v1.13.1",
|
||||
"date": "2025-07-21T11:57:03Z"
|
||||
},
|
||||
{
|
||||
"name": "nzbgetcom/nzbget",
|
||||
"version": "v25.2",
|
||||
"date": "2025-07-04T08:21:42Z"
|
||||
},
|
||||
{
|
||||
"name": "openhab/openhab-core",
|
||||
"version": "5.0.0",
|
||||
@ -654,11 +714,6 @@
|
||||
"version": "v5.6.0",
|
||||
"date": "2025-07-19T13:34:36Z"
|
||||
},
|
||||
{
|
||||
"name": "cross-seed/cross-seed",
|
||||
"version": "v6.13.1",
|
||||
"date": "2025-07-17T21:36:42Z"
|
||||
},
|
||||
{
|
||||
"name": "duplicati/duplicati",
|
||||
"version": "v2.1.1.0-2.1.1.0_experimental_2025-07-17",
|
||||
@ -694,16 +749,6 @@
|
||||
"version": "v2.1.1",
|
||||
"date": "2025-07-15T22:38:01Z"
|
||||
},
|
||||
{
|
||||
"name": "WordPress/WordPress",
|
||||
"version": "6.8.2",
|
||||
"date": "2025-07-15T15:14:16Z"
|
||||
},
|
||||
{
|
||||
"name": "cloudreve/cloudreve",
|
||||
"version": "4.3.0",
|
||||
"date": "2025-07-15T09:54:38Z"
|
||||
},
|
||||
{
|
||||
"name": "pi-hole/pi-hole",
|
||||
"version": "v6.1.4",
|
||||
@ -754,36 +799,16 @@
|
||||
"version": "flowise@3.0.4",
|
||||
"date": "2025-07-11T13:26:54Z"
|
||||
},
|
||||
{
|
||||
"name": "outline/outline",
|
||||
"version": "v0.85.1",
|
||||
"date": "2025-07-11T01:17:53Z"
|
||||
},
|
||||
{
|
||||
"name": "LibreTranslate/LibreTranslate",
|
||||
"version": "v1.7.2",
|
||||
"date": "2025-07-10T19:29:26Z"
|
||||
},
|
||||
{
|
||||
"name": "binwiederhier/ntfy",
|
||||
"version": "v2.13.0",
|
||||
"date": "2025-07-10T19:27:54Z"
|
||||
},
|
||||
{
|
||||
"name": "NginxProxyManager/nginx-proxy-manager",
|
||||
"version": "v2.12.6",
|
||||
"date": "2025-07-09T21:52:15Z"
|
||||
},
|
||||
{
|
||||
"name": "apache/tika",
|
||||
"version": "3.2.1",
|
||||
"date": "2025-07-09T20:47:29Z"
|
||||
},
|
||||
{
|
||||
"name": "sabnzbd/sabnzbd",
|
||||
"version": "4.5.2",
|
||||
"date": "2025-07-09T19:08:28Z"
|
||||
},
|
||||
{
|
||||
"name": "hargata/lubelog",
|
||||
"version": "v1.4.9",
|
||||
@ -834,11 +859,6 @@
|
||||
"version": "v0.8.7",
|
||||
"date": "2025-07-05T20:08:58Z"
|
||||
},
|
||||
{
|
||||
"name": "runtipi/runtipi",
|
||||
"version": "v4.3.0",
|
||||
"date": "2025-07-05T12:14:52Z"
|
||||
},
|
||||
{
|
||||
"name": "kimai/kimai",
|
||||
"version": "2.37.0",
|
||||
@ -874,11 +894,6 @@
|
||||
"version": "v2.32.0",
|
||||
"date": "2025-06-30T22:12:48Z"
|
||||
},
|
||||
{
|
||||
"name": "jupyter/notebook",
|
||||
"version": "v7.4.4",
|
||||
"date": "2025-06-30T13:04:22Z"
|
||||
},
|
||||
{
|
||||
"name": "typesense/typesense",
|
||||
"version": "v29.0",
|
||||
@ -1009,11 +1024,6 @@
|
||||
"version": "v0.26.1",
|
||||
"date": "2025-06-06T11:22:02Z"
|
||||
},
|
||||
{
|
||||
"name": "MariaDB/server",
|
||||
"version": "mariadb-11.8.2",
|
||||
"date": "2025-06-04T13:35:16Z"
|
||||
},
|
||||
{
|
||||
"name": "plankanban/planka",
|
||||
"version": "planka-1.0.3",
|
||||
@ -1054,11 +1064,6 @@
|
||||
"version": "0.19.2",
|
||||
"date": "2025-05-29T14:39:17Z"
|
||||
},
|
||||
{
|
||||
"name": "Athou/commafeed",
|
||||
"version": "5.10.0",
|
||||
"date": "2025-05-28T05:48:20Z"
|
||||
},
|
||||
{
|
||||
"name": "stonith404/pingvin-share",
|
||||
"version": "v1.13.0",
|
||||
@ -1084,11 +1089,6 @@
|
||||
"version": "v0.0.8",
|
||||
"date": "2025-05-18T11:37:31Z"
|
||||
},
|
||||
{
|
||||
"name": "bastienwirtz/homer",
|
||||
"version": "v25.05.2",
|
||||
"date": "2025-05-17T12:53:29Z"
|
||||
},
|
||||
{
|
||||
"name": "motioneye-project/motioneye",
|
||||
"version": "0.42.1",
|
||||
|
||||
@ -40,6 +40,7 @@ msg_ok "Set up PostgreSQL"
|
||||
msg_info "Setting up OpenProject Repository"
|
||||
curl -fsSL "https://dl.packager.io/srv/opf/openproject/key" | gpg --dearmor >/etc/apt/trusted.gpg.d/packager-io.gpg
|
||||
curl -fsSL "https://dl.packager.io/srv/opf/openproject/stable/15/installer/debian/12.repo" -o "/etc/apt/sources.list.d/openproject.list"
|
||||
$STD apt-get update
|
||||
msg_ok "Setup OpenProject Repository"
|
||||
|
||||
msg_info "Installing OpenProject"
|
||||
|
||||
@ -32,7 +32,7 @@ msg_ok "Certificate Generated"
|
||||
|
||||
msg_info "Configuring Environment"
|
||||
mkdir -p /opt/privatebin/data
|
||||
cp cfg/conf.sample.php /opt/privatebin/cfg/conf.php
|
||||
cp /opt/privatebin/cfg/conf.sample.php /opt/privatebin/cfg/conf.php
|
||||
sed -i "s|// 'traffic'|'traffic'|g" /opt/privatebin/cfg/conf.php
|
||||
chown -R www-data:www-data /opt/privatebin
|
||||
chmod -R 0755 /opt/privatebin/data
|
||||
|
||||
@ -13,16 +13,12 @@ setting_up_container
|
||||
network_check
|
||||
update_os
|
||||
|
||||
msg_info "Installing Prometheus Alertmanager"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/prometheus/alertmanager/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
mkdir -p /etc/alertmanager
|
||||
mkdir -p /var/lib/alertmanager
|
||||
curl -fsSL "https://github.com/prometheus/alertmanager/releases/download/v${RELEASE}/alertmanager-${RELEASE}.linux-amd64.tar.gz" -o "alertmanager-${RELEASE}.linux-amd64.tar.gz"
|
||||
tar -xf alertmanager-${RELEASE}.linux-amd64.tar.gz
|
||||
mv alertmanager-${RELEASE}.linux-amd64/alertmanager alertmanager-${RELEASE}.linux-amd64/amtool /usr/local/bin/
|
||||
mv alertmanager-${RELEASE}.linux-amd64/alertmanager.yml /etc/alertmanager/alertmanager.yml
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
msg_ok "Installed Prometheus Alertmanager"
|
||||
fetch_and_deploy_gh_release "alertmanager" "prometheus/alertmanager" "prebuild" "latest" "/usr/local/bin/" "alertmanager*linux-amd64.tar.gz"
|
||||
|
||||
msg_info "Configuring Prometheus Alertmanager"
|
||||
mkdir -p /etc/alertmanager /var/lib/alertmanager
|
||||
mv /usr/local/bin/alertmanager.yml /etc/alertmanager/alertmanager.yml
|
||||
msg_ok "Configured Prometheus Alertmanager"
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/prometheus-alertmanager.service
|
||||
@ -53,5 +49,4 @@ customize
|
||||
msg_info "Cleaning up"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
rm -rf alertmanager-${RELEASE}.linux-amd64 alertmanager-${RELEASE}.linux-amd64.tar.gz
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@ -20,37 +20,23 @@ $STD apt-get install -y \
|
||||
policykit-1
|
||||
msg_ok "Installed Dependencies"
|
||||
|
||||
msg_info "Creating dedicated user pulse..."
|
||||
msg_info "Creating User"
|
||||
if useradd -r -m -d /opt/pulse-home -s /bin/bash pulse; then
|
||||
msg_ok "User created."
|
||||
msg_ok "Created User"
|
||||
else
|
||||
msg_error "User creation failed."
|
||||
msg_error "User creation failed"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
NODE_VERSION="20" setup_nodejs
|
||||
|
||||
msg_info "Setup Pulse"
|
||||
RELEASE=$(curl -fsSL https://api.github.com/repos/rcourtman/Pulse/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4) }')
|
||||
temp_file=$(mktemp)
|
||||
mkdir -p /opt/pulse
|
||||
curl -fsSL "https://github.com/rcourtman/Pulse/releases/download/v${RELEASE}/pulse-v${RELEASE}.tar.gz" -o "$temp_file"
|
||||
tar zxf "$temp_file" --strip-components=1 -C /opt/pulse
|
||||
touch /opt/pulse/.env
|
||||
chown pulse:pulse /opt/pulse/.env
|
||||
echo "${RELEASE}" >/opt/${APPLICATION}_version.txt
|
||||
mkdir -p /etc/pulse
|
||||
fetch_and_deploy_gh_release "pulse" "rcourtman/Pulse" "prebuild" "latest" "/opt/pulse" "*-linux-amd64.tar.gz"
|
||||
chown -R pulse:pulse /etc/pulse /opt/pulse
|
||||
msg_ok "Installed Pulse"
|
||||
|
||||
msg_info "Setting permissions for /opt/pulse..."
|
||||
chown -R pulse:pulse "/opt/pulse"
|
||||
find "/opt/pulse" -type d -exec chmod 755 {} \;
|
||||
find "/opt/pulse" -type f -exec chmod 644 {} \;
|
||||
msg_ok "Set permissions."
|
||||
|
||||
msg_info "Creating Service"
|
||||
cat <<EOF >/etc/systemd/system/pulse.service
|
||||
[Unit]
|
||||
Description=Pulse Monitoring Application
|
||||
Description=Pulse Monitoring Server
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
@ -58,12 +44,13 @@ Type=simple
|
||||
User=pulse
|
||||
Group=pulse
|
||||
WorkingDirectory=/opt/pulse
|
||||
EnvironmentFile=/opt/pulse/.env
|
||||
ExecStart=/usr/bin/npm run start
|
||||
Restart=on-failure
|
||||
RestartSec=5
|
||||
ExecStart=/opt/pulse/pulse
|
||||
Restart=always
|
||||
RestartSec=3
|
||||
StandardOutput=journal
|
||||
StandardError=journal
|
||||
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
||||
Environment="PULSE_DATA_DIR=/etc/pulse"
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
@ -75,7 +62,6 @@ motd_ssh
|
||||
customize
|
||||
|
||||
msg_info "Cleaning up"
|
||||
rm -f "$temp_file"
|
||||
$STD apt-get -y autoremove
|
||||
$STD apt-get -y autoclean
|
||||
msg_ok "Cleaned"
|
||||
|
||||
@ -65,36 +65,36 @@ root_check() {
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
@ -1030,10 +1030,9 @@ check_container_resources() {
|
||||
if [[ "$current_ram" -lt "$var_ram" ]] || [[ "$current_cpu" -lt "$var_cpu" ]]; then
|
||||
echo -e "\n${INFO}${HOLD} ${GN}Required: ${var_cpu} CPU, ${var_ram}MB RAM ${CL}| ${RD}Current: ${current_cpu} CPU, ${current_ram}MB RAM${CL}"
|
||||
echo -e "${YWB}Please ensure that the ${APP} LXC is configured with at least ${var_cpu} vCPU and ${var_ram} MB RAM for the build process.${CL}\n"
|
||||
echo -ne "${INFO}${HOLD} May cause data loss! ${INFO} Continue update with under-provisioned LXC? <yes/No> "
|
||||
echo -ne "${INFO}${HOLD} May cause data loss! ${INFO} Continue update with under-provisioned LXC? [y/N] "
|
||||
read -r prompt
|
||||
# Check if the input is 'yes', otherwise exit with status 1
|
||||
if [[ ! ${prompt,,} =~ ^(yes)$ ]]; then
|
||||
if [[ ! "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
echo -e "${CROSS}${HOLD} ${YWB}Exiting based on user input.${CL}"
|
||||
exit 1
|
||||
fi
|
||||
@ -1050,10 +1049,9 @@ check_container_storage() {
|
||||
if ((usage > 80)); then
|
||||
# Prompt the user for confirmation to continue
|
||||
echo -e "${INFO}${HOLD} ${YWB}Warning: Storage is dangerously low (${usage}%).${CL}"
|
||||
echo -ne "Continue anyway? <y/N> "
|
||||
echo -ne "Continue anyway? [y/N] "
|
||||
read -r prompt
|
||||
# Check if the input is 'y' or 'yes', otherwise exit with status 1
|
||||
if [[ ! ${prompt,,} =~ ^(y|yes)$ ]]; then
|
||||
if [[ ! "${prompt,,}" =~ ^(y|yes)$ ]]; then
|
||||
echo -e "${CROSS}${HOLD}${YWB}Exiting based on user input.${CL}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Creates a systemd service to disable NIC offloading features for Intel e1000e interfaces
|
||||
# Creates a systemd service to disable NIC offloading features for Intel e1000e and e1000 interfaces
|
||||
# Author: rcastley
|
||||
# License: MIT
|
||||
|
||||
@ -19,8 +19,8 @@ INFO="${TAB}ℹ️${TAB}${CL}"
|
||||
WARN="${TAB}⚠️${TAB}${CL}"
|
||||
|
||||
function header_info {
|
||||
clear
|
||||
cat <<"EOF"
|
||||
clear
|
||||
cat <<"EOF"
|
||||
|
||||
_ ____________ ____ __________ ___ ____ _ __ __
|
||||
/ | / / _/ ____/ / __ \/ __/ __/ /___ ____ _____/ (_)___ ____ _ / __ \(_)________ _/ /_ / /__ _____
|
||||
@ -28,6 +28,7 @@ function header_info {
|
||||
/ /| // // /___ / /_/ / __/ __/ / /_/ / /_/ / /_/ / / / / / /_/ / / /_/ / (__ ) /_/ / /_/ / / __/ /
|
||||
/_/ |_/___/\____/ \____/_/ /_/ /_/\____/\__,_/\__,_/_/_/ /_/\__, / /_____/_/____/\__,_/_.___/_/\___/_/
|
||||
/____/
|
||||
Enhanced version supporting both e1000e and e1000 drivers
|
||||
|
||||
EOF
|
||||
}
|
||||
@ -52,36 +53,36 @@ if ! command -v ethtool >/dev/null 2>&1; then
|
||||
msg_ok "ethtool installed successfully"
|
||||
fi
|
||||
|
||||
# Get list of network interfaces using Intel e1000e driver
|
||||
# Get list of network interfaces using Intel e1000e or e1000 drivers
|
||||
INTERFACES=()
|
||||
COUNT=0
|
||||
|
||||
msg_info "Searching for Intel e1000e interfaces"
|
||||
msg_info "Searching for Intel e1000e and e1000 interfaces"
|
||||
|
||||
for device in /sys/class/net/*; do
|
||||
interface="$(basename "$device")" # or adjust the rest of the usages below, as mostly you'll use the path anyway
|
||||
# Skip loopback interface and virtual interfaces
|
||||
if [[ "$interface" != "lo" ]] && [[ ! "$interface" =~ ^(tap|fwbr|veth|vmbr|bonding_masters) ]]; then
|
||||
# Check if the interface uses the e1000e driver
|
||||
# Check if the interface uses the e1000e or e1000 driver
|
||||
driver=$(basename $(readlink -f /sys/class/net/$interface/device/driver 2>/dev/null) 2>/dev/null)
|
||||
|
||||
if [[ "$driver" == "e1000e" ]]; then
|
||||
if [[ "$driver" == "e1000e" ]] || [[ "$driver" == "e1000" ]]; then
|
||||
# Get MAC address for additional identification
|
||||
mac=$(cat /sys/class/net/$interface/address 2>/dev/null)
|
||||
INTERFACES+=("$interface" "Intel e1000e NIC ($mac)")
|
||||
INTERFACES+=("$interface" "Intel $driver NIC ($mac)")
|
||||
((COUNT++))
|
||||
fi
|
||||
fi
|
||||
done
|
||||
|
||||
# Check if any Intel e1000e interfaces were found
|
||||
# Check if any Intel e1000e/e1000 interfaces were found
|
||||
if [ ${#INTERFACES[@]} -eq 0 ]; then
|
||||
whiptail --title "Error" --msgbox "No Intel e1000e network interfaces found!" 10 60
|
||||
msg_error "No Intel e1000e network interfaces found! Exiting."
|
||||
whiptail --title "Error" --msgbox "No Intel e1000e or e1000 network interfaces found!" 10 60
|
||||
msg_error "No Intel e1000e or e1000 network interfaces found! Exiting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
msg_ok "Found ${BL}$COUNT${GN} Intel e1000e interfaces"
|
||||
msg_ok "Found ${BL}$COUNT${GN} Intel e1000e/e1000 interfaces"
|
||||
|
||||
# Create a checklist for interface selection with all interfaces initially checked
|
||||
INTERFACES_CHECKLIST=()
|
||||
@ -90,9 +91,9 @@ for ((i=0; i<${#INTERFACES[@]}; i+=2)); do
|
||||
done
|
||||
|
||||
# Show interface selection checklist
|
||||
SELECTED_INTERFACES=$(whiptail --backtitle "Intel e1000e NIC Offloading Disabler" --title "Network Interfaces" \
|
||||
--separate-output --checklist "Select Intel e1000e network interfaces\n(Space to toggle, Enter to confirm):" 15 80 6 \
|
||||
"${INTERFACES_CHECKLIST[@]}" 3>&1 1>&2 2>&3)
|
||||
SELECTED_INTERFACES=$(whiptail --backtitle "Intel e1000e/e1000 NIC Offloading Disabler" --title "Network Interfaces" \
|
||||
--separate-output --checklist "Select Intel e1000e/e1000 network interfaces\n(Space to toggle, Enter to confirm):" 15 80 6 \
|
||||
"${INTERFACES_CHECKLIST[@]}" 3>&1 1>&2 2>&3)
|
||||
|
||||
exitstatus=$?
|
||||
if [ $exitstatus != 0 ]; then
|
||||
@ -112,21 +113,23 @@ readarray -t INTERFACE_ARRAY <<< "$SELECTED_INTERFACES"
|
||||
# Show the number of selected interfaces
|
||||
INTERFACE_COUNT=${#INTERFACE_ARRAY[@]}
|
||||
|
||||
# Print selected interfaces
|
||||
# Print selected interfaces with their driver types
|
||||
for iface in "${INTERFACE_ARRAY[@]}"; do
|
||||
msg_ok "Selected interface: ${BL}$iface${CL}"
|
||||
driver=$(basename $(readlink -f /sys/class/net/$iface/device/driver 2>/dev/null) 2>/dev/null)
|
||||
msg_ok "Selected interface: ${BL}$iface${GN} (${BL}$driver${GN})"
|
||||
done
|
||||
|
||||
# Ask for confirmation with the list of selected interfaces
|
||||
CONFIRMATION_MSG="You have selected the following interface(s):\n\n"
|
||||
for iface in "${INTERFACE_ARRAY[@]}"; do
|
||||
SPEED=$(cat /sys/class/net/$iface/speed 2>/dev/null)
|
||||
SPEED=$(cat /sys/class/net/$iface/speed 2>/dev/null || echo "Unknown")
|
||||
MAC=$(cat /sys/class/net/$iface/address 2>/dev/null)
|
||||
CONFIRMATION_MSG+="- $iface (MAC: $MAC, Speed: ${SPEED}Mbps)\n"
|
||||
DRIVER=$(basename $(readlink -f /sys/class/net/$iface/device/driver 2>/dev/null) 2>/dev/null)
|
||||
CONFIRMATION_MSG+="- $iface (Driver: $DRIVER, MAC: $MAC, Speed: ${SPEED}Mbps)\n"
|
||||
done
|
||||
CONFIRMATION_MSG+="\nThis will create systemd service(s) to disable offloading features.\n\nProceed?"
|
||||
|
||||
if ! whiptail --backtitle "Intel e1000e NIC Offloading Disabler" --title "Confirmation" \
|
||||
if ! whiptail --backtitle "Intel e1000e/e1000 NIC Offloading Disabler" --title "Confirmation" \
|
||||
--yesno "$CONFIRMATION_MSG" 20 80; then
|
||||
msg_info "User canceled. Exiting."
|
||||
exit 0
|
||||
@ -134,22 +137,25 @@ fi
|
||||
|
||||
# Loop through all selected interfaces and create services for each
|
||||
for SELECTED_INTERFACE in "${INTERFACE_ARRAY[@]}"; do
|
||||
# Get the driver type for this specific interface
|
||||
DRIVER=$(basename $(readlink -f /sys/class/net/$SELECTED_INTERFACE/device/driver 2>/dev/null) 2>/dev/null)
|
||||
|
||||
# Create service name for this interface
|
||||
SERVICE_NAME="disable-nic-offload-$SELECTED_INTERFACE.service"
|
||||
SERVICE_PATH="/etc/systemd/system/$SERVICE_NAME"
|
||||
|
||||
# Create the service file with e1000e specific optimizations
|
||||
msg_info "Creating systemd service for interface: ${BL}$SELECTED_INTERFACE${YW}"
|
||||
# Create the service file with driver-specific optimizations
|
||||
msg_info "Creating systemd service for interface: ${BL}$SELECTED_INTERFACE${YW} (${BL}$DRIVER${YW})"
|
||||
|
||||
# Start with the common part of the service file
|
||||
cat > "$SERVICE_PATH" << EOF
|
||||
[Unit]
|
||||
Description=Disable NIC offloading for Intel e1000e interface $SELECTED_INTERFACE
|
||||
Description=Disable NIC offloading for Intel $DRIVER interface $SELECTED_INTERFACE
|
||||
After=network.target
|
||||
|
||||
[Service]
|
||||
Type=oneshot
|
||||
# Disable all offloading features for Intel e1000e
|
||||
# Disable all offloading features for Intel $DRIVER
|
||||
ExecStart=/sbin/ethtool -K $SELECTED_INTERFACE gso off gro off tso off tx off rx off rxvlan off txvlan off sg off
|
||||
RemainAfterExit=true
|
||||
|
||||
@ -176,7 +182,7 @@ EOF
|
||||
# Enable the service to start on boot
|
||||
systemctl enable "$SERVICE_NAME"
|
||||
echo "100"; sleep 0.2
|
||||
} | whiptail --backtitle "Intel e1000e NIC Offloading Disabler" --gauge "Configuring service for $SELECTED_INTERFACE..." 10 80 0
|
||||
} | whiptail --backtitle "Intel e1000e/e1000 NIC Offloading Disabler" --gauge "Configuring service for $SELECTED_INTERFACE..." 10 80 0
|
||||
|
||||
# Individual service status
|
||||
if systemctl is-active --quiet "$SERVICE_NAME"; then
|
||||
@ -192,7 +198,7 @@ EOF
|
||||
fi
|
||||
|
||||
# Show individual service results
|
||||
msg_ok "Service for ${BL}$SELECTED_INTERFACE${GN} created and enabled!"
|
||||
msg_ok "Service for ${BL}$SELECTED_INTERFACE${GN} (${BL}$DRIVER${GN}) created and enabled!"
|
||||
msg_info "${TAB}Service: ${BL}$SERVICE_NAME${YW}"
|
||||
msg_info "${TAB}Status: ${BL}$SERVICE_STATUS${YW}"
|
||||
msg_info "${TAB}Start on boot: ${BL}$BOOT_STATUS${YW}"
|
||||
@ -204,6 +210,8 @@ SUMMARY_MSG+="Configured Interfaces:\n"
|
||||
|
||||
for iface in "${INTERFACE_ARRAY[@]}"; do
|
||||
SERVICE_NAME="disable-nic-offload-$iface.service"
|
||||
DRIVER=$(basename $(readlink -f /sys/class/net/$iface/device/driver 2>/dev/null) 2>/dev/null)
|
||||
|
||||
if systemctl is-active --quiet "$SERVICE_NAME"; then
|
||||
SVC_STATUS="Active"
|
||||
else
|
||||
@ -216,12 +224,20 @@ for iface in "${INTERFACE_ARRAY[@]}"; do
|
||||
BOOT_SVC_STATUS="Disabled"
|
||||
fi
|
||||
|
||||
SUMMARY_MSG+="- $iface: $SVC_STATUS, Boot: $BOOT_SVC_STATUS\n"
|
||||
SUMMARY_MSG+="- $iface ($DRIVER): $SVC_STATUS, Boot: $BOOT_SVC_STATUS\n"
|
||||
done
|
||||
|
||||
# Show summary results
|
||||
whiptail --backtitle "Intel e1000e NIC Offloading Disabler" --title "Success" --msgbox "$SUMMARY_MSG" 20 80
|
||||
whiptail --backtitle "Intel e1000e/e1000 NIC Offloading Disabler" --title "Success" --msgbox "$SUMMARY_MSG" 22 80
|
||||
|
||||
msg_ok "Intel e1000e optimization complete for ${#INTERFACE_ARRAY[@]} interface(s)!"
|
||||
msg_ok "Intel e1000e/e1000 optimization complete for ${#INTERFACE_ARRAY[@]} interface(s)!"
|
||||
|
||||
# Show verification commands
|
||||
echo ""
|
||||
msg_info "Verification commands:"
|
||||
for iface in "${INTERFACE_ARRAY[@]}"; do
|
||||
echo -e "${TAB}${BL}ethtool -k $iface${CL} ${YW}# Check offloading status${CL}"
|
||||
echo -e "${TAB}${BL}systemctl status disable-nic-offload-$iface.service${CL} ${YW}# Check service status${CL}"
|
||||
done
|
||||
|
||||
exit 0
|
||||
|
||||
@ -138,36 +138,37 @@ function check_root() {
|
||||
fi
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
@ -138,36 +138,37 @@ function check_root() {
|
||||
fi
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
@ -139,36 +139,37 @@ function check_root() {
|
||||
fi
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
@ -142,36 +142,37 @@ function check_root() {
|
||||
fi
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
@ -139,36 +139,37 @@ function check_root() {
|
||||
fi
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
@ -138,36 +138,37 @@ function check_root() {
|
||||
fi
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
@ -184,36 +184,37 @@ function msg_error() {
|
||||
echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}"
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
@ -180,36 +180,37 @@ function msg_error() {
|
||||
echo -e "${BFR} ${CROSS} ${RD}${msg}${CL}"
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
@ -139,36 +139,37 @@ function check_root() {
|
||||
fi
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
@ -147,36 +147,37 @@ function check_root() {
|
||||
fi
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
@ -134,36 +134,37 @@ function check_root() {
|
||||
fi
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
@ -137,36 +137,37 @@ function check_root() {
|
||||
fi
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
@ -136,36 +136,37 @@ function check_root() {
|
||||
fi
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
@ -138,36 +138,37 @@ function check_root() {
|
||||
fi
|
||||
}
|
||||
|
||||
# This function checks the version of Proxmox Virtual Environment (PVE) and exits if the version is not supported.
|
||||
# Supported: Proxmox VE 8.0.x – 8.9.x and 9.0 (NOT 9.1+)
|
||||
pve_check() {
|
||||
local PVE_VER
|
||||
PVE_VER="$(pveversion | awk -F'/' '{print $2}' | awk -F'-' '{print $1}')"
|
||||
|
||||
# Check for Proxmox VE 8.x
|
||||
# Check for Proxmox VE 8.x: allow 8.0–8.9
|
||||
if [[ "$PVE_VER" =~ ^8\.([0-9]+) ]]; then
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR < 1 || MINOR > 4)); then
|
||||
if ((MINOR < 0 || MINOR > 9)); then
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Required: Proxmox VE version 8.1 – 8.4"
|
||||
msg_error "Supported: Proxmox VE version 8.0 – 8.9"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Check for Proxmox VE 9.x (Beta) — require confirmation
|
||||
# Check for Proxmox VE 9.x: allow ONLY 9.0
|
||||
if [[ "$PVE_VER" =~ ^9\.([0-9]+) ]]; then
|
||||
if whiptail --title "Proxmox 9.x Detected (Beta)" \
|
||||
--yesno "You are using Proxmox VE $PVE_VER, which is currently in Beta state.\n\nThis version is experimentally supported.\n\nDo you want to proceed anyway?" 12 70; then
|
||||
msg_ok "Confirmed: Continuing with Proxmox VE $PVE_VER"
|
||||
return 0
|
||||
else
|
||||
msg_error "Aborted by user: Proxmox VE 9.x was not confirmed."
|
||||
local MINOR="${BASH_REMATCH[1]}"
|
||||
if ((MINOR != 0)); then
|
||||
msg_error "This version of Proxmox VE is not yet supported."
|
||||
msg_error "Supported: Proxmox VE version 9.0"
|
||||
exit 1
|
||||
fi
|
||||
return 0
|
||||
fi
|
||||
|
||||
# All other unsupported versions
|
||||
msg_error "This version of Proxmox VE is not supported."
|
||||
echo -e "Supported versions: Proxmox VE 8.1 – 8.4 or 9.x (Beta, with confirmation)"
|
||||
msg_error "Supported versions: Proxmox VE 8.0 – 8.x or 9.0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user