The shared workspace package imports zod but pnpm install was only run in the SparkyFitnessFrontend subdirectory, leaving the shared packages dependencies unresolved. Run pnpm install from the monorepo root to install all workspace dependencies before building the frontend.
Closes#12748
* openwebui: Ensure required dependencies
Added zstd and build-essential as dependencies for the script.
* Update dependencies in openwebui-install.sh
Added build-essential and libmariadb-dev to dependencies.
Pass an explicit empty second argument when downloading MongoDB tools and update fetch_and_deploy_from_url to default the directory parameter to an empty string. This avoids unset/ambiguous directory handling at the call site and ensures the function has a defined directory variable even when none is provided.
PowerDNS 5.x requires a parent 'launch=' directive before any
incremental 'launch+=' can be used. Since the install script
comments out the default 'launch=' in pdns.conf, the 'launch+='
in gsqlite3.conf fails with:
Fatal error: Incremental setting 'launch' without a parent
Use 'launch=gsqlite3' (non-incremental) since gsqlite3 is the
only backend needed.
The /opt/poweradmin/ directory was owned by www-data:www-data (755),
but pdns runs as the 'pdns' user which had no write access to the
directory. SQLite requires write access to the database directory to
create journal/WAL files (powerdns.db-journal, powerdns.db-wal).
Without this, pdns fails to start.
Changes:
- Set directory group to 'pdns' instead of 'www-data' so pdns user
can create SQLite journal/WAL files (via group write 775)
- Apply same permissions fix in update_script (ct/powerdns.sh)
- Fix msg_info -> msg_ok for 'Created Service' completion message
Fixes#12572
- Comment out empty 'launch=' in pdns.conf that overrides launch+= directives
- Remove default bind.conf and create gsqlite3.conf pointing to the
Poweradmin SQLite database (/opt/poweradmin/powerdns.db)
- Set correct ownership (pdns:pdns) and permissions (664) on the
database file so pdns_server can read/write it
- Add www-data to pdns group for shared database access
- Restart pdns service alongside apache2
* fix(immich): correct LibRaw clone URL to official upstream
The Immich helper script clones LibRaw from:
https://github.com/libraw/libraw.git
This repository does not exist and results in:
fatal: unable to access ... error: 500
exit code: 128
The correct upstream repository is:
https://github.com/LibRaw/LibRaw.git
This should resolve installation failure during the LibRaw compilation stage.
* Fix repository URL for libraw in install script
---------
Co-authored-by: Chris <punk.sand7393@fastmail.com>
Part of #12467 — scripts only (no framework changes).
New exit codes 250-254 registered in api.func and error_handler.func:
- 250: App download failed or version not determined
- 251: App file extraction failed (corrupt/incomplete archive)
- 252: App required file or resource not found
- 253: App data migration required — update aborted
- 254: App user declined prompt or input timed out
Existing codes reused where applicable:
- 10: privileged/Docker required (unifi-os-server)
- 64: invalid user input (postgresql, tomcat)
- 71: system error (pulse useradd)
- 150: service failed to start (docker, npmplus)
- 153: build failed (booklore)
- 233: app not installed (evcc, endurain, grafana, loki, itsm-ng)
- 236: hardware not detected (unifi-os-server /dev/net/tun)
- 238: OS not supported (frigate)
Pass PG_VERSION from the Mealie installer (replace POSTGRES_VERSION with PG_VERSION) and update misc/tools.func to prefer vendor package repos by default. Adjusted comments/examples for setup_mysql and setup_postgresql to reflect the new default behavior, and changed the local default for USE_MYSQL_REPO to true. These changes align variable naming in the installer and clarify that official MySQL/PGDG repositories are used unless explicitly disabled.
* feat: add Docker-based tool addons for dockge, komodo, dokploy, npmplus
Create addon scripts following the arcane.sh pattern for Docker-based
tools that can be installed on any existing Docker LXC:
- dockge: Docker Compose stack manager (port 5001)
- komodo: Build/deployment system with MongoDB/FerretDB (port 9120)
- dokploy: PaaS via external installer with Redis (port 3000)
- npmplus: Nginx Proxy Manager Plus via Compose (port 81)
Each addon includes:
- Docker availability check
- Install with full configuration
- Update via docker compose pull
- Uninstall with container cleanup
- ASCII header files
Original ct/ and install/ scripts are preserved for now.
* refactor: convert Docker tools to addons, remove old scripts
Convert dockge, komodo, dokploy, coolify from standalone ct/install
scripts to addon pattern (like arcane.sh).
Added:
- tools/addon/dockge.sh (port 5001)
- tools/addon/komodo.sh (port 9120, MongoDB/FerretDB choice)
- tools/addon/dokploy.sh (port 3000, external installer)
- tools/addon/coolify.sh (port 8000, external installer)
- tools/headers/ for all 4
Removed:
- ct/dockge.sh, ct/komodo.sh, ct/alpine-komodo.sh, ct/dokploy.sh, ct/coolify.sh
- install/dockge-install.sh, install/komodo-install.sh, install/alpine-komodo-install.sh
- install/dokploy-install.sh, install/coolify-install.sh
- frontend/public/json/ for dockge, komodo, dokploy, coolify
- tools/addon/npmplus.sh (not an addon candidate)
These tools are Docker-only and fit the addon pattern: they require
an existing Docker LXC and manage containers via docker compose.
* feat: add addon JSON configs for dockge, komodo, dokploy, coolify
Recreate JSON configs with type=addon, script paths pointing to
tools/addon/*.sh, null resources (addon runs on existing Docker LXC),
and update instructions in notes.
* feat: add Runtipi addon + upgrade all addons with Proxmox host check, optional Docker install, Alpine support
- New: tools/addon/runtipi.sh with full Alpine support (gcompat for musl)
- New: tools/headers/runtipi ASCII header
- Updated: runtipi.json to addon type with null resources
- Removed: ct/runtipi.sh, install/runtipi-install.sh (migrated to addon)
- All addons (dockge, komodo, dokploy, coolify, runtipi) now have:
- check_proxmox_host(): warns when running on PVE host, default N
- check_or_install_docker(): optional Docker install (Debian+Alpine)
- Alpine-aware curl bootstrap and dependency installation
* readd ct, update information
* Create runtipi.sh
* refactor: remove inline header_info from addons, use core.func get_header()
- get_header() in core.func now maps APP_TYPE=addon to tools/headers/ path
- Removed 5 duplicate ASCII art header_info functions from addon scripts
- Addons now use the shared header_info() from core.func + tools/headers/ files
* chore(tools): add Github source links to dockge, komodo, dokploy, coolify, runtipi addons
* fix(runtipi): drop Alpine support; add OS compat notes to docker addon JSONs