Commit Graph
100 Commits
Author SHA1 Message Date
CanbiZ (MickLesk) 8854585a1a Migrate the (remaining) Top 25 scripts to the new core engine (#16749)
* Move the top 25 scripts onto the core engine

The engine work of the last few days reaches 30 of 561 ct scripts, about 5% of
ProxmoxVE traffic: retry on engine downloads, exit 227 instead of a misfiled
dpkg error, the umask fix that stops a hardened host producing containers apt
cannot resolve in, the TMPDIR guard, the toolchain restore. All of it has been
sitting where almost nobody runs it.

All eighteen at once rather than in waves. A slow rollout does not exercise the
paths only some scripts take, and broad exposure is what surfaces bugs -- a
deliberate call about release risk.

Checked before touching anything, because "migrate" meant far more than a line
swap last time:

  - None of the eighteen has an alpine-* variant, so there is no merge to do.
  - No script references misc/ outside its bootstrap line.
  - Of the 61 functions that exist only in misc/, none is called by any of them.

So it is one line per script, and every head is now byte-identical to the ones
migrated earlier. With these, ProxmoxVE goes from 30 scripts on the core engine
to 48 -- and from roughly 5% of traffic to the majority, since these are the
ones people actually install.

Two to watch: immich sits at 44.7% success and vaultwarden at 42.1% before
this. If their numbers move, the engine is one of two changed variables rather
than the only one.

* Move update-apps onto the core engine

Entry 11 of the list and the only one that is not a ct script, so it was left
out of the previous commit. It is a host tool: it never used build.func at all,
it sources misc/core.func and misc/api.func directly.

The swap is therefore two lines rather than one, and worth checking rather than
assuming. It uses exactly five engine functions -- header_info,
init_tool_telemetry, msg_info, msg_ok, msg_error -- all present in the core, and
both files load standalone, which they had not had to do before: everywhere else
they arrive through build.func.

That completes the list. All 25 now run on the core engine.

Fixing this one matters beyond the migration: update-apps is what drives
unattended updates across every container on a host, and it is the path where
PHS_SILENT was being ignored (#16593). It now gets the engine that honours it.
2026-08-25 11:04:15 +02:00
CanbiZ (MickLesk) 4c6ccdde35 fireshare: source fireshare.env during update instead of hardcoding defaults (#16706) 2026-08-24 14:06:30 +02:00
CanbiZ (MickLesk) a876ad22bb netbox: serve on plain HTTP too, port 80 forced HTTPS redirect broke reverse proxies (#16707)
* netbox: serve on plain HTTP too, port 80 forced HTTPS redirect broke reverse proxies

* Update netbox-install.sh for Apache configuration

Modify Apache configuration to serve NetBox on port 80.
2026-08-24 13:51:03 +02:00
CanbiZ (MickLesk) 3c56af9f33 fileflows: update download URL, old /downloads/zip endpoint returns 404 (#16708) 2026-08-24 13:45:56 +02:00
CanbiZ (MickLesk) d1dd9e18e4 post-pve/pbs-install: fix component_exists_in_sources matching substrings of hyphenated tokens (#16709)
* post-pve-install: fix component_exists_in_sources matching substrings of hyphenated tokens

* post-pbs-install: fix component_exists_in_sources matching substrings of hyphenated tokens
2026-08-24 13:45:15 +02:00
CanbiZ (MickLesk) 566c203a34 Gitea: fix git-over-SSH auth, group-writable home dir tripped sshd StrictModes (#16710)
* gitea: fix git-over-SSH auth, group-writable home dir tripped sshd StrictModes

* Update gitea-install.sh
2026-08-24 13:40:43 +02:00
CanbiZ (MickLesk) 065f34aefe build.func: allow default.vars to raise var_cpu/var_ram/var_disk above app baseline (#16704) 2026-08-24 07:44:47 +02:00
CanbiZ (MickLesk)andTobias a35a75eadb Set default ProxmoxVE raw URL in PVE-UPS & fix var_cpu sorting (#16689)
* Set default ProxmoxVE raw URL in UPS script

Define `_CS_DEFAULT_URL` at the top of `ct/pve-ups.sh` and remove the outdated bootstrap comments, aligning the script with the newer URL-default pattern used for script sourcing.

* Branch var_cpu by OS where the two variants actually differ

The merged scripts branch var_ram, var_disk and var_version on var_os but
left var_cpu above the branch, so both variants inherited the Debian value.
On Vaultwarden that meant an Alpine container was told it wanted four cores
for an update that runs apk and restarts a service.

Only seven scripts are affected. Comparing each merged script against the
alpine-* script it replaced, 22 of the 29 already had the same CPU count on
both sides, so moving the line there would be churn with no behaviour change.
These seven did not:

  docker, forgejo, ironclaw, syncthing, transmission, zigbee2mqtt   2 -> 1
  vaultwarden                                                       4 -> 1

The Alpine values are the ones those scripts carried before the merge, read
back out of the deleted alpine-* files rather than picked. The Debian arm
keeps what it has now.

Needs the matching core change: until build.func derives var_os inside a
container, an update never reaches the Alpine arm at all.

* fix: source url

* Update script to source build functions from URLs

---------

Co-authored-by: Tobias <96661824+CrazyWolf13@users.noreply.github.com>
2026-08-23 03:21:42 +02:00
CanbiZ (MickLesk) d59a673211 docuseal: use DocuSeal's patched PDFium build to fix service start (#16673)
DocuSeal switched to its own PDFium fork (upstream commit "adjust pdfium",
2026-08-15) and now attaches functions that only exist in that build, e.g.
FPDFPage_GetAnnotCountRaw from the added fpdf_annots_raw.h. The generic
bblanchon/pdfium-binaries library the script installed does not export them,
so lib/pdfium.rb raises FFI::NotFoundError while Rails eager-loads and both
docuseal.service and docuseal-sidekiq.service fail to start:

  Unable to load application: FFI::NotFoundError: Function
  'FPDFPage_GetAnnotCountRaw' not found in [libpdfium.so]

Install the library from docusealco/pdfium-binaries instead, matching the
upstream Dockerfile. It is only published as a musl build (DocuSeal's image is
Alpine based), so the musl runtime is installed and its library directory is
added to the loader search path - the shared object needs "libc.so" (musl) at
dlopen time. Verified on glibc: the library loads, resolves the raw annotation
functions and renders pages correctly.

The update path now refreshes PDFium too, so existing containers are repaired
by running "update" even when DocuSeal itself is already up to date.
2026-08-22 06:30:08 +02:00
CanbiZ (MickLesk) 288a40e96f immichframe: strip invalid UUID placeholders from default Settings.yml (#16660) 2026-08-21 10:37:12 +02:00
CanbiZ (MickLesk) 9d8b78daca openziti-controller: redirect stdin from /dev/null to skip postinst's interactive bootstrap prompt (#16650) 2026-08-21 08:08:33 +02:00
CanbiZ (MickLesk) 3b3a5e7d29 bookorbit: bump default RAM to prevent tsc OOM segfault during nest build (#16649) 2026-08-21 08:05:08 +02:00
CanbiZ (MickLesk) d2fe695c49 immich: split jpegli into its own build step, resolve library revisions dynamically (#16656) 2026-08-21 07:55:32 +02:00
CanbiZ (MickLesk) a4542eacb3 tdarr: make unzip non-interactive to prevent hang on repeat/automated updates (#16648) 2026-08-21 07:24:22 +02:00
CanbiZ (MickLesk) a1761d4d6f immich: fix jpegli patch path after upstream base-images split jpegli from libjxl (#16647) 2026-08-21 13:59:15 +10:00
CanbiZ (MickLesk) 78d29a6de1 storyteller: fix build paths for upstream applications/web/ monorepo restructure (#16627) 2026-08-20 14:32:23 +02:00
CanbiZ (MickLesk) 8276f41ec9 networkoptimizer: preseed iperf3 debconf question to prevent hang install (#16626) 2026-08-20 14:31:54 +02:00
CanbiZ (MickLesk) 1bfcef0c80 scanopy: limit cargo build parallelism to prevent OOM kill (#16623) 2026-08-20 14:28:22 +02:00
CanbiZ (MickLesk) b685312cb8 copyparty: use fetch_and_deploy_gh_release for version tracking (#16624) 2026-08-20 14:28:01 +02:00
CanbiZ (MickLesk) 7c1e07123a baikal: fall back to composer update when lock doesn't match (#16625) 2026-08-20 14:27:41 +02:00
CanbiZ (MickLesk) 0e0ba4bfb3 romm: add missing /decode and /cache Angie locations for multi-file downloads (#16589) 2026-08-18 19:38:19 +02:00
CanbiZ (MickLesk) 78f381d8a9 odoo: use patched wkhtmltopdf build, apt's is missing --header-html/--footer-html support (#16590) 2026-08-18 23:55:34 +10:00
CanbiZ (MickLesk) 92e72e4137 Breaking Change: Migrate all "Alpine" Scripts to Normal CT's (#16587) 2026-08-18 12:38:22 +02:00
CanbiZ (MickLesk) e683dd92e7 patchmon: fetch only SCAP datastream XMLs (#16565)
* patchmon: fetch only SCAP datastream XMLs, not the full 2.1GB content archive

* Increase default disk size from 4GB to 8GB
2026-08-17 11:27:25 +02:00
CanbiZ (MickLesk) ee06ad86f1 teslamate: use precompiled Elixir (#16561) 2026-08-17 11:26:34 +02:00
CanbiZ (MickLesk) 7d7db6dd33 keycloak: remove invalid ExecStop, kc.sh has no stop subcommand (#16563) 2026-08-17 11:26:13 +02:00
CanbiZ (MickLesk) b559bcef39 Pin ownfoil release to version 2.3.0 (#16574) 2026-08-17 11:23:12 +02:00
CanbiZ (MickLesk) 4ec4bb26ed kometa: add git, needed by requirements.txt's git dependency (#16562) 2026-08-17 11:22:53 +02:00
CanbiZ (MickLesk) 3ac1f1dfd4 cronmaster: back up scripts, data and snippets folders on update (#16529) 2026-08-16 20:34:55 +02:00
CanbiZ (MickLesk) fa8e6d5bb7 tracktor: build with pnpm using upstream's frozen lockfile (#16530) 2026-08-16 20:28:36 +02:00
CanbiZ (MickLesk) 85a621993d wallos: run db migration after apache reload on update (#16528) 2026-08-16 20:28:16 +02:00
CanbiZ (MickLesk) cb09223b37 networkoptimizer: also build uwnspeedtest binary for server arch (#16531) 2026-08-16 21:59:03 +10:00
CanbiZ (MickLesk) a9ff7e6a13 core: skip mount points during backup and clean installs (#16532)
* Skip mount points during backup and clean install

Prevent accidental deletion or backup of mount points:
- In create_backup(), skip paths that are mount points with a warning
- In _deploy_source_tarball(), _deploy_unpacked_archive(), and fetch_and_deploy_from_url(), use find with mountpoint pruning to avoid deleting mount point directories during CLEAN_INSTALL

* change comments for new variant

Update `_deploy_source_tarball` and related helper comments to note that CLEAN_INSTALL wipes target contents including dotfiles while preserving mount points. This improves guidance around backup/restore of config dotfiles during source deployments.
2026-08-16 21:58:07 +10:00
CanbiZ (MickLesk) 1246048481 Remove: Jeedom (#16536) 2026-08-16 21:57:36 +10:00
CanbiZ (MickLesk) ab88c8decf Remove: Swizzin (#16535) 2026-08-16 12:24:27 +02:00
CanbiZ (MickLesk) 662adaa6d4 Remove: NocoDB (#16533) 2026-08-16 20:22:54 +10:00
CanbiZ (MickLesk) a566b6b129 adventurelog: remove pnpm build-allowlist override causing pnpm 10.33 conflict (#16478) 2026-08-15 13:36:49 +10:00
CanbiZ (MickLesk) 91dd24f38c PatchMon: add ssg-content (#16481)
* patchmon: fetch SCAP Security Guide content, bump disk default

* patchmon: simplify SCAP content fetch with &&/|| chaining

* patchmon: use fetch_and_deploy_gh_release for SCAP content

* Reintroduce fetch_and_deploy_gh_release for ssg-content
2026-08-15 13:36:27 +10:00
CanbiZ (MickLesk) a1c38b514a powerdns: move poweradmin database outside the web root (#16476) 2026-08-14 22:12:12 +02:00
CanbiZ (MickLesk) f096c8b91f projectsend: rewrite for 2.0.0 (Laravel, nginx, MariaDB) (#16477) 2026-08-14 22:11:45 +02:00
CanbiZ (MickLesk) 70dfd66dff paperless-ngx: run services with uv --no-sync to avoid startup network dependency (#16479) 2026-08-14 22:10:54 +02:00
CanbiZ (MickLesk) 7317baddc1 calibre-web: install as package for 0.6.27's src-layout restructure (#16480) 2026-08-14 22:10:34 +02:00
CanbiZ (MickLesk) ca1f0181b2 pelican-panel: set APP_URL to container IP (#16488) 2026-08-14 22:09:22 +02:00
CanbiZ (MickLesk) 3ef0735136 ConvertX: add some new dependencies (#16437)
* convertx: install missing converter dependencies

* convertx: use uv tool install instead of pipx for markitdown
2026-08-12 13:47:27 +02:00
CanbiZ (MickLesk) d04f0fbede networkoptimizer: mitigate dotnet publish hang in LXC (#16436)
* networkoptimizer: mitigate dotnet publish hang in LXC

* Optimize networkoptimizer.sh by removing duplicate restore

Removed redundant restore_backup call after deployment.

* Clean up comments in networkoptimizer-install.sh

Removed comments about MSBuild issues in the installation script.
2026-08-12 13:47:05 +02:00
CanbiZ (MickLesk) d2d382c499 lazylibrarian: reinstall deps after git pull on update (#16435) 2026-08-12 13:46:46 +02:00
CanbiZ (MickLesk) 492e7bff73 wanderer: fix deprecated meilisearch upgrade flag (#16434) 2026-08-12 13:46:21 +02:00
CanbiZ (MickLesk) c64ae2fb3a calibre-web: fix release asset filename pattern (#16433) 2026-08-12 13:45:54 +02:00
CanbiZ (MickLesk) 68246453fe qf 2026-08-12 06:38:30 +02:00
CanbiZ (MickLesk) c396fa0e65 Pelican-Panel: add php artisan p:environment:database (#16397) 2026-08-11 21:56:03 +02:00
CanbiZ (MickLesk) eb1d9051fd outline: fix URL sed matching wrong line in .env.sample // refactor .env generation (#16408)
* outline: fix URL sed matching wrong line in .env.sample

* Refactor environment variable configuration in install script
2026-08-11 21:49:05 +02:00
CanbiZ (MickLesk) 935d2ebeef Update source URL for Reactive Resume (#16407) 2026-08-11 21:39:56 +02:00
CanbiZ (MickLesk) f3bdffbeac arcane: fix projects/builds dir ownership for non-root container UID (#16411) 2026-08-11 21:38:55 +02:00
CanbiZ (MickLesk) 8c1d4f33ff paperless-ngx: reindex Tantivy search index on webserver start (#16395) 2026-08-11 21:37:59 +02:00
CanbiZ (MickLesk) dbbdc93a0b karakeep: pin Node.js to 22 LTS, avoid Node 24.19 better-sqlite3 crash (#16396) 2026-08-11 07:39:01 +02:00
CanbiZ (MickLesk) b7bc9d7d06 ErsatzTV: update ffmpeg to 8.1 version (#16383) 2026-08-10 12:02:24 +02:00
CanbiZ (MickLesk) 3ed946390f Portainer: Update existing CE and BE installations (#16357) 2026-08-09 20:22:40 +02:00
CanbiZ (MickLesk) 5374826753 SparkyFitness: Install Git for frontend builds (#16352) 2026-08-09 18:50:22 +02:00
CanbiZ (MickLesk) af10e10f20 Byparr: Use invisible-playwright browser setup (#16353) 2026-08-09 18:50:05 +02:00
CanbiZ (MickLesk) ad09299de7 Crafty Controller: Restore ownership after updates (#16354) 2026-08-09 18:49:50 +02:00
CanbiZ (MickLesk) 87db412709 Webtrees: Fix schema check in silent mode (#16355) 2026-08-09 18:49:38 +02:00
CanbiZ (MickLesk) 83ad1c972d SigNoz: Allow legacy metadata schema on ClickHouse 26 (#16356) 2026-08-09 18:49:26 +02:00
CanbiZ (MickLesk) 773b46c969 github: update Star History links and image sources (#16367) 2026-08-09 16:19:29 +02:00
CanbiZ (MickLesk)andSam Heinz d87fef0892 core - setup_nodejs: bypass npm allowScripts policy globally on npm >=11 (#16280)
* setup_nodejs: bypass npm allowScripts policy globally on npm >=11

* Update misc/tools.func

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

---------

Co-authored-by: Sam Heinz <sam@samheinz.com>
2026-08-08 12:35:03 +10:00
CanbiZ (MickLesk) 0092fa8b54 Docker: report container updates instead of prompting, stop auto-updating Portainer Agent, fix addon detection of legacy Portainer (#16298)
* Docker: report container updates instead of prompting, stop auto-updating Portainer Agent, fix addon detection of legacy Portainer

* Update portainer.sh
2026-08-07 19:43:32 +10:00
CanbiZ (MickLesk) 33de14e45c Immich: retry mise install on transient npm download failures (#16301) 2026-08-07 10:10:35 +02:00
CanbiZ (MickLesk) 63e4ea1396 core: extend new vars and pocketbase values (#16313)
* Let docker-install.sh take its three answers up front

The script asked three questions with no way to answer them in advance,
so a Docker container could not be deployed unattended: Portainer, the
Portainer Agent, and whether to expose the TCP socket.

Each now reads a variable and prompts only when it is unset, the same
shape install/forgejo-runner-install.sh already uses:

  var_portainer         yes | no
  var_portainer_agent   yes | no
  var_docker_socket     n | l (127.0.0.1) | a (0.0.0.0)

Interactive behaviour is unchanged — with nothing set, all three still
ask exactly as before.

The matching declaration for the script's PocketBase record, which the
website generator reads to offer these as form fields:

  "app_vars": [
    {"name":"var_portainer","label":"Install Portainer","type":"boolean","default":"no"},
    {"name":"var_portainer_agent","label":"Install Portainer Agent","type":"boolean","default":"no",
     "help":"Only used when Portainer itself is not installed"},
    {"name":"var_docker_socket","label":"Expose Docker TCP socket","type":"select",
     "options":["n","l","a"],"default":"n",
     "help":"l = 127.0.0.1 only, a = all interfaces (insecure)"}
  ]

CONTRIBUTING.md documents the convention so the next script follows it.

* Let docker-install.sh take its three answers up front

The script asked three questions with no way to answer them in advance,
so a Docker container could not be deployed unattended: Portainer, the
Portainer Agent, and whether to expose the TCP socket.

Each now reads a variable and prompts only when it is unset, the same
shape install/forgejo-runner-install.sh already uses:

  var_portainer         yes | no
  var_portainer_agent   yes | no
  var_docker_socket     n | l (127.0.0.1) | a (0.0.0.0)

Interactive behaviour is unchanged — with nothing set, all three still
ask exactly as before.

The matching declaration for the script's PocketBase record, which the
website generator reads to offer these as form fields:

  "app_vars": [
    {"name":"var_portainer","label":"Install Portainer","type":"boolean","default":"no"},
    {"name":"var_portainer_agent","label":"Install Portainer Agent","type":"boolean","default":"no",
     "help":"Only used when Portainer itself is not installed"},
    {"name":"var_docker_socket","label":"Expose Docker TCP socket","type":"select",
     "options":["n","l","a"],"default":"n",
     "help":"l = 127.0.0.1 only, a = all interfaces (insecure)"}
  ]

CONTRIBUTING.md documents the convention so the next script follows it.

* Let forgejo-runner and pangolin take their answers up front

forgejo-runner already exported two of the three values its install
script requires, but not var_forgejo_runner_uuid — so an unattended
install passed the ct-level guard and then stopped at a prompt inside
the container, which is the one place nobody can answer it. The guard
missed it for the same reason.

pangolin asked for its URL and email with no way to supply them. Both
sides are needed: the read in install/ now only fires when the variable
is unset, and ct/ exports it, because lxc-attach carries the caller's
environment but only what was exported.

Reverts the docker change from the previous commit; it is superseded by
work on another branch.

* Teach the PocketBase workflows the capability fields

All three wrote fields the site no longer reads. The slash bot and the
AI bot accepted has_arm=true and github=owner/repo; push-json mapped
has_arm into the payload. After the schema change those writes would
have gone to columns that are not there.

architectures and platforms are multi-selects over a closed set, so
both bots reject an unknown value instead of storing it — the same
guarantee the field type gives in the admin UI.

push-json still reads has_arm when architectures is absent, because
ProxmoxVED's json files carry the old key until they are converted.

* Drop the docker change again

It came back through the merge in 35735dae: the branch was pushed
before the revert, so merging the remote copy restored it. Removing it
forward rather than rewriting history that is already published.
2026-08-07 12:49:45 +10:00
CanbiZ (MickLesk) 590d638094 build.func: fix pveam arch filter for extra whitespace column (#16315) 2026-08-06 21:03:28 +02:00
CanbiZ (MickLesk) 448a080970 build.func: filter templates by host architecture during search (#16302) 2026-08-06 22:33:22 +10:00
CanbiZ (MickLesk) 12f228da1c paperless: change update abort message (endless spinner) (#16299) 2026-08-06 14:28:58 +02:00
CanbiZ (MickLesk) 288a130fe7 Vikunja: remove version pin, v2.5.0 fixes the systemd syscall filter crash (#16300) 2026-08-06 14:26:40 +02:00
CanbiZ (MickLesk) 1c03d0506c NextcloudPI: Bump to Debian Trixie & Tweak broken SSH (#15957)
* Pin NextCloudPi installer to last known-good stable release

The floating "master" branch of nextcloud/nextcloudpi's install.sh
started rejecting our default Debian 12 base with "distro not
supported" (#15944) after a regression landed upstream; the script
is third-party code we don't audit or control. Pin to v1.57.1, the
latest stable (non-prerelease) release, which explicitly targets
Debian bookworm and predates the regression.

* Actually pin the branch nextcloudpi's install.sh clones internally

install.sh is only a thin bootstrapper: it clones BRANCH (default
"master") of the nextcloudpi repo itself and runs the real installer
from that fresh checkout, including the distro-support check. Fetching
install.sh from a pinned tag alone left BRANCH defaulting to "master",
so the internally-cloned code was unaffected and still failed with
"distro not supported" - confirmed by testing the previous fix. Pass
BRANCH explicitly so the internal clone also targets the pinned tag.

* Bump NextCloudPi to Debian 13, matching upstream's trixie move

Upstream's master ncp.cfg now targets release "trixie" (Debian 13);
bookworm (Debian 12) is no longer in the supported check_distro list
at all. Move our own default to Debian 13 and pin the installer ref
to v1.58.0-rc1, the only tagged ref with release=trixie so far (no
stable trixie release exists yet upstream).

* Revert installer pin, track master again

master now targets trixie itself (matches the Debian 13 bump), and
the only tagged trixie ref was an RC explicitly marked "expect bugs".
Tracking master gets upstream trixie fixes as they land instead of
being stuck on a stale test release.

* Work around nextcloudpi's broken ssh.socket restart on Debian 13

Debian 13's openssh-server ships socket-activated by default. NCP's
own bin/ncp/NETWORKING/SSH.sh detects that (systemctl is-active
ssh.socket) but then runs "systemctl restart ssh" in that branch
instead of reloading, which collides with the port ssh.socket already
holds and fails with "Job for ssh.service failed" (#15944). Switch the
container to classic ssh.service before handing off to their
installer so it takes the safe "systemctl reload ssh" branch instead.
2026-08-05 22:04:16 +10:00
CanbiZ (MickLesk) e3e29667c6 Actual Budget: allow native module install scripts under npm 11 (Node 24) (#16277) 2026-08-05 00:26:46 +02:00
CanbiZ (MickLesk) 1336b44a26 Heimdall-Dashboard: run full composer install on update, force production env (#16278) 2026-08-05 00:26:12 +02:00
CanbiZ (MickLesk) fcbaedf7d8 xyOps: rebuild xySat satellite during update (#16279) 2026-08-05 00:25:29 +02:00
CanbiZ (MickLesk) 6f4d3b4841 HAOS: remove non-ASCII dash from CPU model dialog text (#16276) 2026-08-05 00:24:56 +02:00
CanbiZ (MickLesk) 86d67affa3 Refactor: harmonize tools/addon and move boilerplate into core.func (#16202) 2026-08-04 21:02:03 +02:00
CanbiZ (MickLesk) f219707efd Bump NodeJS Versions of several scripts (#16230) 2026-08-04 20:51:02 +02:00
CanbiZ (MickLesk) 64cd328363 tools.func: never delete ubuntu.sources (or other distro base sources) as orphaned (#16250) 2026-08-04 16:55:08 +02:00
CanbiZ (MickLesk) 6d63e3e476 AFFiNE: fix version and build type reported by the app itself (#16251) 2026-08-04 16:54:46 +02:00
CanbiZ (MickLesk) 5d202e2a4a tools.func: complete a stale/partial backup manifest instead of trusting it as-is (#16252) 2026-08-04 16:54:05 +02:00
CanbiZ (MickLesk) 60e8ed77c4 Passbolt: fetch GPG key from Passbolt's own host instead of the flaky keyserver (#16248) 2026-08-04 12:13:49 +02:00
CanbiZ (MickLesk) 336cdda47d termix: add env backup 2026-08-03 22:56:27 +02:00
CanbiZ (MickLesk) e21a11c190 misc: read all interactive prompts from /dev/tty, drain leftover input on read failure (#16235) 2026-08-03 16:57:55 +02:00
CanbiZ (MickLesk) a6196990a6 chore: remove portainer setup from several scripts (moved to addon) (#16201)
* remove portainer from tools.func

* remove comment in tools.func and remove portainer from docker setup

* remove portainer from alpine-docker

* formatting alpine docker

* remove portainer update in docker ct and homeassistant
2026-08-02 19:57:57 +02:00
CanbiZ (MickLesk) 753f74c67d Portainer as Addon (#16200)
* New Script: Portainer

* author
2026-08-02 19:57:42 +02:00
CanbiZ (MickLesk) 81fd7ef01a Docmost: cleanup folder at update (#16177) 2026-07-31 09:46:30 +02:00
CanbiZ (MickLesk) d24422a533 tools.func: support dynamic gitlab URL | add setup_mysql_db function (#16166)
* tools.func: support dynamic gitlab URL

* Update tools.func

* Update tools.func

* restore meilisearch fix
2026-07-30 14:40:59 +02:00
CanbiZ (MickLesk)andmichel.roegl-brunner@htl-braunau.at 30ab4a612d core: add configurable host CA inheritance during bootstrap (#15889)
* Add host CA inheritance for container builds

Introduces `var_inherit_host_ca` (default `auto`) across variable loading, validation, defaults, and persisted app vars. The advanced settings flow now includes a dedicated Host CA Inheritance step and surfaces the selection in the final summary.

Adds `_apply_host_ca_certs_in_container()` to copy host certificates from `/usr/local/share/ca-certificates/*.crt` into the container and refresh trust with `update-ca-certificates` when available. This runs during container setup after proxy configuration, with safe no-op behavior when no host certs exist or inheritance is disabled.

* Warn when host CA inheritance is disabled

Changes the log level from info to warning when host CA inheritance is skipped by configuration, and includes the number of host certificates detected. This makes intentional skips more visible while still showing useful context.

* core: make host CA inheritance opt-in (default no)

Addresses review feedback: default to 'no' instead of 'auto' so certs are
only inherited when explicitly enabled in advanced mode, preserving LXC
isolation by default.

---------

Co-authored-by: michel.roegl-brunner@htl-braunau.at <michel.roegl-brunner@htl-braunau.at>
2026-07-30 10:31:09 +02:00
CanbiZ (MickLesk) b5a9011581 Bichon: Migration for V2 Release (#16145) 2026-07-29 17:58:04 +02:00
CanbiZ (MickLesk) 6ff1e95334 core: Harden remote func bootstrapping with dns issues (#16146)
* Harden remote func bootstrapping

Replace bare `source <(curl ...)` calls with a `_bootstrap_source` helper that validates both the download exit code and the presence of a probe function after sourcing. This prevents silent failures when DNS is not yet available in a freshly booted container or when a download fails mid-stream. Applies to build.func, install.func, and alpine-install.func. Also adds retry flags and a connect timeout to curl/wget.

* Refactor bootstrap error handling with helper

Extract repeated fatal-error logic into a `_bootstrap_die` helper across alpine-install.func, build.func, and install.func. The helper uses `msg_error` when available, falling back to stderr, then exits with code 115. Inline error blocks are replaced with cleaner one-liner `|| _bootstrap_die` calls.
2026-07-29 14:11:08 +02:00
CanbiZ (MickLesk) 8029b208a6 tools.func: add nginx site helper and PHP socket resolver (#16118) 2026-07-28 19:47:13 +02:00
CanbiZ (MickLesk) 8c4ed519a9 Read prompt input directly from /dev/tty (#16126) 2026-07-28 19:45:29 +02:00
CanbiZ (MickLesk) 8990ab702e npmplus: Remove duplicate msg_info for container recreation (#16122) 2026-07-28 19:03:16 +02:00
CanbiZ (MickLesk) 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) 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) 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) 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) 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) 62690cfafb InvenTree: populate database engine/name in config.yaml before invoke update (#16022) 2026-07-26 18:34:05 +02:00