Compare commits

..

14 Commits

Author SHA1 Message Date
github-actions[bot]
647489cefd Update CHANGELOG.md 2026-04-22 12:48:04 +00:00
John Gorman
518b6778e2 core: Add PHS_VERBOSE env var to skip verbose mode prompts (#13797) 2026-04-22 14:47:44 +02:00
community-scripts-pr-app[bot]
6da3a5f0e2 Update CHANGELOG.md (#13933)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-22 07:25:54 +00:00
CanbiZ (MickLesk)
d044dea89e add --clear to uv venv in update_script() to prevent interactive prompt (#13926) 2026-04-22 09:25:29 +02:00
CanbiZ (MickLesk)
54171b00e0 readd wkhtml from ved
readd from ved
2026-04-22 09:19:54 +02:00
community-scripts-pr-app[bot]
686b9aab81 Update .app files (#13928)
Co-authored-by: GitHub Actions <github-actions[bot]@users.noreply.github.com>
2026-04-22 08:00:49 +02:00
community-scripts-pr-app[bot]
4e5a45feb5 Update CHANGELOG.md (#13931)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-22 05:50:24 +00:00
push-app-to-main[bot]
5141037504 Dashy (#13817)
* Add dashy (ct)

* fix systemctl syntax

---------

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-04-22 07:50:00 +02:00
community-scripts-pr-app[bot]
29f2671e7a Update CHANGELOG.md (#13930)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-22 05:43:45 +00:00
push-app-to-main[bot]
192c2d4fc8 Mini-QR (#13902)
* Add mini-qr (ct)

* Update ct/mini-qr.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

* Update ct/mini-qr.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

* Update install/mini-qr-install.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

---------

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>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2026-04-22 07:43:20 +02:00
community-scripts-pr-app[bot]
d34c88344e Update CHANGELOG.md (#13929)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-22 05:42:16 +00:00
community-scripts-pr-app[bot]
34928f8f1d Update CHANGELOG.md (#13927)
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-04-22 05:42:05 +00:00
push-app-to-main[bot]
759d0aacf0 ownfoil (#13904)
* Add ownfoil (ct)

* Update ct/ownfoil.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

* Update ct/ownfoil.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

* Update install/ownfoil-install.sh

Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>

* Fix backup command to handle errors correctly

---------

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>
Co-authored-by: Slaviša Arežina <58952836+tremor021@users.noreply.github.com>
2026-04-22 07:41:53 +02:00
push-app-to-main[bot]
abac42ca13 ERPNext (#13921)
* Add erpnext (ct)

* use trixie wkhtmltopdf

* remove empty lines

---------

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-04-22 07:41:43 +02:00
18 changed files with 467 additions and 29 deletions

View File

@@ -445,6 +445,27 @@ Exercise vigilance regarding copycat or coat-tailing sites that seek to exploit
</details>
## 2026-04-22
### 🆕 New Scripts
- Dashy ([#13817](https://github.com/community-scripts/ProxmoxVE/pull/13817))
- Mini-QR ([#13902](https://github.com/community-scripts/ProxmoxVE/pull/13902))
- ownfoil ([#13904](https://github.com/community-scripts/ProxmoxVE/pull/13904))
- ERPNext ([#13921](https://github.com/community-scripts/ProxmoxVE/pull/13921))
### 🚀 Updated Scripts
- #### 🐞 Bug Fixes
- add --clear to uv venv in update_script() to prevent interactive prompt [@MickLesk](https://github.com/MickLesk) ([#13926](https://github.com/community-scripts/ProxmoxVE/pull/13926))
### 💾 Core
- #### ✨ New Features
- core: Add PHS_VERBOSE env var to skip verbose mode prompts [@gormanity](https://github.com/gormanity) ([#13797](https://github.com/community-scripts/ProxmoxVE/pull/13797))
## 2026-04-21
### 🆕 New Scripts

View File

@@ -44,7 +44,7 @@ function update_script() {
msg_info "Installing Dependencies"
cd /opt/calibre-web
$STD uv venv
$STD uv venv --clear /opt/calibre-web/.venv
$STD uv pip install --python /opt/calibre-web/.venv/bin/python --no-cache-dir --upgrade pip setuptools wheel
$STD uv pip install --python /opt/calibre-web/.venv/bin/python --no-cache-dir -r requirements.txt
msg_ok "Installed Dependencies"

73
ct/dashy.sh Normal file
View File

@@ -0,0 +1,73 @@
#!/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: tteck (tteckster) | Co-Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://dashy.to/
APP="Dashy"
var_tags="${var_tags:-dashboard}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-6}"
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/dashy/public/ ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "dashy" "Lissy93/dashy"; then
msg_info "Stopping Service"
systemctl stop dashy
msg_ok "Stopped Service"
msg_info "Backing up conf.yml"
if [[ -f /opt/dashy/public/conf.yml ]]; then
cp -R /opt/dashy/public/conf.yml /opt/dashy_conf_backup.yml
else
cp -R /opt/dashy/user-data/conf.yml /opt/dashy_conf_backup.yml
fi
msg_ok "Backed up conf.yml"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "dashy" "Lissy93/dashy" "prebuild" "latest" "/opt/dashy" "dashy-*.tar.gz"
msg_info "Updating Dashy"
cd /opt/dashy
$STD yarn install --ignore-engines --network-timeout 300000
msg_ok "Updated Dashy"
msg_info "Restoring conf.yml"
cp -R /opt/dashy_conf_backup.yml /opt/dashy/user-data
msg_ok "Restored conf.yml"
msg_info "Cleaning"
rm -rf /opt/dashy_conf_backup.yml /opt/dashy/public/conf.yml
msg_ok "Cleaned"
msg_info "Starting Dashy"
systemctl start dashy
msg_ok "Started Dashy"
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}http://${IP}:4000${CL}"

6
ct/headers/dashy Normal file
View File

@@ -0,0 +1,6 @@
____ __
/ __ \____ ______/ /_ __ __
/ / / / __ `/ ___/ __ \/ / / /
/ /_/ / /_/ (__ ) / / / /_/ /
/_____/\__,_/____/_/ /_/\__, /
/____/

6
ct/headers/erpnext Normal file
View File

@@ -0,0 +1,6 @@
__________ ____ _ __ __
/ ____/ __ \/ __ \/ | / /__ _ __/ /_
/ __/ / /_/ / /_/ / |/ / _ \| |/_/ __/
/ /___/ _, _/ ____/ /| / __/> </ /_
/_____/_/ |_/_/ /_/ |_/\___/_/|_|\__/

6
ct/headers/mini-qr Normal file
View File

@@ -0,0 +1,6 @@
__ ____ _ ____ ____
/ |/ (_)___ (_) / __ \ / __ \
/ /|_/ / / __ \/ /_____/ / / / / /_/ /
/ / / / / / / / /_____/ /_/ / / _, _/
/_/ /_/_/_/ /_/_/ \___\_\/_/ |_|

6
ct/headers/ownfoil Normal file
View File

@@ -0,0 +1,6 @@
____ _ __
____ _ ______ / __/___ (_) /
/ __ \ | /| / / __ \/ /_/ __ \/ / /
/ /_/ / |/ |/ / / / / __/ /_/ / / /
\____/|__/|__/_/ /_/_/ \____/_/_/

View File

@@ -43,7 +43,7 @@ function update_script() {
msg_info "Updating Python Dependencies"
cd /opt/homelable/backend
$STD uv venv /opt/homelable/backend/.venv
$STD uv venv --clear /opt/homelable/backend/.venv
$STD uv pip install --python /opt/homelable/backend/.venv/bin/python -r requirements.txt
msg_ok "Updated Python Dependencies"

63
ct/mini-qr.sh Normal file
View File

@@ -0,0 +1,63 @@
#!/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: doge0420
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/lyqht/mini-qr
APP="Mini-QR"
var_tags="${var_tags:-QRcode;}"
var_cpu="${var_cpu:-2}"
var_ram="${var_ram:-2048}"
var_disk="${var_disk:-6}"
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/mini-qr ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "mini-qr" "lyqht/mini-qr"; then
msg_info "Stopping Service"
systemctl stop caddy
msg_ok "Stopped Service"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "mini-qr" "lyqht/mini-qr" "tarball"
msg_info "Installing Dependencies"
cd /opt/mini-qr
$STD npm install
msg_ok "Installed Dependencies"
msg_info "Building MiniQR"
$STD npm run build
msg_ok "Built MiniQR"
msg_info "Starting Service"
systemctl start caddy
msg_ok "Started Service"
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}http://${IP}${CL}"

69
ct/ownfoil.sh Normal file
View File

@@ -0,0 +1,69 @@
#!/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: pajjski
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/a1ex4/ownfoil
APP="ownfoil"
var_tags="${var_tags:-gaming}"
var_cpu="${var_cpu:-1}"
var_ram="${var_ram:-1024}"
var_disk="${var_disk:-4}"
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/ownfoil ]]; then
msg_error "No ${APP} Installation Found!"
exit
fi
if check_for_gh_release "ownfoil" "a1ex4/ownfoil"; then
msg_info "Stopping Service"
systemctl stop ownfoil
msg_ok "Stopped Service"
msg_info "Backing up Data"
cp -r /opt/ownfoil/app/config /opt/ownfoil_data_backup
msg_ok "Backed up Data"
CLEAN_INSTALL=1 fetch_and_deploy_gh_release "ownfoil" "a1ex4/ownfoil" "tarball"
msg_info "Installing Dependencies"
cd /opt/ownfoil
$STD source .venv/bin/activate
$STD uv pip install -r requirements.txt
msg_ok "Installed Dependencies"
msg_info "Restoring Data"
cp -r /opt/ownfoil_data_backup /opt/ownfoil/app/config
rm -rf /opt/ownfoil_data_backup
msg_ok "Restored Data"
msg_info "Starting Service"
systemctl start ownfoil
msg_ok "Started Service"
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}http://${IP}:8465${CL}"

View File

@@ -44,7 +44,7 @@ function update_script() {
msg_info "Installing Python Dependencies"
cd /opt/profilarr/backend
$STD uv venv /opt/profilarr/backend/.venv
$STD uv venv --clear /opt/profilarr/backend/.venv
sed 's/==/>=/g' requirements.txt >requirements-relaxed.txt
$STD uv pip install --python /opt/profilarr/backend/.venv/bin/python -r requirements-relaxed.txt
rm -f requirements-relaxed.txt

View File

@@ -43,7 +43,7 @@ function update_script() {
msg_info "Installing Python Dependencies"
cd /opt/yamtrack
$STD uv venv .venv
$STD uv venv --clear .venv
$STD uv pip install --no-cache-dir -r requirements.txt
msg_ok "Installed Python Dependencies"

42
install/dashy-install.sh Normal file
View File

@@ -0,0 +1,42 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: tteck (tteckster) | Co-Author: CrazyWolf13
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://dashy.to/
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
fetch_and_deploy_gh_release "dashy" "Lissy93/dashy" "prebuild" "latest" "/opt/dashy" "dashy-*.tar.gz"
msg_info "Installing Dashy"
cd /opt/dashy
$STD yarn install --ignore-engines --network-timeout 300000
msg_ok "Installed Dashy"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/dashy.service
[Unit]
Description=dashy
[Service]
Type=simple
WorkingDirectory=/opt/dashy
Environment=NODE_OPTIONS=--openssl-legacy-provider
ExecStart=/usr/bin/node server.js
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now dashy
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -30,8 +30,7 @@ $STD apt install -y \
fontconfig \
libjpeg-dev \
libmariadb-dev \
python3-pip \
wkhtmltopdf
python3-pip
msg_ok "Installed Dependencies"
NODE_VERSION="24" NODE_MODULE="yarn" setup_nodejs
@@ -50,6 +49,13 @@ EOF
$STD systemctl restart mariadb
msg_ok "Configured MariaDB for ERPNext"
msg_info "Installing wkhtmltopdf"
WKHTMLTOPDF_URL="https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb"
$STD curl -fsSL -o /tmp/wkhtmltox.deb "$WKHTMLTOPDF_URL"
$STD apt install -y /tmp/wkhtmltox.deb
rm -f /tmp/wkhtmltox.deb
msg_ok "Installed wkhtmltopdf"
msg_info "Installing Frappe Bench"
useradd -m -s /bin/bash frappe
chown frappe:frappe /opt

View File

@@ -0,0 +1,60 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: doge0420
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/lyqht/mini-qr
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y \
libharfbuzz0b \
caddy \
fontconfig
msg_ok "Installed Dependencies"
NODE_VERSION="20" setup_nodejs
fetch_and_deploy_gh_release "mini-qr" "lyqht/mini-qr" "tarball"
msg_info "Building MiniQR"
cd /opt/mini-qr
$STD npm install
$STD npm run build
msg_ok "Built MiniQR"
msg_info "Configuring Caddy"
cat <<EOF >/etc/caddy/Caddyfile
:80 {
root * /opt/mini-qr/dist
file_server
# Handle client-side routing
try_files {path} /index.html
# Cache static assets
@assets {
path /assets/*
}
header @assets Cache-Control "public, immutable, max-age=31536000"
# Correct MIME types for JS modules
@jsmodules {
path *.js *.mjs
}
header @jsmodules Content-Type "application/javascript"
}
EOF
systemctl enable -q --now caddy
systemctl reload caddy
msg_ok "Configured Caddy"
motd_ssh
customize
cleanup_lxc

View File

@@ -0,0 +1,52 @@
#!/usr/bin/env bash
# Copyright (c) 2021-2026 community-scripts ORG
# Author: pajjski
# License: MIT | https://github.com/community-scripts/ProxmoxVE/raw/main/LICENSE
# Source: https://github.com/a1ex4/ownfoil
source /dev/stdin <<<"$FUNCTIONS_FILE_PATH"
color
verb_ip6
catch_errors
setting_up_container
network_check
update_os
msg_info "Installing Dependencies"
$STD apt install -y git
msg_ok "Installed Dependencies"
setup_uv
fetch_and_deploy_gh_release "ownfoil" "a1ex4/ownfoil" "tarball"
msg_info "Setting up Ownfoil"
cd /opt/ownfoil
$STD uv venv .venv
$STD source .venv/bin/activate
$STD uv pip install -r requirements.txt
msg_ok "Setup ownfoil"
msg_info "Creating Service"
cat <<EOF >/etc/systemd/system/ownfoil.service
[Unit]
Description=ownfoil Service
After=network.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/ownfoil
ExecStart=/opt/ownfoil/.venv/bin/python /opt/ownfoil/app/app.py
Restart=on-failure
RestartSec=5
[Install]
WantedBy=multi-user.target
EOF
systemctl enable -q --now ownfoil
msg_ok "Created Service"
motd_ssh
customize
cleanup_lxc

View File

@@ -2702,16 +2702,21 @@ advanced_settings() {
# STEP 28: Verbose Mode & Confirmation
# ═══════════════════════════════════════════════════════════════════════════
28)
local verbose_default_flag="--defaultno"
[[ "$_verbose" == "yes" ]] && verbose_default_flag=""
if whiptail --backtitle "Proxmox VE Helper Scripts [Step $STEP/$MAX_STEP]" \
--title "VERBOSE MODE" \
$verbose_default_flag \
--yesno "\nEnable Verbose Mode?\n\nShows detailed output during installation." 12 58; then
# PHS_VERBOSE forces verbose mode and skips the prompt
if [[ "$PHS_MODE" == "verbose" ]]; then
_verbose="yes"
else
_verbose="no"
local verbose_default_flag="--defaultno"
[[ "$_verbose" == "yes" ]] && verbose_default_flag=""
if whiptail --backtitle "Proxmox VE Helper Scripts [Step $STEP/$MAX_STEP]" \
--title "VERBOSE MODE" \
$verbose_default_flag \
--yesno "\nEnable Verbose Mode?\n\nShows detailed output during installation." 12 58; then
_verbose="yes"
else
_verbose="no"
fi
fi
# Build summary
local ct_type_desc="Unprivileged"
@@ -3444,7 +3449,7 @@ configure_ssh_settings() {
# msg_menu()
#
# - Displays a numbered menu for update_script() functions
# - In silent mode (PHS_SILENT=1): auto-selects the default option
# - In silent mode (PHS_MODE=silent): auto-selects the default option
# - In interactive mode: shows menu via read with 10s timeout + default fallback
# - Usage: CHOICE=$(msg_menu "Title" "tag1" "Description 1" "tag2" "Desc 2" ...)
# - The first item is always the default
@@ -3468,7 +3473,7 @@ msg_menu() {
local count=${#tags[@]}
# Silent mode: return default immediately
if [[ -n "${PHS_SILENT+x}" ]] && [[ "${PHS_SILENT}" == "1" ]]; then
if [[ "$PHS_MODE" == "silent" ]]; then
echo "$default_tag"
return 0
fi
@@ -3504,6 +3509,30 @@ msg_menu() {
return 0
}
# ------------------------------------------------------------------------------
# resolve_phs_mode()
#
# - Resolves PHS_SILENT/PHS_VERBOSE env vars into a single PHS_MODE enum
# - Values: "silent", "verbose", "interactive"
# - If both PHS_SILENT=1 and PHS_VERBOSE=1, shows a conflict warning
# and defaults to "interactive"
# - Should be called once early, before any mode-dependent logic
# ------------------------------------------------------------------------------
resolve_phs_mode() {
if [[ -n "${PHS_SILENT+x}" ]] && [[ "${PHS_SILENT}" == "1" ]] && [[ -n "${PHS_VERBOSE+x}" ]] && [[ "${PHS_VERBOSE}" == "1" ]]; then
whiptail --backtitle "Proxmox VE Helper Scripts" \
--title "⚠️ Configuration Conflict Warning" \
--msgbox "PHS_SILENT and PHS_VERBOSE environment variables are both set.\n\nFalling back to interactive mode." 10 58
PHS_MODE="interactive"
elif [[ -n "${PHS_SILENT+x}" ]] && [[ "${PHS_SILENT}" == "1" ]]; then
PHS_MODE="silent"
elif [[ -n "${PHS_VERBOSE+x}" ]] && [[ "${PHS_VERBOSE}" == "1" ]]; then
PHS_MODE="verbose"
else
PHS_MODE="interactive"
fi
}
# ------------------------------------------------------------------------------
# start()
#
@@ -3514,17 +3543,16 @@ msg_menu() {
# ------------------------------------------------------------------------------
start() {
source <(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/misc/tools.func)
resolve_phs_mode
if command -v pveversion >/dev/null 2>&1; then
install_script || return 0
return 0
elif [ ! -z ${PHS_SILENT+x} ] && [[ "${PHS_SILENT}" == "1" ]]; then
elif [[ "$PHS_MODE" == "silent" ]]; then
VERBOSE="no"
set_std_mode
ensure_profile_loaded
get_lxc_ip
update_script
update_motd_ip
cleanup_lxc
elif [[ "$PHS_MODE" == "verbose" ]]; then
VERBOSE="yes"
set_std_mode
else
CHOICE=$(whiptail --backtitle "Proxmox VE Helper Scripts" --title "${APP} LXC Update/Setting" --menu \
"Support/Update functions for ${APP} LXC. Choose an option:" \
@@ -3548,12 +3576,12 @@ start() {
exit 0
;;
esac
ensure_profile_loaded
get_lxc_ip
update_script
update_motd_ip
cleanup_lxc
fi
ensure_profile_loaded
get_lxc_ip
update_script
update_motd_ip
cleanup_lxc
}
# ==============================================================================

View File

@@ -940,7 +940,7 @@ is_verbose_mode() {
#
# - Detects if script is running in unattended/non-interactive mode
# - Checks MODE variable first (primary method)
# - Falls back to legacy flags (PHS_SILENT, var_unattended)
# - Falls back to legacy flags (PHS_MODE, var_unattended)
# - Returns 0 (true) if unattended, 1 (false) otherwise
# - Used by prompt functions to auto-apply defaults
#
@@ -984,7 +984,7 @@ is_unattended() {
esac
# Legacy fallbacks for compatibility
[[ "${PHS_SILENT:-0}" == "1" ]] && return 0
[[ "${PHS_MODE:-}" == "silent" ]] && return 0
[[ "${var_unattended:-}" =~ ^(yes|true|1)$ ]] && return 0
[[ "${UNATTENDED:-}" =~ ^(yes|true|1)$ ]] && return 0