Commit Graph
100 Commits
Author SHA1 Message Date
CanbiZ (MickLesk)andGitHub 303bb672e6 Bump GitHub Actions across workflows (#16091)
* Bump GitHub Actions across workflows

Update workflow dependencies to newer major versions in repository automation files. This upgrades `actions/checkout` to v7, `actions/github-script` to v9, `actions/create-github-app-token` to v3, and GitHub Pages actions (`upload-pages-artifact` and `deploy-pages`) to v5 to keep CI/CD and maintenance workflows current.

* add dependabot for gh actions
2026-07-28 10:08:38 +02:00
CanbiZ (MickLesk)andGitHub 895cc7fdcf core: fix OS version fallback when the host catalog lacks the requested version & harden template validation (#16068) 2026-07-27 19:32:09 +02:00
CanbiZ (MickLesk)andGitHub 88ff91e9f2 Vikunja: pin install/update to v2.3.0 due upstream issues (#16059)
* Pin Vikunja install/update to v2.3.0

Set both install and update scripts to deploy Vikunja v2.3.0 instead of latest. The update flow now checks against this pinned release and includes context that v2.4.0 is temporarily avoided due to an upstream startup failure caused by the packaged systemd SystemCallFilter.

* minor fix
2026-07-27 10:54:07 +02:00
CanbiZ (MickLesk)andGitHub da79270870 core: Handle LXC upgrade prompt cancellation (#16058)
Clarify the upgrade prompt options in `create_lxc_container`, treat empty or unrecognized input as ignore instead of implicit cancel, and explicitly abort container creation when the user chooses Cancel.
2026-07-27 10:48:05 +02:00
CanbiZ (MickLesk)andGitHub 300744cc7c build.func: fix OS mismatch message when script target moved to an older OS (#16035) 2026-07-26 18:42:11 +02:00
CanbiZ (MickLesk)andGitHub 62690cfafb InvenTree: populate database engine/name in config.yaml before invoke update (#16022) 2026-07-26 18:34:05 +02:00
CanbiZ (MickLesk)andGitHub 2dd9d98e8a OPNsense VM: answer console password prompt explicitly (#16021) 2026-07-26 16:57:29 +02:00
CanbiZ (MickLesk)andGitHub 01984190c1 SparkyFitness: substitute SPARKY_FITNESS_FRONTEND_URL in nginx config (#16007) 2026-07-25 12:55:01 +10:00
2fcbee5057 Termix: migrate database to new db/data layout introduced in 2.5.1 (#15996)
Migrate Termix database to the new db/data layout introduced in 2.5.1, fail fast on backend build errors, and precreate the db/data directory on fresh installs.

Co-authored-by: P3RF3CTION <13474113+P3RF3CTION@users.noreply.github.com>
2026-07-24 19:55:46 +10:00
CanbiZ (MickLesk)andGitHub 3e0c0d7955 Sync-in: create admin user with admin role instead of default user (#15983)
* Sync-in: create admin user with admin role instead of default user

* Sync-in: use heredoc for credentials file, matching repo convention
2026-07-24 10:19:35 +02:00
CanbiZ (MickLesk)andGitHub f40adfa1da VM: fix machine type selection being ignored, VM always created as q35 (#15995)
* HAOS: fix machine type selection being ignored, VM always created as q35

* Fix machine parameter formatting in VM script
2026-07-24 10:03:48 +02:00
CanbiZ (MickLesk)andGitHub d2b75f4c5d IronClaw: pin to v0.29.1, 1.0 Reborn CLI/config is incompatible (#15982) 2026-07-23 23:19:05 +02:00
CanbiZ (MickLesk)andGitHub b2f3e192af Cockpit: default to Debian 13, 45Drives now ships Trixie packages | little refactor (#15984) 2026-07-23 23:18:28 +02:00
CanbiZ (MickLesk)andGitHub 3a7305a8cf pve-tool: storage share helper script for Proxmox (#15869)
* pve-tool: storage share helper script for Proxmox

This script provides a menu-driven interface for managing various storage types in Proxmox, including SMB, NFS, and iSCSI. It includes functions for testing mounts, adding storage, and managing LXC mountpoints.

* bump function call

* add dynamic whiptail (feedback from #15882)

* broken whiptail in menu 4

* fix ui bug, more space for container names

* fix whiptail pick mountpoint

* Allow removing multiple LXC mountpoints

Update `remove_lxc_mountpoint` in `storage-share-helper.sh` to support multi-select mountpoint removal for a container. Each selected mountpoint is now confirmed individually (default No), processed independently, and reported in a final result summary with `removed`, `FAILED`, or `skipped` status.

* stupid whiptail.. now done

* Update storage-share-helper.sh
2026-07-22 14:03:09 +02:00
CanbiZ (MickLesk)andGitHub 0576b7c61f OPNSense: Bump FreeBSD to 15 and OPNSense to 26.7 (#15943)
* OPNSense: Bump FreeBSD to 15 and OPNSense to 26.7

* fix user feedback

* fix typo

* fix url for image

* Replace fixed OPNsense wait with screen polling

Swap the hardcoded 1000-second sleep for an adaptive loop that watches VM console screendump hashes and proceeds after sustained stability. The new logic enforces a minimum 5-minute wait, checks every 30 seconds, and caps total wait at 40 minutes to handle slower hosts or screendump failures more reliably.

* Harden OPNsense build wait detection

Improves VM install completion detection by encapsulating screendump hashing in a helper, clearing stale dump files, and trying both `qm monitor` and `pvesh` monitor paths. The stability check now tolerates alternating A/B frames from a blinking login cursor instead of requiring one identical frame. It also adds elapsed-time progress output and a safe fallback to a fixed 12-minute wait when screendumps are unavailable, avoiding false completion or endless polling.
2026-07-22 08:59:05 +02:00
CanbiZ (MickLesk)andGitHub d5f9db35f3 core: add OS mismatch guard for container updates (#15948)
* core: add OS mismatch guard for container updates

Introduces `check_container_os_guard()` to compare the container's `/etc/os-release` against the script's recommended `var_os`/`var_version` before running updates. On mismatch, interactive runs now prompt to continue (default no), while silent/headless runs abort to avoid partial breakage on unsupported bases. A bypass flag (`var_ignore_os_mismatch=1|yes|true|on`) was added, and the guard is wired into all update entry paths in `start()`.

* Refine OS mismatch update guidance

Updates the OS version mismatch prompts in `check_container_os_guard()` to recommend upgrading the existing container OS to the target release before rerunning the update, instead of recreating the container. The skip/error path now uses the same guidance while still documenting `var_ignore_os_mismatch=1` as an override.

* Add persistent OS mismatch bypass option

Enhances `check_container_os_guard` to support a persistent opt-out for OS version mismatch checks. The prompt now uses a 3-option whiptail menu (cancel, continue once, continue and remember), and stores ignored targets in `/root/.helper-scripts-ignoreOSupdate` so users are re-prompted when a newer recommended OS appears. Messaging was also tightened to explicitly warn that bypassing may break updates and is unsupported.

* switch to /usr/local
2026-07-22 08:55:32 +02:00
CanbiZ (MickLesk)andGitHub a339c08bca InvoiceNinja: preserve and Re-download snappdf Chromium (#15956)
* Re-download snappdf Chromium after Invoice Ninja updates

update_script() redeploys /opt/invoiceninja via CLEAN_INSTALL, which
wipes vendor/beganovich/snappdf/versions. That path isn't covered by
create_backup/restore_backup, so the Chromium binary snappdf needs for
PDF generation was missing after every update, breaking PDFs (#15942).
Re-run the same "vendor/bin/snappdf download" step the install script
already does, right after the backup is restored.

* Back up snappdf's Chromium download to avoid re-fetching on every update

vendor/bin/snappdf download is idempotent: it exits immediately without
downloading if versions/revision.txt already exists, and PDF generation
doesn't check that version against the installed snappdf package - it
just uses whatever's in versions/. So the cached Chromium build survives
just fine across an update via the existing backup/restore mechanism.
Add vendor/beganovich/snappdf/versions to create_backup/restore_backup;
keep the snappdf download call only as a safety net for when the backup
doesn't have it yet (e.g. the first update after this fix ships).

* Remove explanatory comment
2026-07-22 08:18:21 +02:00
CanbiZ (MickLesk)andGitHub e4d0e743e4 Preserve default mongod.conf when configuring Anytype replica set (#15954)
Overwriting /etc/mongod.conf with only the replication block wiped
out storage.dbPath from the mongodb-org package default, so mongod
fell back to its compiled-in /data/db path, which was never created.
Append the replication section instead of replacing the file.
2026-07-22 08:18:12 +02:00
CanbiZ (MickLesk)andGitHub b2d54f2a72 Nametag: fix missing tailwindcss module (#15955)
* Fix Nametag update failing with missing tailwindcss module

npm ci during update ran with devDependencies omitted, likely because
NODE_ENV=production was already present in the environment by then
(npm's documented default: omit=dev when NODE_ENV=production). Since
@tailwindcss/postcss is a devDependency, the subsequent `npm run build`
failed with "Cannot find module '@tailwindcss/postcss'". Force devDeps
to be installed regardless of NODE_ENV via --include=dev.

* Apply --include=dev to fresh installs too, for parity with update fix

Couldn't confirm within this repo why devDependencies would only be
omitted on update and not on a fresh install - create_backup/
restore_backup are plain file copies and nothing in tools.func sets
NODE_ENV or writes an .npmrc. Since npm ci runs before .env is sourced
in both scripts, apply the same explicit --include=dev to the installer
as defense-in-depth against the same class of failure.
2026-07-22 08:18:01 +02:00
CanbiZ (MickLesk)andGitHub bd3e3bd5f9 Standardize CT update backup handling (#15937) 2026-07-21 12:52:51 +02:00
CanbiZ (MickLesk)andGitHub e45d4c6349 Pangolin: Bump Version to 1.21.0 (#15938) 2026-07-21 12:52:18 +02:00
CanbiZ (MickLesk)andGitHub 6f04a9787f core-refactor: single-reporter telemetry rewrite (#15933)
Overhaul the telemetry system to enforce a single-reporter model where only the HOST sends terminal statuses (success/failed/aborted) to the API. Containers now write local artifact files (.failed flag + .errinfo) that the host picks up after lxc-attach returns, preventing the race condition where a metadata-less container payload would win over the full host payload.

Key changes:
- Add TELEMETRY_CONTEXT=container export in install.func/alpine-install.func to mark container context before error handling starts
- Introduce _is_container_context() heuristic and _container_write_failure() artifact writer in error_handler.func
- Refactor api.func: unified _tm_payload() builder (full metadata on every send), _tm_send() curl wrapper, _tm_enabled() gate, telemetry_collect_sysinfo() cached collector
- Add structured .errinfo capture in silent() (core.func) using byte-offset to extract exactly the failing command's output
- Pull .errinfo from container in build.func after lxc-attach for precise error traces
- Add categorize_error(), telemetry_new_attempt(), detect_arm(), REPO_SLUG tracking
- Signal exits (129/130/143) now report as 'aborted' instead of 'failed'
- Remove post_update_to_api_extended() (superseded by unified _tm_payload)
- Export REPO_SOURCE, REPO_SLUG, TELEMETRY_PLATFORM into container environment
2026-07-20 20:32:36 +02:00
CanbiZ (MickLesk)andGitHub 3b8f57672e AFFiNE: Bump version to v0.27.2 (#15930) 2026-07-20 17:57:16 +02:00
CanbiZ (MickLesk)andGitHub e925e29966 RomM: use backup helpers in update / clear folder (#15915)
* RomM: use backup helpers in update / clear folder

Replace manual .env backup/restore with create_backup and restore_backup helpers, and add CLEAN_INSTALL=1 flag to fetch_and_deploy_gh_release.

* add screenscraper env

* add rom_patcher

* add ruffle and emulatorJS
2026-07-20 14:39:29 +02:00
CanbiZ (MickLesk)andGitHub 5b4e526329 tools.func: add support for extracting 7z archives (#15919) 2026-07-20 11:57:41 +02:00
CanbiZ (MickLesk)andGitHub f8cc69e244 Gotify: Migration to v3 (#15912) 2026-07-20 11:55:01 +02:00
CanbiZ (MickLesk)andGitHub fa9377cd45 Zammad : bind Elasticsearch to 127.0.0.1 (#15909) 2026-07-20 11:54:04 +02:00
CanbiZ (MickLesk)andGitHub 2c13cb6a38 Meilisearch : use dumpless Meilisearch upgrades (#15921) 2026-07-20 11:53:27 +02:00
CanbiZ (MickLesk)andGitHub 9ea82fa992 core: Improve GPU detection and mapping logic (#15918)
Refactor GPU detection logic to map DRI nodes to their owning GPUs based on vendor IDs. Update messages for detected Intel and AMD GPUs.
2026-07-20 11:46:33 +02:00
CanbiZ (MickLesk)andGitHub 31b7024997 Fix Omada package version extraction (#15908)
Update both `ct/omada.sh` and `install/omada-install.sh` to parse the Omada version directly from the `_v..._linux` segment of the Debian filename. This removes the old dependency on a timestamp suffix format and ensures `.omada` gets a valid version when TP-Link package naming varies.
2026-07-20 11:43:34 +02:00
b098501a37 tools.func: centralize deploy tail + trap-based tmpdir cleanup (#15872)
* tools.func: replace rm -rf with find for safer directory cleanup

* tools.func: replace rm -rf with find for safer directory cleanup

* refactor(tools.func): centralize deploy tail + trap-based tmpdir cleanup

Extract the duplicated post-download logic of the fetch_and_deploy_*
helpers into two shared functions and switch per-branch cleanup to a
single RETURN trap.

- _deploy_source_tarball: shared source-tarball tail (6 call sites)
- _deploy_unpacked_archive: shared prebuild-archive tail (3 call sites)
- RETURN trap per function guarantees tmpdir/unpack_tmp cleanup on every
  return path, replacing ~40 manual `rm -rf "$tmpdir"` lines
- CLEAN_INSTALL now lives in the helpers instead of 12 copies

Behavior-preserving except: codeberg prebuild gains .txz support and
uses helper return codes; from_url resets shopt on error paths.

* Add _download_source_tarball with retry/validation

Introduce `_download_source_tarball` helper that validates gzip integrity after download and retries up to 3 times. This guards against truncated-but-valid-HTTP responses from GitHub/GitLab/Codeberg on-the-fly archive generation. Replace ad-hoc curl/curl_download calls in fetch_and_deploy_* functions with the new helper. Also remove redundant tmpdir cleanup before early returns (tmpdir is cleaned up at function exit).

* Fix Manyfold Ruby setup home initialization

Create the `manyfold` service user before calling `setup_ruby` so `/home/manyfold` exists when rbenv profile snippets are written. Also harden `setup_ruby` by creating `$HOME` if missing, preventing profile-write failures for installers that pass a home directory before creating the user.

* Update install/manyfold-install.sh

---------

Co-authored-by: Sam Heinz <sam@samheinz.com>
2026-07-19 22:53:46 +10:00
CanbiZ (MickLesk)andGitHub bbd5a3f522 Revert "add configurable host CA inheritance for LXC bootstrap (#15840)" (#15886)
This reverts commit eb5a5b2cb7.
2026-07-19 09:41:52 +02:00
CanbiZ (MickLesk)andGitHub 38ed344e0a tools.func: Safe Delete Directorys & Update PYTHON_VERSION with setup_uv (#15870) 2026-07-19 00:10:06 +02:00
CanbiZ (MickLesk)andGitHub f75b0a8b0e AFFiNE: Bump to 0.27.0 (#15848) 2026-07-17 21:05:10 +02:00
CanbiZ (MickLesk)andGitHub 79cee47df6 SFTPGo: Update APT Repo & Re-Enable Script (#15829)
* SFTPGo: Update APT Repo & Re-Enable Script

* Update sftpgo.sh
2026-07-17 14:29:59 +02:00
CanbiZ (MickLesk)andGitHub 7c7d40cfe3 tools.func: enhance rbenv with profile updates / bundle in bashrc (#15822)
* tools.func: enhance rbenv with profile updates / bundle in bashrc

Added checks to update shell profile files for rbenv integration and removed redundant profile setup code.

* Refactor Ruby version installation script

* Fix comment formatting in tools.func
2026-07-17 12:53:13 +02:00
CanbiZ (MickLesk)andGitHub 373ae7e143 MongoDB: Implement kernel version check and patch (#15821) 2026-07-17 12:53:05 +02:00
CanbiZ (MickLesk)andGitHub abc31499a2 n8n: unpin / use latest release (#15817)
* n8n: unpin / use latest release

startup issue is fixed, so unpin and set to latest release

* Update n8n installation to latest version
2026-07-17 12:52:57 +02:00
CanbiZ (MickLesk)andGitHub 74a233b8b9 Default Docker setup to official repo (#15794) 2026-07-15 21:37:10 +02:00
CanbiZ (MickLesk)andGitHub 812267aedd 2fauth: minor fixes for 8.0.0 (#15795) 2026-07-15 21:36:13 +02:00
CanbiZ (MickLesk)andGitHub 75a1da273f SnapOtter: refactor deployment and installation process (#15797) 2026-07-15 21:35:28 +02:00
CanbiZ (MickLesk)andGitHub 07e31eb5bc Pangolin: Bump to 1.20.0 | BREAKING: Switch to PostgreSQL (#15682)
* Pangolin: Bump to 1.20.0 and harden SQLite migrations

Bump the default Pangolin version to 1.20.0 in both CT and install scripts. Update the CT upgrade path to validate required 1.20.0 schema objects, clear stale versionMigrations markers when needed, retry migrations once, and abort with a clear error if the schema is still incomplete to avoid a broken runtime.

* extend migration check...

* another try...

* bump pangolin to PSQL

* remove migration paths

* remove old migrations

* use create_backup and restore_backup

* Block Pangolin SQLite upgrades

Update the Pangolin CT upgrade path to fail fast when PostgreSQL is not installed. The script now explains that upgrades to Pangolin 1.20.0+ require PostgreSQL and that SQLite data cannot be migrated automatically.

* fix env

* Update pangolin.sh

* Update pangolin-install.sh
2026-07-14 22:54:55 +02:00
CanbiZ (MickLesk)andGitHub ed29bb6f62 AFFiNE: Pin to v0.26.3 (#15782)
* AFFiNE: Pin to v0.26.3

* Update GitHub release version to v0.26.3
2026-07-14 22:38:24 +02:00
CanbiZ (MickLesk)andGitHub 817ee347c7 Bump OpenCloud version to v7.2.2 (#15769)
* Bump OpenCloud release version to v7.2.2

* Update OpenCloud version to v7.2.2
2026-07-14 22:08:14 +10:00
CanbiZ (MickLesk)andGitHub c039ab2e62 Refactor input and checkbox fields for repository stars 2026-07-14 12:45:49 +02:00
CanbiZ (MickLesk)andGitHub 63f219f14f Revise project eligibility criteria in request template
Updated eligibility requirements for project requests in the discussion template, clarifying the criteria for self-hosting, repository stars, and project age.
2026-07-14 12:44:19 +02:00
CanbiZ (MickLesk)andGitHub bcaadc4dbd typo 2026-07-13 14:58:23 +02:00
649e66ed2b tools.func: some improvements (sql injection / command injection / guard) (#15661)
* Update tools.func

- Add _TOOLS_FUNC_LOADED guard to prevent double-sourcing
- Remove duplicate is_alpine() (core.func version is more robust)
- Fix end_timer: now actually outputs duration (was silent)
- Fix SQL injection in setup_mariadb_db: escape single quotes in identifiers
- Fix SQL injection in setup_postgresql_db: escape single quotes in identifiers
- Fix sed injection in edit_yaml_config: escape | and & in value
- Fix command injection in curl_with_retry: use array instead of string eval
- Fix command injection in curl_api_with_retry: use array instead of string eval

* Update misc/tools.func

Co-authored-by: Sam Heinz <sam@samheinz.com>

---------

Co-authored-by: Sam Heinz <sam@samheinz.com>
2026-07-13 11:37:39 +02:00
CanbiZ (MickLesk)andGitHub ca082aedf0 Docmost: Fix update procedure (#15732)
Updated messages for configuring and starting the Docmost service.
2026-07-13 11:31:53 +02:00
CanbiZ (MickLesk)andGitHub 6e55269d9f BabyBuddy: Harden update script (#15642)
Ensure cleanup runs from `/opt/babybuddy` before deleting old files, add `--` to the removal command for safer argument handling, and run `manage.py makemigrations` before `migrate` so database updates are applied reliably during upgrades.
2026-07-08 21:04:13 +10:00
CanbiZ (MickLesk)andGitHub d9d724ce57 Remove: FlowiseAI (#15624) 2026-07-06 23:27:42 +02:00
CanbiZ (MickLesk)andGitHub 704916d27d tools.func: fix corepack/pnpm install flow in setup_nodejs (#15579)
Ensure Node module setup runs non-interactively by exporting COREPACK_ENABLE_DOWNLOAD_PROMPT=0, then handle corepack first when requested (including versioned specs). pnpm/yarn are now provisioned through corepack when enabled to avoid shim EEXIST collisions, with corepack modules skipped in the generic npm loop and conflicting shims cleaned only for npm-global installs. Also replace the global pnpm dangerouslyAllowAllBuilds setting with strictDepBuilds=false to avoid project-level config conflicts while keeping installs usable.
2026-07-03 22:22:06 +02:00
CanbiZ (MickLesk)andGitHub 044bffcea4 Immich: handle mise monorepo_root rename correctly | bump to 3.0.1 (#15557) 2026-07-03 19:30:41 +02:00
CanbiZ (MickLesk)andGitHub ea7249ca03 Revert "Immich v3.0.0 (#15153)" (#15558)
This reverts commit a76225aba6.
2026-07-02 23:58:50 +02:00
CanbiZ (MickLesk)andGitHub ace936085e typo: fix npm update to npm install for n8n (#15545) 2026-07-02 13:49:00 +02:00
CanbiZ (MickLesk)andGitHub 3f1b2f2180 Frigate: bump to v0.17.2 (#15536) 2026-07-02 09:11:58 +02:00
CanbiZ (MickLesk)andGitHub be29bb1538 tools.func: configure pnpm to allow all build scripts for LXC container environments (#15532) 2026-07-02 09:07:04 +02:00
CanbiZ (MickLesk)andGitHub 88458c5837 Stirling-PDF: patch libicudata execstack flag for LXC container compatibility (#15531) 2026-07-01 22:40:55 +02:00
CanbiZ (MickLesk)andGitHub f156e761e0 FlowiseAI: align install to use pnpm instead of npm to fix missing dependencies (#15530) 2026-07-01 22:37:07 +02:00
CanbiZ (MickLesk)andGitHub a8eedc1848 core: fix SDN vnet network parameter to use bridge instead of vnet (#15527) 2026-07-01 22:36:07 +02:00
CanbiZ (MickLesk)andGitHub 4c10c0d98f Vaultwarden: handle version detection failure gracefully in update (#15526) 2026-07-01 22:35:43 +02:00
CanbiZ (MickLesk)andGitHub 80af66e864 tools.func: use safe variable expansion in check_for_gh_release RETURN trap (#15529) 2026-07-01 22:35:15 +02:00
CanbiZ (MickLesk)andGitHub 5d25171d8d harmonize with frontend 2026-06-30 14:09:56 +02:00
CanbiZ (MickLesk)andGitHub 069c8f578f ImageMagick: Switch to github releases (#15492) 2026-06-30 10:19:05 +02:00
CanbiZ (MickLesk)andGitHub b5361e5278 tool: add disk-health tool (SMART + NVMe) (#15417) 2026-06-27 23:27:43 +02:00
CanbiZ (MickLesk)andGitHub fb14e6ae8b fix(setup_docker): don't abort update on docker pull failure (#15410)
During the container update check, a failing 'docker pull' (local-only images, registry or permission errors) aborted the whole script under errexit. Ignore pull failures and skip containers whose digest could not be resolved.
2026-06-26 21:58:08 +02:00
CanbiZ (MickLesk)andGitHub 4142c5c2d3 fix(docuseal): use real SECRET_KEY_BASE for db:migrate on update (#15411)
SECRET_KEY_BASE_DUMMY forced Rails to write tmp/local_secret.txt, which failed with EACCES during update and aborted db:migrate. Drop the dummy flag so the real SECRET_KEY_BASE from .env is used, and ensure tmp exists.
2026-06-26 21:57:46 +02:00
CanbiZ (MickLesk)andGitHub 1be64c1994 bun: correct install for degoog (#15412)
* fix(degoog): restore bun symlinks after curl-impersonate update

The curl-impersonate CLEAN_INSTALL wipes /usr/local/bin, which removed the bun/bunx symlinks during update. Re-create them after the release deploy.

* clean install curl-impersonate

* sorting
2026-06-26 21:56:48 +02:00
CanbiZ (MickLesk)andGitHub ba31c925e3 Validate kernel selection input in kernel-clean (#15414)
- Trim whitespace, skip empty tokens and reject non-numeric input so a
  malformed selection no longer feeds garbage into `sed -n "<index>p"`.
- Reject reversed ranges (start greater than end) with a clear message.
- Replace `grep | wc -l` with `grep -c` (ShellCheck SC2126).
2026-06-26 21:56:28 +02:00
CanbiZ (MickLesk)andGitHub 868b405082 Fix clean-lxcs exclude matching and set -e cancel handling (#15413)
- Replace the array-style exclude check (`${excluded_containers[@]}` on a
  plain string) with an explicit per-VMID loop, resolving the ShellCheck
  SC2199/SC2076 errors and avoiding accidental substring matches.
- Abort cleanly when the checklist dialog is cancelled instead of relying
  on an unreachable `$?` test under `set -eEuo pipefail`.
- Exit gracefully on a declined confirmation prompt.
- Use `pct exec ... -- hostname` for consistent argument handling.
2026-06-26 21:56:23 +02:00
CanbiZ (MickLesk)andGitHub 58145d5bd3 Harden microcode download/install in microcode and pbs-microcode (#15415)
- AMD: download directly to "$microcode" instead of a convoluted, unquoted
  basename of the full URL (fixes ShellCheck SC2046) and pin to https.
- Quote dpkg install and cleanup paths (SC2086) and use rm -f.
- Normalize the Debian pool URLs (drop the stray double/triple slashes).
- Define color variables directly instead of via $(echo ...) (SC2116/SC2028).
2026-06-26 21:56:00 +02:00
CanbiZ (MickLesk)andGitHub 9fbe2de1cb Refactor: reduce IP-Tag resource usage and clean up ShellCheck findings (#15418)
* Reduce IP-Tag resource usage and clean up ShellCheck findings

Performance / resource fixes in the generated service:
- VM IP detection only queries the QEMU guest agent when it is actually
  enabled in the VM config. Previously every VM without an agent stalled
  the loop for the full `qm guest cmd` timeout on each cycle; the timeout
  is also lowered from 8s to 5s.
- Skip the ARP/ping fallback for VMs entirely when the guest agent already
  returned addresses, avoiding needless ping probes every run.
- Snapshot `ip neighbor show` once per host instead of invoking it per MAC
  in the VM and LXC lookups.
- Lower ping verification to a 1s timeout (`-W 1`).

ShellCheck cleanup in the installer:
- Define color variables directly instead of via $(echo ...) (SC2116/SC2028).
- Use `read -rp` everywhere (SC2162).
- Replace Unicode quotes with ASCII in a status message (SC1111).

* Cut IP-Tag CPU usage by avoiding per-guest pct/qm status calls

The periodic check spawned one `pct status` per container and one
`qm status` per VM each cycle. Both are heavy Perl tools (~hundreds of ms
CPU per invocation), so on hosts with many guests the 5-minute run caused
a noticeable CPU spike.

- Derive LXC status from the single `pct list` call that is already made
  for enumeration.
- Add one `qm list` call to collect all VM statuses at once.
- Store both in a per-cycle STATUS_CACHE and read from it instead of
  calling `pct status` / `qm status` per guest (with a fallback for direct
  calls outside the cycle).
2026-06-26 21:55:53 +02:00
CanbiZ (MickLesk)andGitHub 0774772b87 QoL: scaling-governor extend selection and guard missing cpufreq (#15416) 2026-06-26 21:53:22 +02:00
CanbiZ (MickLesk)andGitHub edf167025f VM-Core: Update some Functions (#15113) 2026-06-25 13:13:29 +02:00
CanbiZ (MickLesk)andGitHub 470c0672fb watcharr: Increase default RAM allocation from 1024 to 2048 (#15370) 2026-06-24 23:21:44 +02:00
e193adad5a core: add SDN vnet selection in advanced install (#15366)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 23:21:12 +02:00
CanbiZ (MickLesk)andGitHub 3fc7008bbe Refactor LibreNMS: replace old install and update variant with tarball approach (#15369) 2026-06-24 23:15:36 +02:00
0b94d4f54a core: add var_http_proxy and var_http_no_proxy support (#15225)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-24 06:58:32 +02:00
CanbiZ (MickLesk)andGitHub 33a18190fc fix(librenms): run daily.sh as librenms user with git available (#15314) 2026-06-23 07:48:52 +02:00
CanbiZ (MickLesk)andGitHub b18e9298b1 Implement local _disable_update for conditional upgrade handling
Add a local variable to manage update disabling based on environment settings.
2026-06-23 06:31:44 +02:00
CanbiZ (MickLesk)andGitHub cfb5114d8b invoiceshelf: use pnpm instead of yarn for frontend build (#15312) 2026-06-22 22:02:17 +02:00
CanbiZ (MickLesk)andGitHub bd228edb21 tools.func: refresh ruby-build when requested version is missing (#15315) 2026-06-22 22:01:40 +02:00
CanbiZ (MickLesk)andGitHub 084993ba60 VictoriaMetrics: resolve architecture before jq asset filter (#15316) 2026-06-22 22:00:23 +02:00
CanbiZ (MickLesk)andGitHub 1cdf74dd41 update-apps: sanitize service detection and fail on invalid names (#15318) 2026-06-22 21:59:43 +02:00
CanbiZ (MickLesk)andGitHub fd1dbf2ba1 core:: skip LXC stack upgrade prompt in unattended mode (#15319) 2026-06-22 21:59:27 +02:00
CanbiZ (MickLesk)andGitHub edbd570adf Endurain: pin uv to the version required by the project (#15313) 2026-06-22 21:46:52 +02:00
0940119aea feat(build): add pre-install storage health checks (#15226)
Warn or block container creation when target storage is above 85% or 95% full.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-22 21:08:09 +02:00
6345455031 Matomo: flatten nested deploy layout after update (#15267)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-21 23:11:31 +02:00
8b877f1c9f tools.func: APT install and deb822 repo reliability (#15272)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-21 23:10:27 +02:00
6665a5bf5d tools.func: prevent MySQL data loss and fix repo version matching (#15271)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-21 23:10:08 +02:00
53efcadfa9 tools.func: runtime hardening for API helpers and Docker/MeiliSearch (#15273)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-21 23:09:51 +02:00
CanbiZ (MickLesk)andGitHub b5c31d58f4 tools.func: centralize Node.js corepack and npm handling in setup_nodejs() (#15268) 2026-06-21 22:24:10 +02:00
7789f1c58c fix(nginxproxymanager): repair broken certbot pip before update (#15224)
Use ensurepip when the certbot venv pip module is missing, then upgrade via python -m pip.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-20 13:23:25 +10:00
CanbiZ (MickLesk)andGitHub 6275928a81 Downgrade Node.js version from 24 to 22 2026-06-18 12:52:04 +02:00
CanbiZ (MickLesk)andGitHub 3465170234 Downgrade Node.js version to 22 for compatibility 2026-06-18 12:51:44 +02:00
CanbiZ (MickLesk)andGitHub 05823c3cb5 flowise: add deps / uv / python 3.11 (#15177) 2026-06-18 11:53:15 +02:00
CanbiZ (MickLesk)andGitHub 5169c61968 immich public proxy: replace npm install with npm ci for consistent dependency installation (#15166) 2026-06-17 15:34:27 +02:00
CanbiZ (MickLesk)andGitHub 04e6933b3b trek: update install and upgrade workflow for v3.1.0 (#15165)
* trek: update install and upgrade workflow

Remove the hardcoded release tag and fetch the latest TREK release. Consolidate builds to npm workspaces (shared, client, server), copy client dist into server/public, and install/prune server deps for production. Add libkitinerary dependency and ensure dependencies during upgrade. Implement backup/restore during upgrades and add migration logic that detects the old systemd ExecStart; when present, rewrite trek.service to run the compiled dist via node --require tsconfig-paths/register, add XDG_CACHE_HOME and QT_QPA_PLATFORM env vars, and switch to network-online.target. Installer changes also create data/uploads directories, set additional .env defaults (TZ, LOG_LEVEL, DEFAULT_LANGUAGE, ALLOWED_ORIGINS), and adjust workspace setup steps.

* add proxy env
2026-06-17 15:30:38 +02:00
CanbiZ (MickLesk)andGitHub 77eb109927 degoog: add curl-impersonate to script (#15117)
* jotty: add curl-impersonate to script

* Ensure clean install for curl-impersonate deployment
2026-06-15 21:33:23 +02:00
CanbiZ (MickLesk)andGitHub 6762208d66 core: improve mirror selection and error handling (#15108) 2026-06-15 10:09:38 +02:00