* Wiki.js: install 3.x
Wiki.js 3 lives in requarks/wiki, needs Node.js 26 and creates its own ltree and pg_trgm extensions in the wiki schema, and starts with node --no-experimental-webstorage backend. dataPath moves out of the app folder, which every update replaces; the admin password is generated and saved to ~/wikijs.creds. Updates follow upstream's guide and put Puppeteer back when it was installed. 2.x containers keep getting 2.x updates from requarks/wiki-v2, since 3.x cannot upgrade them in place, and are told how to export and import.
* Refactor credential output to use heredoc syntax
Cinephage depends on camoufox instead of camoufox-js, whose bin is called camoufox, so the install stopped at "node_modules/.bin/camoufox-js: No such file or directory" (6 runs in three days).
- VectorChord moved to supervc-stack/VectorChord. With the GitHub API
rate limited, core reads the release from github.com, finds no asset
under the old name and stops with "No suitable .deb asset found".
- mise installed every tool in Immich's mise.toml. Java (for the Dart
OpenAPI generator), terragrunt and opentofu are not needed for the
plugin build, and the Java index timed out on slow links.
- GeoNames failed after the 1-3 h library build; it now downloads first.
- Stop on x86-64 CPUs without SSE4.2: the web build ends there with
"Illegal instruction" after the libraries are built.
* Zabbix: install on Debian 12 again
The install and the update fetched Zabbix's release package for Debian 13 and php8.4-pgsql, so a Debian 12 container stopped with "Unable to locate package php8.4-pgsql" (12 runs in three days). Zabbix publishes 7.0 and 7.4 for Debian 12 too: take the container's Debian version and the distribution's php-pgsql.
* Zabbix: leave the update as it was
The update refuses Debian 12 on purpose, so its release URL stays as it was.
Discourse enabled libvips image processing by default and its worker refuses anything older than 8.18; Debian 13 ships 8.16, so the service failed to boot after an update and on fresh installs. Build the latest libvips release from source like discourse_docker does, on install and on update when a new release is out.
wazuh-install.sh writes everything to ~/wazuh-install.output, so a failed run left only "bash exited with status 1" in the log and the telemetry (8 runs in three days, three of them with the default resources). The end of that output now goes into the install log.
* guardian: bump Node.js from 24 to 26
* Set NODE_VERSION to 26 before updating Guardian
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
* nametag: bump Node.js from 20 to 24
* Update NODE_VERSION in nametag deployment script
Set NODE_VERSION to 24 during deployment process.
* Increase default RAM from 2048MB to 3072MB
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: CanbiZ (MickLesk) <47820557+MickLesk@users.noreply.github.com>
* Norish: fetch Obscura from the repo Norish pins
Norish now builds Obscura from norish-recipes/obscura (pin.env OBSCURA_REPO); the v0.2.5-norish.1 tag does not exist in h4ckf0r0day/obscura, so installs and updates stopped with a GitHub 404.
* Norish: run the v0.26 server on Node.js 26
v0.26.0 dropped dist-server and starts with node --import tsx server/index.ts from apps/web, and requires Node 26. Updates rewrite the unit.
* Aurral: build the pnpm workspace and run backend/server.ts
v2.12.0 moved from npm workspaces to pnpm and the backend entry to server.ts, so npm ci --workspace frontend found no workspace. Updates point existing units at server.ts.
* Aurral: install only the frontend and backend packages
The workspace root's prepare script runs vp config, which needs git; the upstream image filters the install to the two packages as well.
* Aurral: install git for the workspace prepare script
The root prepare script runs vp config, which aborts when git is missing and only notes the absent .git directory otherwise.
* PS5-MQTT: build the yarn workspace and run the packaged server
v1.8.0 turned the repo into a yarn 4 workspace with Plug'n'Play: ps5-mqtt/package.json is gone and npm install there fails. The server now runs from the packaged tree with its own node_modules, as upstream's image does; updates move the unit's working directory.
* PS5-MQTT: give the build 2 GB of RAM
Building the client and server bundles with rspack is killed by the OOM killer at 512 MB.
* Drop the legacy engine copies from misc/
Nothing has loaded misc/*.func since ct/, install/, vm/ and tools/ moved to
community-scripts/core. misc/api.func stays until vm/owncloud-vm.sh gets its
DevScripts rewrite.
misc/images/ moves to .github/assets/. The tombstone stub for removed scripts
sourced misc/build.func and called variables(), which core's PVE engine does
not define; it now sources core.func.
* Drop misc/api.func
vm/owncloud-vm.sh was its last caller; DevScripts holds that script's rewrite
onto core/pve/vm-core.func. Merge this after the promotion.
* fix(discourse): track the Ruby version Discourse requires
Discourse main now pins `ruby "~> 4.0.0"` in its Gemfile, so `bundle install`
aborts with exit 18 on containers built against the hardcoded Ruby 3.4.4. The
update path never touched Ruby at all, so every existing install breaks.
Discourse ships no .ruby-version, so read the pinned version from
Gemfile.lock's RUBY VERSION stanza and hand it to setup_ruby — on install
(repo is now cloned before the runtime setup) and on update (after the git
pull, so a bumped requirement is picked up). Also silence bundler's root
warning, split the update into separate progress steps, and skip the
unused global Rails gem.
* move ruby into msg block
* move git
Removed comment about Ruby version in install script.
Since 2.7.1 the deb's postinst appends a live service: block with the secret, so uncommenting the stock service: line left two service keys and Vikunja fell back to its defaults. Updates merge the duplicate on existing installs.
The service ran `java -jar` without the JAVA_BASE_OPTS from .env, and inside
LXC the JVM cannot see the container's memory limit, so it sized its heap from
host RAM (16 GB in a 2 GB CT on a 64 GB host) and the container thrashed and got
OOM-killed. Pass the .env options, set -XX:MaxRAM from /proc/meminfo (lxcfs
reports the CT limit), lower MaxRAMPercentage to 50 for LibreOffice/tesseract
headroom, and migrate existing units on update (also drops the broken
ExecStop=/bin/kill -15 %n left from before #16813).
Fixes#18291
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
VictoriaLogs only accepts syslog when -syslog.listenAddr.tcp/udp are set,
so network gear that ships logs over syslog (UniFi, firewalls, switches)
had nowhere to send them. Add both listeners to the service and migrate
existing installs on update.
Since Dawarich 1.15.1 the importmap pins maplibre-gl to
/maplibre/<version>/maplibre-gl.mjs in public/. Debian's nginx
mime.types has no mjs entry, so the vhost served it as
application/octet-stream and browsers refused to load the module:
blank map, map controllers fail.
Add a .mjs location (text/javascript, as Rails serves it upstream) to
the install heredoc, and insert it into existing vhosts from
update_script() before the release check, applied via nginx_enable_site.
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
The update overlaid the release tarball, so files removed upstream survived. v0.13.1 moved the frontend config into vite.config.ts, and the leftover svelte.config.js fails pnpm build under SvelteKit 3 (config_file_unsupported) after the services are already stopped. Deploy with CLEAN_INSTALL=1, keep backend/server/media in place, and back up both .env files.
The djangorestframework<3.15 pin (#13194) worked around rest_framework.schemas.coreapi, which AdventureLog stopped using in v0.13.0. v0.13.1 requires djangorestframework>=3.18.3,<3.19, so the pin now downgrades DRF below the app's own requirement.
Stalwart v1.0.0 (26 Oct 2026) ships a new data store layout, so v0.16.x
deployments cannot be upgraded in place. Data has to be copied into a new,
empty v1 store with stalwartlabs/stalwart-migrate, which requires v0.16.27
as its source version and needs an interactive prepare step plus an offline
final cutover.
The update path pulled "latest" and would have swapped the binary for v1 on
existing containers, leaving the mail server unable to start on its old store.
Pin install and update to v0.16.27 instead and surface the reason through
check_for_gh_release. Containers that already pulled v1.0.0 are put back on
v0.16.27 by the next update run.
mise 2026.10.19 defaults lockfile_mode to generate, which locks every platform during mise install. Immich's mise.toml enables the lockfile, and Java 21.0.2 has no linux-arm64-musl build, so the update failed on any host. Fixes#18236
* Add honcho (ct)
* Clean up comments in honcho-install.sh
Removed comments about Dockerfile and Honcho client build conditions for clarity.
* Remove admin key printing from setup output
Removed the command to print the admin key from the setup output.
---------
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>