Commit Graph

1412 Commits

Author SHA1 Message Date
CanbiZ (MickLesk)
1357a6f26e fix(msg_menu): redirect menu display to /dev/tty to prevent capture in command substitution 2026-02-09 17:12:56 +01: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
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
CanbiZ (MickLesk)
e70de7d95f feat(tools): fallback to previous release when asset is missing (#11660)
When fetch_and_deploy_gh_release fails to find a matching asset in the
target release (binary/prebuild/singlefile modes), scan up to 15 older
releases for a compatible asset. Prompts the user with a 60s timeout
(default: yes) before using the fallback version.

Addresses issues like SigNoz #11652 where the latest release has no
matching OTel collector binary.
2026-02-07 20:37:50 +01:00
Chris
bb0188b38c [Fix] build.func: QOL grammar adjustment for Creating LXC message (#11633) 2026-02-06 20:55:35 +01:00
ls-root
ef8449e4da fix(core): spinner misalignment (#11627) 2026-02-06 17:58:50 +01:00
CanbiZ (MickLesk)
92506cdc34 feat(cloud-init): add interactive SSH key discovery and selection (#11547)
- Add SSH key discovery from standard paths (/root/.ssh, /etc/ssh)
- Add whiptail-based interactive key selection dialog
- Extract key fingerprints and comments for better identification
- Support multiple key selection with checkboxes
- Auto-skip private keys and known_hosts files
- Restore shell state after library load
2026-02-05 08:11:13 +01:00
CanbiZ (MickLesk)
fa86809863 core: create vm-core.func from dev (#11528) 2026-02-04 11:16:06 +01:00
Chris
0b48fdf7fd [FIX] tools.func: trim spaces in app_lc (#11512) 2026-02-03 22:08:34 +01:00
CanbiZ (MickLesk)
627587c54b feat(autocaliweb): migrate from GitHub to Codeberg (#11440)
- Add Codeberg API functions: codeberg_api_call, get_latest_codeberg_release, check_for_codeberg_release
- Add fetch_and_deploy_codeberg_release function for Codeberg releases
- Update autocaliweb install and update scripts to use Codeberg
- Update autocaliweb.json documentation and website URLs
2026-02-01 22:27:31 +01:00
Slaviša Arežina
7e4e0b8941 Update fetch_and_deply_from_url (#11410) 2026-02-01 13:19:11 +01:00
Slaviša Arežina
f09f723a33 Add fetch_and_deploy_from_url (#11376) 2026-01-30 22:25:55 +01:00
CanbiZ (MickLesk)
90eb33c09e refactor(php): remove redundant PHP_MODULE entries (#11362)
- Add dom and gmp to BASE_MODULES in setup_php()
- Remove modules already covered by BASE_MODULES (cli,common,bcmath,curl,dom,gd,gmp,intl,mbstring,readline,xml,zip)
- Remove modules already covered by EXTENDED_MODULES (mysql,sqlite3,pgsql,redis,imagick,bz2,apcu)
- Remove modules already covered by BUILTIN (ctype,exif,ffi,fileinfo,gettext,iconv,pdo,tokenizer)
- Affected: 31 install scripts, 12 ct scripts
2026-01-30 13:05:05 +01:00
CanbiZ (MickLesk)
710884c90b fix(php): improve module handling and prevent installation failures (#11358)
Changes to setup_php():
- Add version detection for PHP 8.5+ built-in opcache
- Define BUILTIN_MODULES list for modules included in php-common
  (ctype, fileinfo, iconv, tokenizer, phar, posix, etc.)
- Filter out built-in modules before attempting installation
- Verify each package exists via apt-cache before adding to install list
- Skip unavailable packages with informational message instead of error
- Add extended default modules (mysql, sqlite3, pgsql, redis, imagick,
  bz2, apcu) to cover ~90% of typical use cases
- Improve error handling with graceful degradation

This prevents installation failures when:
- PHP version has module built into core (e.g., opcache in 8.5+)
- Module is provided by php-common (ctype, fileinfo, etc.)
- Package is renamed or unavailable in specific PHP version

Fixes #11359
2026-01-30 10:29:51 +01:00
CanbiZ (MickLesk)
313faa02fe fix(meilisearch): fix dump creation and improve migration handling
Bug fixes:
- dumpUid is only available AFTER the dump task completes, not in the
  initial POST /dumps response. Fixed the extraction logic to wait for
  task completion first, then extract dumpUid from the task result.
- Removed non-existent API endpoint /dumps/{uid}/import - Meilisearch
  only supports dump import via CLI flag --import-dump

Improvements:
- If dump creation fails, backup the data directory before proceeding
  instead of just overwriting (allows manual recovery)
- Better error messages with actual API response content
- Proper health check loop during import with process monitoring
- Clear user guidance about what to do after failed migration

Fixes #11349
2026-01-30 10:29:08 +01:00
CanbiZ (MickLesk)
49aa898edd fix(meilisearch): add data migration for version upgrades (#11356)
Meilisearch requires a dump/restore process when upgrading between
incompatible versions (different major.minor). The previous update
logic simply replaced the binary, causing database corruption.

This fix:
- Detects version changes that require migration
- Creates a data dump before upgrading
- Removes old incompatible data after binary update
- Imports the dump to restore data in new format
- Falls back to --import-dump CLI flag for older API versions
- Adds proper error handling and timeouts

Fixes #11349
2026-01-30 10:20:57 +01:00
Michel Roegl-Brunner
47d63e92bf build.func: Replace storage variable with searchdomain variable (#11322) 2026-01-29 13:29:25 +01:00
CanbiZ (MickLesk)
8e7dc349ac core: Add config file handling options | Fix Vikunja update with interactive overwrite (#11317) 2026-01-29 12:43:54 +01:00
Alexander
cca0d9e584 Fix whiptail menu loop when other interfaces are present (#11237) 2026-01-28 17:35:24 +01:00
Lavacano
bac7f07a74 The added sed command s/^[- ]*// removes any leading dashes or spaces from the description (#11285) 2026-01-28 17:31:26 +01:00
CanbiZ (MickLesk)
910723c745 Revert "fix(build): use pct mount to fix Debian 13 root ownership"
This reverts commit 6267250e49.
2026-01-28 14:54:30 +01:00
CanbiZ (MickLesk)
6267250e49 fix(build): use pct mount to fix Debian 13 root ownership 2026-01-28 14:54:15 +01:00
CanbiZ (MickLesk)
b35437c391 fix(build): fix Debian 13 root ownership from host before customization 2026-01-28 14:44:00 +01:00
CanbiZ (MickLesk)
032dfacce2 fix(install): run chown in subshell to avoid ERR trap 2026-01-28 14:42:10 +01:00
CanbiZ (MickLesk)
2938bb29f5 fix(install): ignore chown error in unprivileged containers 2026-01-28 14:34:22 +01:00
CanbiZ (MickLesk)
49c1eef653 fix(install): fix Debian 13 LXC template root ownership bug (#11277)
The Debian 13 LXC template has a bug where / is owned by nobody instead
of root. This causes systemd-tmpfiles to fail with exit code 73 during
package installation (e.g. authelia).

Fix by checking and correcting / ownership at container setup.
2026-01-28 13:56:17 +01:00
CanbiZ (MickLesk)
ff4f5f6a0a core: update dynamic values in LXC profile on update_motd_ip (#11268)
* feat(build.func): update dynamic values in LXC profile on update_motd_ip

- Updates only OS/Hostname/IP lines in /etc/profile.d/00_lxc-details.sh
- Checks if values changed before updating (avoids unnecessary I/O)
- Preserves user customizations (app name, GitHub link, custom lines)
- Only updates if file exists and contains 'community-scripts' marker
- Fixes outdated OS version display after in-place upgrades (e.g., Bookworm → Trixie)
- Now reads OS name/version from /etc/os-release at login time

Fixes community-scripts/ProxmoxVE issue with static MOTD after OS upgrade

* add update_motd_ip in routine
2026-01-28 13:26:20 +01:00
CanbiZ (MickLesk)
fa00a51110 fix(tools): prevent systemd-tmpfiles failure in unprivileged LXC during .deb install (#11271)
Set SYSTEMD_OFFLINE=1 for apt/dpkg in binary mode to prevent systemd-tmpfiles
'unsafe path transition' errors in unprivileged containers (Debian 13+/systemd 257+).
2026-01-28 13:25:07 +01:00
CanbiZ (MickLesk)
03e660fdef fix(tools.func): add PHP-FPM systemd override for LXC containers 2026-01-28 11:39:48 +01:00
CanbiZ (MickLesk)
533ca924c9 tools.func: fix php "wait_for" hint (#11254) 2026-01-28 11:09:30 +01:00
CanbiZ (MickLesk)
ddd0164c54 tools.func: add new function - setup_meilisearch (#11258) 2026-01-28 11:08:52 +01:00
Milen Valchev
0e7e08579b feat: add NVIDIA driver install prompt for GPU-enabled containers (#11184) 2026-01-27 22:40:47 +01:00
CanbiZ (MickLesk)
fa29f74c31 feat(build.func): add nesting warning for systemd-based distributions (#11208) 2026-01-26 22:21:09 +01:00
CanbiZ (MickLesk)
d42dbc155c core: refine cleanup_lxc to safely clear caches (#11197)
Updated the cleanup_lxc function to directly remove cache directories for Python, Node.js, Go, Rust, Ruby, and PHP, instead of relying on package manager commands. Improved error handling to prevent cleanup failures from affecting installs, and clarified documentation to reflect safer, more targeted cache removal.
2026-01-26 14:55:04 +01:00
CanbiZ (MickLesk)
61ea6d980a fix(nvidia): use versioned nvidia-utils package for Ubuntu fallback (#11139)
- nvidia-utils is a virtual package and requires version suffix (e.g. nvidia-utils-580)
- Use nvidia_major_version to install correct versioned packages
- Show helpful warning message instead of crashing on failure

Fixes installation failures on Ubuntu 24.04 with NVIDIA 580.x drivers
2026-01-24 23:23:10 +01:00
CanbiZ (MickLesk)
b2017086cd Bump various scripts to Debian 13 (Trixie) (#11093) 2026-01-23 21:54:23 +01:00
CanbiZ (MickLesk)
eb596d2364 core: add IPv6 fallback support to get_current_ip functions | add check for SSH_KEYS_FILE in user_defaults (#11067)
* fix(core): add IPv6 fallback support to get_current_ip functions

Fixes IP detection in IPv6-only environments by adding fallback:
- Try IPv4 first (existing behavior)
- Fall back to IPv6 via interface lookup (eth0 scope global)
- Fall back to IPv6 routing with Google/Cloudflare DNS targets

Closes #issue-ipv6-only-environment

* fix(build): use SSH_AUTHORIZED_KEY from user defaults when no SSH_KEYS_FILE exists

When using 'User Defaults' with var_ssh_authorized_key set in default.vars,
the SSH key was not being installed because install_ssh_keys_into_ct() only
checked for SSH_KEYS_FILE (which is only created in Advanced Settings).

Now the function also checks SSH_AUTHORIZED_KEY and creates a temporary
SSH_KEYS_FILE if needed.

Fixes #11062
2026-01-23 09:05:17 +01:00
CanbiZ (MickLesk)
d95a273753 feat(tools.func): use distro packages for MariaDB by default (#11049)
- Changed setup_mariadb() to use Debian/Ubuntu distribution packages by default
- Official MariaDB repository only used when specific version is requested
- Added cleanup logic for old/orphaned repository files with apt update
- Added version comparison to prevent downgrades (keeps higher version installed)
- Added automatic fallback to distro packages if repo installation fails
- Extracted _setup_mariadb_runtime_dir() helper function
- Updated all related documentation

This change improves reliability by avoiding MariaDB mirror issues
(HTTPS->HTTP redirects, geographic availability problems) for standard
installations while still allowing specific versions when needed.
2026-01-22 11:33:13 +01:00
CanbiZ (MickLesk)
5c9087a91a tools: add ubuntu PHP repository setup (#11034)
Switches to using the ondrej/php PPA for Ubuntu and retains the Sury repository for Debian when setting up PHP. This ensures compatibility with the respective distributions' recommended PHP sources.
2026-01-21 15:39:15 +01:00
CanbiZ (MickLesk)
7395a44277 Run TypeScript compilation in Joplin Server scripts
Added 'yarn run tsc' to both update and install scripts for Joplin Server to ensure TypeScript sources are compiled. Also removed an unused variable from build.func for code cleanup.
2026-01-21 13:07:20 +01:00
CanbiZ (MickLesk)
fe2384a2fa Initialize variables in create_lxc_container
Added initialization for ONLINE_TEMPLATE and ONLINE_TEMPLATES arrays at the start of the create_lxc_container function to ensure variables are defined before use.
2026-01-21 12:42:19 +01:00
CanbiZ (MickLesk)
5384adf0c3 Remove unnecessary set +u/set -u in create_lxc_container
only as test exist
2026-01-21 12:40:55 +01:00
CanbiZ (MickLesk)
ed18776710 fix unbound var: ONLINE_TEMPLATES 2026-01-21 12:39:57 +01:00
CanbiZ (MickLesk)
88557d53f4 core: allow empty tags & improve template search (#11020) 2026-01-21 12:01:34 +01:00
CanbiZ (MickLesk)
cb2141ebe2 Revert "Revert "core: add retry logic for template lock in LXC container crea…" (#11013)
This reverts commit 7699f4f6ad.
2026-01-20 23:41:53 +01:00
CanbiZ (MickLesk)
7699f4f6ad Revert "core: add retry logic for template lock in LXC container creation (#1…" (#11011)
This reverts commit d71f24bddb.
2026-01-20 23:35:39 +01:00
CanbiZ (MickLesk)
d71f24bddb core: add retry logic for template lock in LXC container creation (#11002) 2026-01-20 22:36:32 +01:00
CanbiZ (MickLesk)
6dd5fbd7da core: add input validations for several functions (#10995) 2026-01-20 15:03:14 +01:00
CanbiZ (MickLesk)
ff5263981b core: implement ensure_profile_loaded function (#10999) 2026-01-20 14:59:41 +01:00
CanbiZ (MickLesk)
9e69c7a76e feat(core): add RFC 1123/952 compliant hostname/FQDN validation (#10977) 2026-01-19 22:39:57 +01:00