The server defaults to ./static relative to the working directory.
Without WorkingDirectory in the service, it looks at /static which
doesn't exist, causing 404 on the web UI. Set the absolute path
/opt/oxicloud/static in the .env file.
The labca-gui -init flag does not exit after initialization - it starts
the HTTP server and blocks forever, causing the install to hang.
Removed the -init call; the service handles first-run setup via the
browser /setup route automatically. Also removed system user (runs as
root in LXC).
Ente: Remove circular Caddy :8080 reverse_proxy block that conflicted
with Museum binding to the same port. Museum serves directly on 8080.
Garmin-Grafana: Use GARMINCONNECT_EMAIL and GARMINCONNECT_BASE64_PASSWORD
env vars instead of broken heredoc stdin piping through timeout+uv run.
MFA code piped via stdin only when provided.
Delete duplicated frontend/public/json/surrealdb.json and update the canonical json/surrealdb.json file: restore original date_created, adjust description, normalize website URL, change default_credentials.password to null, and add notes about web UI and saved creds. Also include a tiny EOF/newline normalization in json/cliproxyapi.json.
Replace author attribution with "MickLesk (CanbiZ)" in ct/coredns.sh and install/coredns-install.sh. Reformat the categories array in json/coredns.json to a multiline style and adjust trailing newline/whitespace. These are non-functional metadata/formatting changes.
Add a new Alpine-based container template for IronClaw. Introduces ct/alpine-ironclaw.sh (installer/launcher with update routine), ct/headers/alpine-ironclaw (ASCII header), install/alpine-ironclaw-install.sh (sets up PostgreSQL 17, pgvector, deploys MUSL prebuilt IronClaw binary, creates OpenRC service and env file), and json/alpine-ironclaw.json (metadata, docs link, ports, resource defaults). The template auto-generates a gateway auth token, uses the MUSL binary for a minimal footprint, and documents post-install steps (ironclaw onboard).
Create /usr/local/bin/update_cronmaster during install and inside update() (using a single-quoted heredoc to avoid variable expansion) and make it executable. The generated updater now exports CRONMASTER_ACTION=update when invoking the fetched cronmaster.sh, and the main script checks CRONMASTER_ACTION instead of type. Also adjust the repository fetch path and remove a duplicate ensure_usr_local_bin_persist call.
Add IronClaw container templates and install scripts (ct/ironclaw.sh, install/ironclaw-install.sh, json/ironclaw.json) to provide automated setup, service unit, and default config for the IronClaw AI agent.
Refactor tools/addon/cronmaster.sh to use the ProxmoxVE misc endpoints, initialize optional telemetry, improve function loading, and strengthen OS detection (Debian/Ubuntu-only). Make service and install behaviors more robust: ensure /usr/local/bin persistence, create/update the update script from the new repo URL, change systemd WantedBy to multi-user.target, enable service quietly, save generated credentials to /root/cronmaster.creds, and use distinct exit codes for unsupported/invalid states. Misc license URL fix and other small reliability improvements.
Replace inconsistent msg_info calls with msg_warn for mirror-list warnings and msg_custom for "Attempting mirror" lines to unify output formatting in misc/build.func and misc/install.func. Simplify tools/pve/update-lxcs-cron.sh by removing the long mirror-probing block and using a straightforward apt-get update + noninteractive dist-upgrade (and cleanup of EXTERNALLY-MANAGED) in containers to reduce complexity and improve maintainability.