Compare commits

..

12 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
54cab8993e fix(umlautadaptarr): use release appsettings.json instead of hardcoded copy
The install script overwrote the correct appsettings.json shipped in the
release archive with a hardcoded copy that was missing newer required
fields (ApiKey, ProxyPort, EnableChangedTitleCache) and had structural
differences (Lidarr/Readarr as arrays instead of objects), causing the
service to fail on startup.

- Remove hardcoded appsettings.json from install script (release archive
  already ships the correct version)
- Backup and restore appsettings.json during updates to preserve user
  configuration

Closes #11665
2026-02-09 11:45:57 +01:00
CanbiZ (MickLesk)
59e27bfc8a hotfix nginxui remove jwt 2026-02-09 11:39:46 +01:00
community-scripts-pr-app[bot]
43d76b6ea7 Update CHANGELOG.md (#11721)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-09 10:05:55 +00:00
CanbiZ (MickLesk)
7715a02f05 remove whiptail from update scripts for unattended update support (#11712)
* Simplify Alpine update scripts to run upgrade

Remove interactive whiptail menus, loops and newt dependency checks from ct/alpine-docker.sh, ct/alpine-zigbee2mqtt.sh, and ct/alpine.sh. Each update_script now simply calls header_info, runs $STD apk -U upgrade, displays a success message and exits, simplifying and automating the update flow.

* feat(update-scripts): replace whiptail with msg_menu for unattended updates

Remove all whiptail dialogs from ct update_script() functions and replace
with msg_menu() - a lightweight read-based menu that supports:
- PHS_SILENT=1: auto-selects first (default) option for unattended mode
- Interactive: numbered menu with 10s timeout and default fallback

Converted scripts (whiptail menu → msg_menu):
- plex.sh, npmplus.sh, cronicle.sh, meilisearch.sh, node-red.sh
- homeassistant.sh, podman-homeassistant.sh
- vaultwarden.sh, alpine-vaultwarden.sh
- loki.sh, alpine-loki.sh
- alpine-grafana.sh, alpine-redis.sh, alpine-valkey.sh
- alpine-nextcloud.sh

Simplified scripts (removed unnecessary whiptail for single-action updates):
- alpine.sh, alpine-docker.sh, alpine-zigbee2mqtt.sh

Special handling:
- gitea-mirror.sh: replaced yesno/msgbox with read -rp confirmations,
  exit 75 in silent mode for major version upgrades requiring interaction
- vaultwarden.sh/alpine-vaultwarden.sh: passwordbox replaced with
  read -r -s -p, skipped in silent mode with warning
- nginxproxymanager.sh: exit 1 → exit 75 for disabled script

Infrastructure:
- Added msg_menu() helper to misc/build.func
- Added exit code 75 handling in update-apps.sh (skip, not fail)

Closes #11620

* refactor(update-scripts): remove menus where sequential updates suffice

- alpine-nextcloud: add apk upgrade as the update action (was missing)
- meilisearch: run meilisearch + UI updates sequentially (like bar-assistant)
- npmplus: run alpine upgrade + docker pull sequentially, no menu
- vaultwarden: update VaultWarden + Web-Vault sequentially, remove admin
  token option (interactive-only, not suitable for unattended updates)
- alpine-vaultwarden: just run apk upgrade, remove admin token menu
2026-02-09 11:05:31 +01:00
community-scripts-pr-app[bot]
c29dfa7a29 Update CHANGELOG.md (#11720)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-09 10:04:52 +00:00
CanbiZ (MickLesk)
1439d98ec4 fix(hwaccel): add libmfx-gen1.2 to Intel Arc setup for QSV support (#11707)
Add missing libmfx-gen1.2 package to _setup_intel_arc() for both
Ubuntu and Debian. Without this package, QSV hardware acceleration
fails with 'Error creating a MFX session: -9'.

The package was already present in _setup_intel_modern() (Gen9+)
but missing from the Arc GPU path.

Closes #11701
2026-02-09 11:04:22 +01:00
community-scripts-pr-app[bot]
44ad9370b6 Update CHANGELOG.md (#11719)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-09 09:53:04 +00:00
CanbiZ (MickLesk)
4e96bb664f Nginx-UI: better User Handling | ACME (#11715)
* fix(nginx-ui): remove admin user hack, use setup wizard instead

The previous install script started nginx-ui for 3 seconds, stopped it,
and ran reset-password to create an admin user. This caused:
- Race condition: the internal setup wizard could trigger during the brief
  start window, conflicting with the reset-password approach
- Admin users unable to login after the setup wizard fired
- Settings lockup due to overloaded app.ini with hardcoded nginx paths
  that conflict with UI-managed settings

Changes:
- Remove start/stop/reset-password hack from install script
- Simplify app.ini to match upstream defaults (minimal config)
- Let users complete the natural setup wizard on first visit
- Update JSON: remove default credentials, add setup wizard note
- Add setup wizard hint to CT script output

The setup wizard properly handles admin account creation and ACME email
configuration, which are both needed for full functionality.

Ref: ProxmoxVED#1408

* Update nginx-ui.sh
2026-02-09 10:52:33 +01:00
community-scripts-pr-app[bot]
57c9308326 Update CHANGELOG.md (#11717)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-09 09:34:08 +00:00
CanbiZ (MickLesk)
f07c221ca4 NginxProxymanager: use better-sqlite3 (#11708)
* fix(nginxproxymanager): update for better-sqlite3 and setup wizard

NPM switched to better-sqlite3 as the knex database client.
The old sqlite3 client causes 'Internal Error' on user creation.

- Update production.json in install/update to use better-sqlite3
- Add sed patch in update script to fix existing production.json
- Add useNullAsDefault: true to match upstream knex config
- Remove default credentials from JSON (NPM now uses setup wizard)
- Add note about setup wizard for first-time users

Ref: NginxProxyManager/nginx-proxy-manager@0b2fa82
Closes #11681

* Update nginxproxymanager.json

* Remove disabled script error messages

Removed error messages related to OpenResty APT repository issues.
2026-02-09 10:33:44 +01:00
community-scripts-pr-app[bot]
63097e3b64 Update CHANGELOG.md (#11714)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-02-09 09:03:51 +00:00
Slaviša Arežina
632a39f56e Add warning to website (#11711) 2026-02-09 10:03:25 +01:00
10 changed files with 54 additions and 109 deletions

View File

@@ -410,6 +410,25 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
- tracearr: prepare for next stable release [@durzo](https://github.com/durzo) ([#11673](https://github.com/community-scripts/ProxmoxVE/pull/11673))
- PeaNUT: symlink server.js after update [@vhsdream](https://github.com/vhsdream) ([#11696](https://github.com/community-scripts/ProxmoxVE/pull/11696))
- #### ✨ New Features
- remove whiptail from update scripts for unattended update support [@MickLesk](https://github.com/MickLesk) ([#11712](https://github.com/community-scripts/ProxmoxVE/pull/11712))
- #### 🔧 Refactor
- Nginx-UI: better User Handling | ACME [@MickLesk](https://github.com/MickLesk) ([#11715](https://github.com/community-scripts/ProxmoxVE/pull/11715))
- NginxProxymanager: use better-sqlite3 [@MickLesk](https://github.com/MickLesk) ([#11708](https://github.com/community-scripts/ProxmoxVE/pull/11708))
### 💾 Core
- #### 🔧 Refactor
- hwaccel: add libmfx-gen1.2 to Intel Arc setup for QSV support [@MickLesk](https://github.com/MickLesk) ([#11707](https://github.com/community-scripts/ProxmoxVE/pull/11707))
### ❔ Uncategorized
- Bichon: Update website [@tremor021](https://github.com/tremor021) ([#11711](https://github.com/community-scripts/ProxmoxVE/pull/11711))
## 2026-02-08
### 🚀 Updated Scripts

View File

@@ -28,12 +28,6 @@ function update_script() {
exit
fi
msg_error "This script is currently disabled due to an external issue with the OpenResty APT repository."
msg_error "The repository's GPG key uses SHA-1 signatures, which are no longer accepted by Debian as of February 1, 2026."
msg_error "The issue is tracked in openresty/openresty#1097"
msg_error "For more details, see: https://github.com/community-scripts/ProxmoxVE/issues/11406"
exit 1
if [[ $(grep -E '^VERSION_ID=' /etc/os-release) == *"12"* ]]; then
msg_error "Wrong Debian version detected!"
msg_error "Please create a snapshot first. You must upgrade your LXC to Debian Trixie before updating. Visit: https://github.com/community-scripts/ProxmoxVE/discussions/7489"
@@ -145,15 +139,17 @@ function update_script() {
"database": {
"engine": "knex-native",
"knex": {
"client": "sqlite3",
"client": "better-sqlite3",
"connection": {
"filename": "/data/database.sqlite"
}
},
"useNullAsDefault": true
}
}
}
EOF
fi
sed -i 's/"client": "sqlite3"/"client": "better-sqlite3"/' /app/config/production.json
cd /app
$STD yarn install --network-timeout 600000
msg_ok "Initialized Backend"

View File

@@ -33,7 +33,9 @@ function update_script() {
systemctl stop umlautadaptarr
msg_ok "Stopped Service"
cp /opt/UmlautAdaptarr/appsettings.json /opt/UmlautAdaptarr/appsettings.json.bak
fetch_and_deploy_gh_release "UmlautAdaptarr" "PCJones/Umlautadaptarr" "prebuild" "latest" "/opt/UmlautAdaptarr" "linux-x64.zip"
cp /opt/UmlautAdaptarr/appsettings.json.bak /opt/UmlautAdaptarr/appsettings.json
msg_info "Starting Service"
systemctl start umlautadaptarr

View File

@@ -35,6 +35,10 @@
{
"text": "The Disk space initially allocated by the script is only a placeholder, as we can't know how much space you will ever need. You should increase it to match your workload.",
"type": "info"
},
{
"text": "Please copy your `BICHON_ENCRYPT_PASSWORD` from `/opt/bichon/bichon.env` to a safe place.",
"type": "warning"
}
]
}

View File

@@ -28,10 +28,14 @@
}
],
"default_credentials": {
"username": "admin",
"username": null,
"password": null
},
"notes": [
{
"text": "On first visit, the setup wizard will guide you to create an admin account and configure ACME email.",
"type": "warning"
},
{
"text": "Nginx runs on ports 80/443, Nginx UI management interface on port 9000.",
"type": "info"
@@ -39,10 +43,6 @@
{
"text": "SSL certificates can be managed automatically with Let's Encrypt integration.",
"type": "info"
},
{
"text": "Initial Login data: `cat ~/nginx-ui.creds`",
"type": "info"
}
]
}

View File

@@ -30,10 +30,14 @@
}
],
"default_credentials": {
"username": "admin@example.com",
"password": "changeme"
"username": null,
"password": null
},
"notes": [
{
"text": "On first launch, a setup wizard will guide you through creating an admin account. There are no default credentials.",
"type": "info"
},
{
"text": "You can install the specific one certbot you prefer, or you can Running /app/scripts/install-certbot-plugins within the Nginx Proxy Manager (NPM) LXC shell will install many common plugins. Important: This script does not install all Certbot plugins, as some require additional, external system dependencies (like specific packages for certain DNS providers). These external dependencies must be manually installed within the LXC container before you can successfully install and use the corresponding Certbot plugin. Consult the plugin's documentation for required packages.",
"type": "info"

View File

@@ -30,29 +30,19 @@ msg_ok "Installed Nginx UI"
msg_info "Configuring Nginx UI"
mkdir -p /usr/local/etc/nginx-ui
cat <<EOF >/usr/local/etc/nginx-ui/app.ini
[server]
HttpHost = 0.0.0.0
HttpPort = 9000
RunMode = release
JwtSecret = $(openssl rand -hex 32)
[nginx]
AccessLogPath = /var/log/nginx/access.log
ErrorLogPath = /var/log/nginx/error.log
ConfigDir = /etc/nginx
PIDPath = /run/nginx.pid
TestConfigCmd = nginx -t
ReloadCmd = nginx -s reload
RestartCmd = systemctl restart nginx
[app]
PageSize = 10
[server]
Host = 0.0.0.0
Port = 9000
RunMode = release
[cert]
Email =
CADir =
RenewalInterval = 7
RecursiveNameservers =
HTTPChallengePort = 9180
[terminal]
StartCmd = login
EOF
msg_ok "Configured Nginx UI"
@@ -78,17 +68,6 @@ EOF
systemctl daemon-reload
msg_ok "Created Service"
msg_info "Creating Initial Admin User"
systemctl start nginx-ui
sleep 3
systemctl stop nginx-ui
sleep 1
/usr/local/bin/nginx-ui reset-password --config /usr/local/etc/nginx-ui/app.ini &>/tmp/nginx-ui-reset.log || true
ADMIN_PASS=$(grep -oP 'Password: \K\S+' /tmp/nginx-ui-reset.log || echo "admin")
echo -e "Nginx-UI Credentials\nUsername: admin\nPassword: $ADMIN_PASS" >~/nginx-ui.creds
rm -f /tmp/nginx-ui-reset.log
msg_ok "Created Initial Admin User"
msg_info "Starting Service"
systemctl enable -q --now nginx-ui
rm -rf /etc/nginx/sites-enabled/default

View File

@@ -130,10 +130,11 @@ if [ ! -f /app/config/production.json ]; then
"database": {
"engine": "knex-native",
"knex": {
"client": "sqlite3",
"client": "better-sqlite3",
"connection": {
"filename": "/data/database.sqlite"
}
},
"useNullAsDefault": true
}
}
}

View File

@@ -27,68 +27,6 @@ msg_ok "Installed Dependencies"
fetch_and_deploy_gh_release "UmlautAdaptarr" "PCJones/Umlautadaptarr" "prebuild" "latest" "/opt/UmlautAdaptarr" "linux-x64.zip"
msg_info "Setting up UmlautAdaptarr"
cat <<EOF >/opt/UmlautAdaptarr/appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
},
"Console": {
"TimestampFormat": "yyyy-MM-dd HH:mm:ss::"
}
},
"AllowedHosts": "*",
"Kestrel": {
"Endpoints": {
"Http": {
"Url": "http://[::]:5005"
}
}
},
"Settings": {
"UserAgent": "UmlautAdaptarr/1.0",
"UmlautAdaptarrApiHost": "https://umlautadaptarr.pcjones.de/api/v1",
"IndexerRequestsCacheDurationInMinutes": 12
},
"Sonarr": [
{
"Enabled": false,
"Name": "Sonarr",
"Host": "http://192.168.1.100:8989",
"ApiKey": "dein_sonarr_api_key"
}
],
"Radarr": [
{
"Enabled": false,
"Name": "Radarr",
"Host": "http://192.168.1.101:7878",
"ApiKey": "dein_radarr_api_key"
}
],
"Lidarr": [
{
"Enabled": false,
"Host": "http://192.168.1.102:8686",
"ApiKey": "dein_lidarr_api_key"
},
],
"Readarr": [
{
"Enabled": false,
"Host": "http://192.168.1.103:8787",
"ApiKey": "dein_readarr_api_key"
},
],
"IpLeakTest": {
"Enabled": false
}
}
EOF
msg_ok "Setup UmlautAdaptarr"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/umlautadaptarr.service
[Unit]

View File

@@ -3595,6 +3595,7 @@ _setup_intel_arc() {
$STD apt -y install \
intel-media-va-driver-non-free \
intel-opencl-icd \
libmfx-gen1.2 \
vainfo \
intel-gpu-tools 2>/dev/null || msg_warn "Some Intel Arc packages failed"
@@ -3621,6 +3622,7 @@ _setup_intel_arc() {
intel-media-va-driver-non-free \
ocl-icd-libopencl1 \
libvpl2 \
libmfx-gen1.2 \
vainfo \
intel-gpu-tools 2>/dev/null || msg_warn "Some Intel Arc packages failed"
fi