Compare commits

..

23 Commits

Author SHA1 Message Date
community-scripts-pr-app[bot]
d4892d299f Update CHANGELOG.md (#10823)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-15 00:14:44 +00:00
community-scripts-pr-app[bot]
c6b01a62f0 Update versions.json (#10822)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-15 01:14:24 +01:00
community-scripts-pr-app[bot]
c41c78a0b2 Update CHANGELOG.md (#10819)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-14 17:04:48 +00:00
CanbiZ (MickLesk)
bdfd72e311 Switch Ollama install to .tar.zst and add zstd dependency (#10814) 2026-01-14 18:04:13 +01:00
community-scripts-pr-app[bot]
fa1f2784f9 Update .app files (#10817)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-01-14 18:01:11 +01:00
community-scripts-pr-app[bot]
b3b4d170b3 Update CHANGELOG.md (#10818)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-14 16:56:48 +00:00
community-scripts-pr-app[bot]
5e8c0d621b Update CHANGELOG.md (#10816)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-14 16:56:20 +00:00
community-scripts-pr-app[bot]
64bd501ed9 Update date in json (#10815)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-01-14 16:56:16 +00:00
push-app-to-main[bot]
95ad02c9ef Kutt (#10812)
* Add kutt (ct)

* Fix success message formatting in kutt.sh

---------

Co-authored-by: push-app-to-main[bot] <203845782+push-app-to-main[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
2026-01-14 17:55:51 +01:00
community-scripts-pr-app[bot]
13decbf3a1 Update CHANGELOG.md (#10811)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-14 16:11:22 +00:00
Chris
c178058315 Install libde265-dev from Testing; refactor install check logic in update (#10810) 2026-01-14 17:10:58 +01:00
CanbiZ
1980e3c47f Usenoninteractive mode for NVIDIA setup
Replaces all apt commands with apt-get for consistency and adds noninteractive environment variables to prevent interactive dialogs during NVIDIA GPU driver installation. Also adds --force-confold to preserve existing config files and ensures smoother automated installs.
2026-01-14 15:51:00 +01:00
community-scripts-pr-app[bot]
b876001ffa Update CHANGELOG.md (#10809)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-14 13:40:21 +00:00
CanbiZ (MickLesk)
ce5ab97737 Improve NVIDIA GPU setup (5000x Series) (#10807) 2026-01-14 14:39:53 +01:00
community-scripts-pr-app[bot]
2aabd0c911 Update versions.json (#10808)
Co-authored-by: GitHub Actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-14 13:07:20 +01:00
community-scripts-pr-app[bot]
5fb3ce7b33 Update CHANGELOG.md (#10803)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-14 09:09:05 +00:00
Bram
bf648203f0 Add search filtering to CommandDialog for improved script search functionality (#10800) 2026-01-14 10:08:44 +01:00
community-scripts-pr-app[bot]
277d1ed5a2 Update CHANGELOG.md (#10801)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-14 09:01:00 +00:00
durzo
97bd4833fd nginxproxymanager: allow updates now the build is fixed (#10796)
* nginxproxymanager: allow updates now the build is fixed

* fix func

* Change release version to 'latest' for deployment

* Update release version fetching for nginxproxymanager

* Update fetch_and_deploy_gh_release to use latest version

---------

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2026-01-14 10:00:32 +01:00
community-scripts-pr-app[bot]
2bc50833d6 Update CHANGELOG.md (#10799)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-14 08:45:43 +00:00
Benjamin Horvat
ff74fdff38 Fixed Apache Guacamole installer (#10798) 2026-01-14 09:45:21 +01:00
community-scripts-pr-app[bot]
dcfeaefad1 Update CHANGELOG.md (#10795)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-01-14 06:23:30 +00:00
Comk22
40933df6f7 Fix whiptail dialog hanging in Proxmox web console (#10794) 2026-01-14 07:22:21 +01:00
19 changed files with 541 additions and 248 deletions

View File

@@ -10,8 +10,39 @@
> [!CAUTION]
Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit the project's popularity for potentially malicious purposes.
## 2026-01-15
## 2026-01-14
### 🆕 New Scripts
- Kutt ([#10812](https://github.com/community-scripts/ProxmoxVE/pull/10812))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- Switch Ollama install to .tar.zst and add zstd dependency [@MickLesk](https://github.com/MickLesk) ([#10814](https://github.com/community-scripts/ProxmoxVE/pull/10814))
- Immich: Install libde265-dev from Debian Testing [@vhsdream](https://github.com/vhsdream) ([#10810](https://github.com/community-scripts/ProxmoxVE/pull/10810))
- nginxproxymanager: allow updates now the build is fixed [@durzo](https://github.com/durzo) ([#10796](https://github.com/community-scripts/ProxmoxVE/pull/10796))
- Fixed Apache Guacamole installer [@horvatbenjamin](https://github.com/horvatbenjamin) ([#10798](https://github.com/community-scripts/ProxmoxVE/pull/10798))
### 💾 Core
- #### ✨ New Features
- core: Improve NVIDIA GPU setup (5000x Series) [@MickLesk](https://github.com/MickLesk) ([#10807](https://github.com/community-scripts/ProxmoxVE/pull/10807))
### 🧰 Tools
- Fix whiptail dialog hanging in Proxmox web console [@comk22](https://github.com/comk22) ([#10794](https://github.com/community-scripts/ProxmoxVE/pull/10794))
### 🌐 Website
- #### 🐞 Bug Fixes
- Add search filtering to CommandDialog for improved script search functionality [@BramSuurdje](https://github.com/BramSuurdje) ([#10800](https://github.com/community-scripts/ProxmoxVE/pull/10800))
## 2026-01-13
### 🆕 New Scripts

6
ct/headers/kutt Normal file
View File

@@ -0,0 +1,6 @@
__ __ __ __
/ //_/_ __/ /_/ /_
/ ,< / / / / __/ __/
/ /| / /_/ / /_/ /_
/_/ |_\__,_/\__/\__/

View File

@@ -57,9 +57,12 @@ EOF
fi
$STD apt update
msg_ok "Added Debian Testing repo"
msg_info "Installing libmimalloc3"
$STD apt install -t testing --no-install-recommends libmimalloc3
msg_ok "Installed libmimalloc3"
fi
if ! dpkg -l "libmimalloc3" | grep -q '3.1' || ! dpkg -l "libde265-dev" | grep -q '1.0.16'; then
msg_info "Installing/upgrading Testing repo packages"
$STD apt install -t testing libmimalloc3 libde265-dev -y
msg_ok "Installed/upgraded Testing repo packages"
fi
if [[ ! -f /etc/apt/sources.list.d/mise.list ]]; then

74
ct/kutt.sh Normal file
View File

@@ -0,0 +1,74 @@
#!/usr/bin/env bash
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/build.func)
# Copyright (c) 2021-2026 community-scripts ORG
# Author: tomfrenzel
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/thedevs-network/kutt
APP="Kutt"
var_tags="${var_tags:-sharing}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-2}"
var_os="${var_os:-debian}"
var_version="${var_version:-13}"
var_unprivileged="${var_unprivileged:-1}"
header_info "$APP"
variables
color
catch_errors
function update_script() {
header_info
check_container_storage
check_container_resources
if [[ ! -d /opt/kutt ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "kutt" "thedevs-network/kutt"; then
msg_info "Stopping services"
systemctl stop kutt
msg_ok "Stopped services"
msg_info "Backing up data"
mkdir -p /opt/kutt-backup
[ -d /opt/kutt/custom ] && cp -r /opt/kutt/custom /opt/kutt-backup/
[ -d /opt/kutt/db ] && cp -r /opt/kutt/db /opt/kutt-backup/
cp /opt/kutt/.env /opt/kutt-backup/
msg_ok "Backed up data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "kutt" "thedevs-network/kutt" "tarball" "latest"
msg_info "Restoring data"
[ -d /opt/kutt-backup/custom ] && cp -r /opt/kutt-backup/custom /opt/kutt/
[ -d /opt/kutt-backup/db ] && cp -r /opt/kutt-backup/db /opt/kutt/
[ -f /opt/kutt-backup/.env ] && cp /opt/kutt-backup/.env /opt/kutt/
rm -rf /opt/kutt-backup
msg_ok "Restored data"
msg_info "Configuring Kutt"
cd /opt/kutt
$STD npm install
$STD npm run migrate
msg_ok "Configured Kutt"
msg_info "Starting services"
systemctl start kutt
msg_ok "Started services"
msg_ok "Updated successfully!"
fi
exit
}
start
build_container
description
msg_ok "Completed successfully!\n"
echo -e "${CREATING}${GN}${APP} setup has been successfully initialized!${CL}"
echo -e "${INFO}${YW} Access it using the following URL:${CL}"
echo -e "${TAB}${GATEWAY}${BGN}https://${IP} or https://<your-Kutt-domain>${CL}"

View File

@@ -49,11 +49,10 @@ function update_script() {
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
#RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest |
#grep "tag_name" |
#awk '{print substr($2, 3, length($2)-4) }')
RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest |
grep "tag_name" |
awk '{print substr($2, 3, length($2)-4) }')
RELEASE="2.13.5"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager" "tarball" "v${RELEASE}" "/opt/nginxproxymanager"
msg_info "Stopping Services"

View File

@@ -32,17 +32,22 @@ function update_script() {
if [[ ! -f /opt/Ollama_version.txt ]]; then
touch /opt/Ollama_version.txt
fi
if ! command -v zstd &>/dev/null; then
msg_info "Installing zstd"
$STD apt install -y zstd
msg_ok "Installed zstd"
fi
msg_info "Stopping Services"
systemctl stop ollama
msg_ok "Services Stopped"
TMP_TAR=$(mktemp --suffix=.tgz)
curl -fL# -C - -o "${TMP_TAR}" "https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tgz"
TMP_TAR=$(mktemp --suffix=.tar.zst)
curl -fL# -C - -o "${TMP_TAR}" "https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tar.zst"
msg_info "Updating Ollama to ${RELEASE}"
rm -rf /usr/local/lib/ollama
rm -rf /usr/local/bin/ollama
mkdir -p /usr/local/lib/ollama
tar -xzf "${TMP_TAR}" -C /usr/local/lib/ollama
tar --zstd -xf "${TMP_TAR}" -C /usr/local/lib/ollama
ln -sf /usr/local/lib/ollama/bin/ollama /usr/local/bin/ollama
rm -f "${TMP_TAR}"
echo "${RELEASE}" >/opt/Ollama_version.txt

View File

@@ -92,12 +92,17 @@ EOF
OLLAMA_VERSION=$(ollama -v | awk '{print $NF}')
RELEASE=$(curl -s https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk '{print substr($2, 3, length($2)-4)}')
if [ "$OLLAMA_VERSION" != "$RELEASE" ]; then
if ! command -v zstd &>/dev/null; then
msg_info "Installing zstd"
$STD apt install -y zstd
msg_ok "Installed zstd"
fi
msg_info "Ollama update available: v$OLLAMA_VERSION -> v$RELEASE"
msg_info "Downloading Ollama v$RELEASE \n"
curl -fS#LO https://ollama.com/download/ollama-linux-amd64.tgz
curl -fS#LO https://github.com/ollama/ollama/releases/download/v${RELEASE}/ollama-linux-amd64.tar.zst
msg_ok "Download Complete"
if [ -f "ollama-linux-amd64.tgz" ]; then
if [ -f "ollama-linux-amd64.tar.zst" ]; then
msg_info "Stopping Ollama Service"
systemctl stop ollama
@@ -106,8 +111,8 @@ EOF
msg_info "Installing Ollama"
rm -rf /usr/lib/ollama
rm -rf /usr/bin/ollama
tar -C /usr -xzf ollama-linux-amd64.tgz
rm -rf ollama-linux-amd64.tgz
tar --zstd -C /usr -xf ollama-linux-amd64.tar.zst
rm -rf ollama-linux-amd64.tar.zst
msg_ok "Installed Ollama"
msg_info "Starting Ollama Service"

View File

@@ -0,0 +1,40 @@
{
"name": "Kutt",
"slug": "kutt",
"categories": [
21
],
"date_created": "2026-01-14",
"type": "ct",
"updateable": true,
"privileged": false,
"interface_port": 443,
"documentation": "https://github.com/thedevs-network/kutt/",
"config_path": "/opt/kutt/.env",
"website": "https://kutt.it",
"logo": "https://cdn.jsdelivr.net/gh/selfhst/icons@main/webp/kutt.webp",
"description": "Kutt is a modern URL shortener with support for custom domains. Create and edit links, view statistics, manage users, and more.",
"install_methods": [
{
"type": "default",
"script": "ct/kutt.sh",
"resources": {
"cpu": 1,
"ram": 1024,
"hdd": 2,
"os": "Debian",
"version": "13"
}
}
],
"default_credentials": {
"username": null,
"password": null
},
"notes": [
{
"text": "Kutt needs so be served with an SSL certificate for its login to work. During install, you will be prompted to choose if you want to have Caddy installed for SSL termination or if you want to use your own reverse proxy (in that case point your reverse porxy to port 3000).",
"type": "info"
}
]
}

View File

@@ -1,9 +1,179 @@
[
{
"name": "chrisbenincasa/tunarr",
"version": "v1.1.0-dev.3",
"date": "2026-01-14T23:18:25Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.95.0-pre",
"date": "2026-01-14T22:24:18Z"
},
{
"name": "livebook-dev/livebook",
"version": "v0.18.3",
"date": "2026-01-14T21:50:55Z"
},
{
"name": "ZoeyVid/NPMplus",
"version": "2025-05-07-r1",
"date": "2025-05-07T12:18:42Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.24.0",
"date": "2026-01-14T21:28:09Z"
},
{
"name": "Kareadita/Kavita",
"version": "v0.8.9",
"date": "2026-01-14T21:26:43Z"
},
{
"name": "emqx/emqx",
"version": "6.0.2-rc.1",
"date": "2026-01-14T19:29:02Z"
},
{
"name": "ghostfolio/ghostfolio",
"version": "2.230.0",
"date": "2026-01-14T19:28:53Z"
},
{
"name": "fccview/jotty",
"version": "1.17.2",
"date": "2026-01-14T19:06:52Z"
},
{
"name": "ollama/ollama",
"version": "v0.14.1",
"date": "2026-01-14T19:02:29Z"
},
{
"name": "keycloak/keycloak",
"version": "26.5.1",
"date": "2026-01-14T18:09:13Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v4.8.0",
"date": "2026-01-14T17:54:36Z"
},
{
"name": "scanopy/scanopy",
"version": "v0.13.6",
"date": "2026-01-14T17:38:28Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@2.3.5",
"date": "2026-01-14T16:37:38Z"
},
{
"name": "Brandawg93/PeaNUT",
"version": "v5.21.0",
"date": "2026-01-14T17:27:55Z"
},
{
"name": "metabase/metabase",
"version": "v0.58.x",
"date": "2026-01-14T17:14:42Z"
},
{
"name": "meilisearch/meilisearch",
"version": "prototype-v1.32.1-clean-old-fids-in-parallel.7",
"date": "2026-01-14T16:47:10Z"
},
{
"name": "alam00000/bentopdf",
"version": "v1.16.0",
"date": "2026-01-14T16:45:03Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v11.10.0",
"date": "2026-01-14T16:11:30Z"
},
{
"name": "Bubka/2FAuth",
"version": "v6.0.0",
"date": "2026-01-14T16:00:58Z"
},
{
"name": "esphome/esphome",
"version": "2025.12.6",
"date": "2026-01-13T16:55:47Z"
},
{
"name": "traefik/traefik",
"version": "v3.6.7",
"date": "2026-01-14T14:11:45Z"
},
{
"name": "tobychui/zoraxy",
"version": "v3.3.1-rc2",
"date": "2026-01-14T12:29:28Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.52.4",
"date": "2026-01-14T12:27:21Z"
},
{
"name": "dedicatedcode/reitti",
"version": "v3.3.0",
"date": "2026-01-14T11:06:59Z"
},
{
"name": "zitadel/zitadel",
"version": "v4.9.1",
"date": "2026-01-14T10:37:28Z"
},
{
"name": "cloudreve/cloudreve",
"version": "4.11.1",
"date": "2026-01-14T08:40:47Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.846",
"date": "2026-01-14T05:57:12Z"
},
{
"name": "Whisparr/Whisparr",
"version": "v3.1.0.2116",
"date": "2026-01-14T05:56:17Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.15",
"date": "2026-01-06T20:05:54Z"
},
{
"name": "NginxProxyManager/nginx-proxy-manager",
"version": "v2.13.6",
"date": "2026-01-14T05:04:11Z"
},
{
"name": "louislam/uptime-kuma",
"version": "2.0.2",
"date": "2025-10-22T17:03:54Z"
},
{
"name": "jeedom/core",
"version": "4.5.2",
"date": "2026-01-14T00:27:06Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.1.0",
"date": "2025-11-23T12:13:34Z"
},
{
"name": "Infisical/infisical",
"version": "v0.155.4",
"date": "2026-01-14T00:04:13Z"
},
{
"name": "goauthentik/authentik",
"version": "version/2025.12.0",
@@ -34,21 +204,11 @@
"version": "v1.12.1",
"date": "2026-01-13T20:39:22Z"
},
{
"name": "firefly-iii/firefly-iii",
"version": "v6.4.15",
"date": "2026-01-06T20:05:54Z"
},
{
"name": "openobserve/openobserve",
"version": "v0.50.0-rc2",
"date": "2026-01-13T19:27:24Z"
},
{
"name": "ollama/ollama",
"version": "v0.14.0-rc10",
"date": "2026-01-13T19:25:31Z"
},
{
"name": "azukaar/Cosmos-Server",
"version": "v0.19.1",
@@ -59,46 +219,21 @@
"version": "v2.20.4",
"date": "2026-01-13T18:52:08Z"
},
{
"name": "metabase/metabase",
"version": "v0.57.x",
"date": "2026-01-13T18:13:09Z"
},
{
"name": "n8n-io/n8n",
"version": "n8n@2.3.4",
"date": "2026-01-13T16:37:15Z"
},
{
"name": "community-scripts/ProxmoxVE-Local",
"version": "v0.5.5",
"date": "2026-01-13T17:03:32Z"
},
{
"name": "esphome/esphome",
"version": "2025.12.6",
"date": "2026-01-13T16:55:47Z"
},
{
"name": "element-hq/synapse",
"version": "v1.145.0",
"date": "2026-01-13T16:49:51Z"
},
{
"name": "meilisearch/meilisearch",
"version": "prototype-v1.30.1-greedy-semantic-search.4",
"date": "2026-01-13T16:18:53Z"
},
{
"name": "msgbyte/tianji",
"version": "v1.31.7",
"date": "2026-01-13T16:12:12Z"
},
{
"name": "dgtlmoon/changedetection.io",
"version": "0.52.2",
"date": "2026-01-13T15:43:10Z"
},
{
"name": "semaphoreui/semaphore",
"version": "v2.17.0-rc2",
@@ -134,31 +269,6 @@
"version": "3.4.7",
"date": "2026-01-13T07:28:02Z"
},
{
"name": "Whisparr/Whisparr",
"version": "v3.1.0.2111",
"date": "2026-01-13T06:11:13Z"
},
{
"name": "Jackett/Jackett",
"version": "v0.24.834",
"date": "2026-01-13T06:00:41Z"
},
{
"name": "Infisical/infisical",
"version": "v0.155.3",
"date": "2026-01-13T01:38:42Z"
},
{
"name": "jeedom/core",
"version": "4.5.2",
"date": "2026-01-13T00:27:06Z"
},
{
"name": "steveiliop56/tinyauth",
"version": "v4.1.0",
"date": "2025-11-23T12:13:34Z"
},
{
"name": "henrygd/beszel",
"version": "v0.18.2",
@@ -184,21 +294,11 @@
"version": "v2.8.0",
"date": "2025-12-12T20:25:00Z"
},
{
"name": "fccview/jotty",
"version": "1.17.1",
"date": "2026-01-12T21:34:44Z"
},
{
"name": "influxdata/telegraf",
"version": "v1.37.1",
"date": "2026-01-12T21:05:24Z"
},
{
"name": "chrisbenincasa/tunarr",
"version": "v1.1.0-dev.1",
"date": "2026-01-12T21:02:34Z"
},
{
"name": "gristlabs/grist-core",
"version": "v1.7.10",
@@ -209,11 +309,6 @@
"version": "v5.0.16",
"date": "2026-01-12T20:18:34Z"
},
{
"name": "keycloak/keycloak",
"version": "26.5.0",
"date": "2026-01-06T07:42:32Z"
},
{
"name": "Stirling-Tools/Stirling-PDF",
"version": "v2.2.1",
@@ -284,21 +379,11 @@
"version": "v1.5.7",
"date": "2026-01-11T19:31:59Z"
},
{
"name": "scanopy/scanopy",
"version": "v0.13.5",
"date": "2026-01-11T19:03:33Z"
},
{
"name": "alexta69/metube",
"version": "2026.01.11",
"date": "2026-01-11T18:43:56Z"
},
{
"name": "ghostfolio/ghostfolio",
"version": "2.229.0",
"date": "2026-01-11T16:04:16Z"
},
{
"name": "pocket-id/pocket-id",
"version": "v2.2.0",
@@ -364,11 +449,6 @@
"version": "v1.17.0",
"date": "2026-01-09T22:48:21Z"
},
{
"name": "livebook-dev/livebook",
"version": "nightly",
"date": "2026-01-09T22:07:03Z"
},
{
"name": "runtipi/runtipi",
"version": "nightly",
@@ -399,11 +479,6 @@
"version": "r8.2.4-alpha1",
"date": "2026-01-09T16:17:01Z"
},
{
"name": "dedicatedcode/reitti",
"version": "v3.2.1",
"date": "2026-01-09T11:09:24Z"
},
{
"name": "fuma-nama/fumadocs",
"version": "@fumadocs/base-ui@16.4.6",
@@ -436,8 +511,8 @@
},
{
"name": "wazuh/wazuh",
"version": "v5.0.0-alpha0",
"date": "2025-12-31T01:18:10Z"
"version": "v4.14.2-rc4",
"date": "2026-01-08T18:45:47Z"
},
{
"name": "MediaBrowser/Emby.Releases",
@@ -484,11 +559,6 @@
"version": "v11.1.2",
"date": "2025-12-17T09:26:24Z"
},
{
"name": "Brandawg93/PeaNUT",
"version": "v5.20.1",
"date": "2026-01-08T01:19:49Z"
},
{
"name": "seriousm4x/UpSnap",
"version": "5.2.7",
@@ -559,11 +629,6 @@
"version": "v1.2.0",
"date": "2026-01-06T23:02:46Z"
},
{
"name": "tailscale/tailscale",
"version": "v1.92.5",
"date": "2026-01-06T21:22:20Z"
},
{
"name": "netbox-community/netbox",
"version": "v4.5.0",
@@ -584,11 +649,6 @@
"version": "26.1.0.118079",
"date": "2026-01-06T14:46:07Z"
},
{
"name": "zitadel/zitadel",
"version": "v4.9.0",
"date": "2026-01-06T13:15:16Z"
},
{
"name": "syncthing/syncthing",
"version": "v2.0.13",
@@ -624,11 +684,6 @@
"version": "v5.2.0",
"date": "2026-01-05T05:56:57Z"
},
{
"name": "louislam/uptime-kuma",
"version": "2.0.2",
"date": "2025-10-22T17:03:54Z"
},
{
"name": "Part-DB/Part-DB-server",
"version": "v2.4.0",
@@ -639,11 +694,6 @@
"version": "v26.1.0",
"date": "2026-01-04T17:07:30Z"
},
{
"name": "tobychui/zoraxy",
"version": "v3.3.1-rc1",
"date": "2026-01-04T04:38:01Z"
},
{
"name": "TwiN/gatus",
"version": "v5.34.0",
@@ -657,18 +707,13 @@
{
"name": "mealie-recipes/mealie",
"version": "v3.9.2",
"date": "2026-01-02T19:40:19Z"
"date": "2026-01-02T19:40:09Z"
},
{
"name": "Dokploy/dokploy",
"version": "v0.26.3",
"date": "2026-01-02T17:06:30Z"
},
{
"name": "alam00000/bentopdf",
"version": "v1.15.4",
"date": "2026-01-02T16:20:33Z"
},
{
"name": "gotify/server",
"version": "v2.8.0",
@@ -689,11 +734,6 @@
"version": "2.2.2",
"date": "2025-12-31T16:53:34Z"
},
{
"name": "emqx/emqx",
"version": "e5.8.9",
"date": "2025-12-31T15:06:41Z"
},
{
"name": "pommee/goaway",
"version": "v0.63.4",
@@ -714,11 +754,6 @@
"version": "1.1.0",
"date": "2025-12-30T04:42:18Z"
},
{
"name": "traefik/traefik",
"version": "v3.6.6",
"date": "2025-12-29T15:56:09Z"
},
{
"name": "ArchiveBox/ArchiveBox",
"version": "v0.8.6rc1",
@@ -764,11 +799,6 @@
"version": "1.28.0",
"date": "2025-12-24T19:27:21Z"
},
{
"name": "NodeBB/NodeBB",
"version": "v4.7.2",
"date": "2025-12-24T18:38:32Z"
},
{
"name": "Dolibarr/dolibarr",
"version": "22.0.4",
@@ -854,11 +884,6 @@
"version": "v14.3.0",
"date": "2025-12-20T13:16:37Z"
},
{
"name": "zwave-js/zwave-js-ui",
"version": "v11.9.1",
"date": "2025-12-20T09:14:25Z"
},
{
"name": "pelican-dev/panel",
"version": "v1.0.0-beta30",
@@ -1179,11 +1204,6 @@
"version": "2.3.0",
"date": "2025-11-24T09:48:32Z"
},
{
"name": "Bubka/2FAuth",
"version": "v5.6.1",
"date": "2025-11-21T16:51:21Z"
},
{
"name": "MariaDB/server",
"version": "mariadb-12.1.2",
@@ -1214,11 +1234,6 @@
"version": "8.4.0",
"date": "2025-11-18T15:06:37Z"
},
{
"name": "NginxProxyManager/nginx-proxy-manager",
"version": "v2.13.5",
"date": "2025-11-18T11:47:48Z"
},
{
"name": "Hosteroid/domain-monitor",
"version": "v1.1.1",
@@ -1244,11 +1259,6 @@
"version": "v25.11.1",
"date": "2025-11-16T13:04:21Z"
},
{
"name": "cloudreve/cloudreve",
"version": "4.10.1",
"date": "2025-11-15T04:36:48Z"
},
{
"name": "Lissy93/domain-locker",
"version": "v0.1.2",
@@ -1379,11 +1389,6 @@
"version": "v2.7.0",
"date": "2025-10-23T17:15:07Z"
},
{
"name": "Kareadita/Kavita",
"version": "v0.8.8.3",
"date": "2025-10-23T12:31:49Z"
},
{
"name": "benzino77/tasmocompiler",
"version": "v13.0.0",
@@ -1459,11 +1464,6 @@
"version": "2.1.0-test1",
"date": "2025-09-17T18:21:45Z"
},
{
"name": "icereed/paperless-gpt",
"version": "v0.23.0",
"date": "2025-09-17T10:15:51Z"
},
{
"name": "Checkmk/checkmk",
"version": "v2.4.0p12",

View File

@@ -194,7 +194,20 @@ function CommandMenu() {
</TooltipProvider>
</div>
<CommandDialog open={open} onOpenChange={setOpen}>
<CommandDialog
open={open}
onOpenChange={setOpen}
filter={(value: string, search: string) => {
const searchLower = search.toLowerCase().trim();
if (!searchLower)
return 1;
const valueLower = value.toLowerCase();
const searchWords = searchLower.split(/\s+/).filter(Boolean);
// All search words must appear somewhere in the value (name + description)
const allWordsMatch = searchWords.every((word: string) => valueLower.includes(word));
return allWordsMatch ? 1 : 0;
}}
>
<DialogTitle className="sr-only">Search scripts</DialogTitle>
<CommandInput placeholder="Search for a script..." />
<CommandList>
@@ -204,7 +217,7 @@ function CommandMenu() {
{scripts.map(script => (
<CommandItem
key={`script:${script.slug}`}
value={`${script.name}-${script.type}`}
value={`${script.name} ${script.type} ${script.description || ""}`}
onSelect={() => {
setOpen(false);
router.push(`/scripts?id=${script.slug}`);

View File

@@ -24,13 +24,18 @@ const Command = React.forwardRef<
));
Command.displayName = CommandPrimitive.displayName;
type CommandDialogProps = {} & DialogProps;
type CommandDialogProps = {
filter?: (value: string, search: string, keywords?: string[]) => number;
} & DialogProps;
function CommandDialog({ children, ...props }: CommandDialogProps) {
function CommandDialog({ children, filter, ...props }: CommandDialogProps) {
return (
<Dialog {...props}>
<DialogContent className="overflow-hidden p-0 shadow-lg">
<Command className="[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5">
<Command
filter={filter}
className="[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5"
>
{children}
</Command>
</DialogContent>

View File

@@ -69,6 +69,7 @@ curl -fsSL "https://downloads.apache.org/guacamole/${GUAC_CLIENT_VERSION}/binary
echo "${GUAC_CLIENT_VERSION}" >~/.guacamole_client
curl -fsSL "https://repo1.maven.org/maven2/com/mysql/mysql-connector-j/${MYSQL_CONNECTOR_VERSION}/mysql-connector-j-${MYSQL_CONNECTOR_VERSION}.jar" -o "/etc/guacamole/lib/mysql-connector-j.jar"
echo "${MYSQL_CONNECTOR_VERSION}" >~/.guacamole_mysql_connector
cd /root
curl -fsSL "https://downloads.apache.org/guacamole/${GUAC_SERVER_VERSION}/binary/guacamole-auth-jdbc-${GUAC_SERVER_VERSION}.tar.gz" -o "/root/guacamole-auth-jdbc-${GUAC_SERVER_VERSION}.tar.gz"
$STD tar -xf ~/guacamole-auth-jdbc-"$GUAC_SERVER_VERSION".tar.gz
mv ~/guacamole-auth-jdbc-"$GUAC_SERVER_VERSION"/mysql/guacamole-auth-jdbc-mysql-"$GUAC_SERVER_VERSION".jar /etc/guacamole/extensions/

View File

@@ -29,7 +29,6 @@ $STD apt install --no-install-recommends -y \
libltdl-dev \
libgdk-pixbuf-2.0-dev \
libbrotli-dev \
libde265-dev \
libexif-dev \
libexpat1-dev \
libglib2.0-dev \
@@ -130,9 +129,9 @@ Pin-Priority: 450
EOF
$STD apt update
msg_ok "Configured Debian Testing repo"
msg_info "Installing libmimalloc3"
$STD apt install -t testing --no-install-recommends -yqq libmimalloc3
msg_ok "Installed libmimalloc3"
msg_info "Installing packages from Debian Testing repo"
$STD apt install -t testing --no-install-recommends -yqq libmimalloc3 libde265-dev
msg_ok "Installed packages from Debian Testing repo"
PNPM_VERSION="$(curl -fsSL "https://raw.githubusercontent.com/immich-app/immich/refs/heads/main/package.json" | jq -r '.packageManager | split("@")[1]')"
NODE_VERSION="24" NODE_MODULE="pnpm@${PNPM_VERSION}" setup_nodejs

75
install/kutt-install.sh Normal file
View File

@@ -0,0 +1,75 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: tomfrenzel
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/thedevs-network/kutt
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
echo "${TAB3}How would you like to handle SSL termination?"
echo "${TAB3}[i]-Internal (self-signed SSL Certificate) [e]-External (use your own reverse proxy)"
read -rp "${TAB3}Enter your choice <i/e> (default: i): " ssl_choice
ssl_choice=${ssl_choice:-i}
case "${ssl_choice,,}" in
i)
import_local_ip
DEFAULT_HOST="$LOCAL_IP"
msg_info "Configuring Caddy"
$STD apt install -y caddy
cat <<EOF >/etc/caddy/Caddyfile
$LOCAL_IP {
reverse_proxy localhost:3000
}
EOF
systemctl restart caddy
msg_ok "Configured Caddy"
;;
e)
read -r -p "${TAB3}Enter the hostname you want to use for Kutt (eg. kutt.example.com): " custom_host
if [[ "$custom_host" ]]; then
DEFAULT_HOST="$custom_host"
fi
;;
esac
NODE_VERSION="22" setup_nodejs
fetch_and_deploy_gh_release "kutt" "thedevs-network/kutt" "tarball"
msg_info "Configuring Kutt"
cd /opt/kutt
cp .example.env ".env"
sed -i "s|JWT_SECRET=|JWT_SECRET=$(openssl rand -base64 32)|g" ".env"
sed -i "s|DEFAULT_DOMAIN=.*|DEFAULT_DOMAIN=$DEFAULT_HOST|g" ".env"
$STD npm install
$STD npm run migrate
msg_ok "Configured Kutt"
msg_info "Creating Services"
cat <<EOF >/etc/systemd/system/kutt.service
[Unit]
Description=Kutt server
After=network-online.target
[Service]
Type=simple
WorkingDirectory=/opt/kutt
ExecStart=/usr/bin/npm start
Restart=always
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now kutt
msg_ok "Created Services"
motd_ssh
customize
cleanup_lxc

View File

@@ -54,12 +54,11 @@ msg_ok "Installed Openresty"
NODE_VERSION="22" NODE_MODULE="yarn" setup_nodejs
# RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest |
# grep "tag_name" |
# awk '{print substr($2, 3, length($2)-4) }')
RELEASE="2.13.5"
RELEASE=$(curl -fsSL https://api.github.com/repos/NginxProxyManager/nginx-proxy-manager/releases/latest |
grep "tag_name" |
awk '{print substr($2, 3, length($2)-4) }')
fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager" "tarball" "v2.13.5"
fetch_and_deploy_gh_release "nginxproxymanager" "NginxProxyManager/nginx-proxy-manager" "tarball" "v${RELEASE}"
msg_info "Setting up Environment"
ln -sf /usr/bin/python3 /usr/bin/python

View File

@@ -16,7 +16,8 @@ update_os
msg_info "Installing Dependencies"
$STD apt install -y \
build-essential \
pkg-config
pkg-config \
zstd
msg_ok "Installed Dependencies"
msg_info "Setting up Intel® Repositories"
@@ -67,11 +68,11 @@ RELEASE=$(curl -fsSL https://api.github.com/repos/ollama/ollama/releases/latest
OLLAMA_INSTALL_DIR="/usr/local/lib/ollama"
BINDIR="/usr/local/bin"
mkdir -p $OLLAMA_INSTALL_DIR
OLLAMA_URL="https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tgz"
TMP_TAR="/tmp/ollama.tgz"
OLLAMA_URL="https://github.com/ollama/ollama/releases/download/${RELEASE}/ollama-linux-amd64.tar.zst"
TMP_TAR="/tmp/ollama.tar.zst"
echo -e "\n"
if curl -fL# -C - -o "$TMP_TAR" "$OLLAMA_URL"; then
if tar -xzf "$TMP_TAR" -C "$OLLAMA_INSTALL_DIR"; then
if tar --zstd -xf "$TMP_TAR" -C "$OLLAMA_INSTALL_DIR"; then
ln -sf "$OLLAMA_INSTALL_DIR/bin/ollama" "$BINDIR/ollama"
echo "${RELEASE}" >/opt/Ollama_version.txt
msg_ok "Installed Ollama ${RELEASE}"

View File

@@ -14,7 +14,9 @@ network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y ffmpeg
$STD apt install -y \
ffmpeg \
zstd
msg_ok "Installed Dependencies"
setup_hwaccel
@@ -69,9 +71,10 @@ EOF
msg_ok "Installed Intel® oneAPI Base Toolkit"
msg_info "Installing Ollama"
curl -fsSLO -C - https://ollama.com/download/ollama-linux-amd64.tgz
tar -C /usr -xzf ollama-linux-amd64.tgz
rm -rf ollama-linux-amd64.tgz
OLLAMA_RELEASE=$(curl -fsSL https://api.github.com/repos/ollama/ollama/releases/latest | grep "tag_name" | awk -F '"' '{print $4}')
curl -fsSLO -C - https://github.com/ollama/ollama/releases/download/${OLLAMA_RELEASE}/ollama-linux-amd64.tar.zst
tar --zstd -C /usr -xf ollama-linux-amd64.tar.zst
rm -rf ollama-linux-amd64.tar.zst
cat <<EOF >/etc/systemd/system/ollama.service
[Unit]
Description=Ollama Service

View File

@@ -3002,16 +3002,24 @@ _setup_nvidia_gpu() {
msg_info "Installing NVIDIA GPU drivers"
# Prevent interactive dialogs (e.g., "Mismatching nvidia kernel module" whiptail)
export DEBIAN_FRONTEND=noninteractive
export NEEDRESTART_MODE=a
# Detect host driver version (passed through via /proc)
# Format varies by driver type:
# Proprietary: "NVRM version: NVIDIA UNIX x86_64 Kernel Module 550.54.14 Thu..."
# Open: "NVRM version: NVIDIA UNIX Open Kernel Module for x86_64 590.48.01 Release..."
# Use regex to extract version number (###.##.## pattern)
local nvidia_host_version=""
if [[ -f /proc/driver/nvidia/version ]]; then
nvidia_host_version=$(grep "NVRM version:" /proc/driver/nvidia/version 2>/dev/null | awk '{print $8}')
nvidia_host_version=$(grep -oP '\d{3,}\.\d+\.\d+' /proc/driver/nvidia/version 2>/dev/null | head -1)
fi
if [[ -z "$nvidia_host_version" ]]; then
msg_warn "NVIDIA host driver version not found in /proc/driver/nvidia/version"
msg_warn "Ensure NVIDIA drivers are installed on host and GPU passthrough is enabled"
$STD apt -y install va-driver-all vainfo 2>/dev/null || true
$STD apt-get -y install va-driver-all vainfo 2>/dev/null || true
return 0
fi
@@ -3024,53 +3032,74 @@ _setup_nvidia_gpu() {
sed -i -E 's/Components: (.*)$/Components: \1 contrib non-free non-free-firmware/g' /etc/apt/sources.list.d/debian.sources 2>/dev/null || true
fi
fi
$STD apt-get -y update 2>/dev/null || msg_warn "apt update failed - continuing anyway"
# Determine CUDA repository
local cuda_repo="debian12"
case "$os_codename" in
bullseye) cuda_repo="debian11" ;;
bookworm) cuda_repo="debian12" ;;
trixie | sid) cuda_repo="debian12" ;; # Forward compatible
esac
# For Debian 13 Trixie/Sid: Use Debian's own nvidia packages first (better compatibility)
# NVIDIA's CUDA repo targets Debian 12 and may not have amd64 packages for Trixie
if [[ "$os_codename" == "trixie" || "$os_codename" == "sid" ]]; then
msg_info "Debian ${os_codename}: Using Debian's NVIDIA packages"
# Add NVIDIA CUDA repository
if [[ ! -f /usr/share/keyrings/cuda-archive-keyring.gpg ]]; then
msg_info "Adding NVIDIA CUDA repository (${cuda_repo})"
local cuda_keyring
cuda_keyring="$(mktemp)"
if curl -fsSL -o "$cuda_keyring" "https://developer.download.nvidia.com/compute/cuda/repos/${cuda_repo}/x86_64/cuda-keyring_1.1-1_all.deb" 2>/dev/null; then
$STD dpkg -i "$cuda_keyring" 2>/dev/null || true
# Try version-matched from Debian repos first
local nvidia_pkgs="libcuda1=${nvidia_host_version}* libnvcuvid1=${nvidia_host_version}* libnvidia-encode1=${nvidia_host_version}* libnvidia-ml1=${nvidia_host_version}*"
if $STD apt-get -y -o Dpkg::Options::="--force-confold" install --no-install-recommends $nvidia_pkgs 2>/dev/null; then
msg_ok "Installed version-matched NVIDIA libraries from Debian"
else
msg_warn "Failed to download NVIDIA CUDA keyring"
# Fallback to unversioned (whatever Debian provides)
if $STD apt-get -y -o Dpkg::Options::="--force-confold" install --no-install-recommends libcuda1 libnvcuvid1 libnvidia-encode1 libnvidia-ml1 2>/dev/null; then
msg_ok "Installed NVIDIA libraries from Debian (version may differ from host)"
else
msg_warn "NVIDIA library installation failed - GPU compute may not work"
fi
fi
rm -f "$cuda_keyring"
fi
$STD apt-get -y -o Dpkg::Options::="--force-confold" install --no-install-recommends nvidia-smi 2>/dev/null || true
# Pin NVIDIA repo for version matching
cat <<'NVIDIA_PIN' >/etc/apt/preferences.d/nvidia-cuda-pin
else
# Debian 11/12: Use NVIDIA CUDA repository for version matching
local cuda_repo="debian12"
case "$os_codename" in
bullseye) cuda_repo="debian11" ;;
bookworm) cuda_repo="debian12" ;;
esac
# Add NVIDIA CUDA repository
if [[ ! -f /usr/share/keyrings/cuda-archive-keyring.gpg ]]; then
msg_info "Adding NVIDIA CUDA repository (${cuda_repo})"
local cuda_keyring
cuda_keyring="$(mktemp)"
if curl -fsSL -o "$cuda_keyring" "https://developer.download.nvidia.com/compute/cuda/repos/${cuda_repo}/x86_64/cuda-keyring_1.1-1_all.deb" 2>/dev/null; then
$STD dpkg -i "$cuda_keyring" 2>/dev/null || true
else
msg_warn "Failed to download NVIDIA CUDA keyring"
fi
rm -f "$cuda_keyring"
fi
# Pin NVIDIA repo for version matching
cat <<'NVIDIA_PIN' >/etc/apt/preferences.d/nvidia-cuda-pin
Package: *
Pin: origin developer.download.nvidia.com
Pin-Priority: 1001
NVIDIA_PIN
$STD apt -y update
$STD apt-get -y update 2>/dev/null || msg_warn "apt update failed - continuing anyway"
# Install version-matched NVIDIA libraries
local nvidia_pkgs="libcuda1=${nvidia_host_version}* libnvcuvid1=${nvidia_host_version}* libnvidia-encode1=${nvidia_host_version}* libnvidia-ml1=${nvidia_host_version}*"
# Install version-matched NVIDIA libraries
local nvidia_pkgs="libcuda1=${nvidia_host_version}* libnvcuvid1=${nvidia_host_version}* libnvidia-encode1=${nvidia_host_version}* libnvidia-ml1=${nvidia_host_version}*"
msg_info "Installing NVIDIA libraries (version ${nvidia_host_version})"
if $STD apt -y install --no-install-recommends $nvidia_pkgs 2>/dev/null; then
msg_ok "Installed version-matched NVIDIA libraries"
else
msg_warn "Version-pinned install failed - trying unpinned"
if $STD apt -y install --no-install-recommends libcuda1 libnvcuvid1 libnvidia-encode1 libnvidia-ml1 2>/dev/null; then
msg_warn "Installed NVIDIA libraries (unpinned) - version mismatch may occur"
msg_info "Installing NVIDIA libraries (version ${nvidia_host_version})"
if $STD apt-get -y -o Dpkg::Options::="--force-confold" install --no-install-recommends $nvidia_pkgs 2>/dev/null; then
msg_ok "Installed version-matched NVIDIA libraries"
else
msg_warn "NVIDIA library installation failed"
msg_warn "Version-pinned install failed - trying unpinned"
if $STD apt-get -y -o Dpkg::Options::="--force-confold" install --no-install-recommends libcuda1 libnvcuvid1 libnvidia-encode1 libnvidia-ml1 2>/dev/null; then
msg_ok "Installed NVIDIA libraries (unpinned) - version mismatch may occur"
else
msg_warn "NVIDIA library installation failed"
fi
fi
fi
$STD apt -y install --no-install-recommends nvidia-smi 2>/dev/null || true
$STD apt-get -y -o Dpkg::Options::="--force-confold" install --no-install-recommends nvidia-smi 2>/dev/null || true
fi
elif [[ "$os_id" == "ubuntu" ]]; then
# Ubuntu versioning
@@ -3094,20 +3123,20 @@ NVIDIA_PIN
rm -f "$cuda_keyring"
fi
$STD apt -y update
$STD apt-get -y update 2>/dev/null || msg_warn "apt update failed - continuing anyway"
# Try version-matched install
local nvidia_pkgs="libcuda1=${nvidia_host_version}* libnvcuvid1=${nvidia_host_version}* libnvidia-encode1=${nvidia_host_version}* libnvidia-ml1=${nvidia_host_version}*"
if $STD apt -y install --no-install-recommends $nvidia_pkgs 2>/dev/null; then
if $STD apt-get -y -o Dpkg::Options::="--force-confold" install --no-install-recommends $nvidia_pkgs 2>/dev/null; then
msg_ok "Installed version-matched NVIDIA libraries"
else
# Fallback to Ubuntu repo packages
$STD apt -y install --no-install-recommends libnvidia-decode libnvidia-encode nvidia-utils 2>/dev/null || msg_warn "NVIDIA installation failed"
$STD apt-get -y -o Dpkg::Options::="--force-confold" install --no-install-recommends libnvidia-decode libnvidia-encode nvidia-utils 2>/dev/null || msg_warn "NVIDIA installation failed"
fi
fi
# VA-API for hybrid setups (Intel + NVIDIA)
$STD apt -y install va-driver-all vainfo 2>/dev/null || true
$STD apt-get -y install va-driver-all vainfo 2>/dev/null || true
msg_ok "NVIDIA GPU configured"
}

View File

@@ -27,7 +27,12 @@ CL=$(echo "\033[m")
header_info
echo "Loading..."
whiptail --backtitle "Proxmox VE Helper Scripts" --title "Proxmox VE LXC Updater" --yesno "This Will Update LXC Containers. Proceed?" 10 58
SKIP_STOPPED=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "Skip Not-Running Containers" --yesno "Do you want to skip containers that are not currently running?" 10 58 && echo "yes" || echo "no")
if whiptail --backtitle "Proxmox VE Helper Scripts" --title "Skip Not-Running Containers" --yesno "Do you want to skip containers that are not currently running?" 10 58; then
SKIP_STOPPED="yes"
else
SKIP_STOPPED="no"
fi
NODE=$(hostname)
EXCLUDE_MENU=()
MSG_MAX_LENGTH=0