- Dynamically detect render device GID using stat instead of hardcoding 104
- chmod 666 render devices to ensure accessibility for non-root PUID/PGID
- Only run render setup when /dev/dri exists
- Use GID-specific group naming to avoid conflicts
Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
The addons_updater script's global sed replacement corrupted Dockerfiles
when the upstream_version was empty (""), replacing all empty double-quoted
strings with version strings. This corrupted:
- HEALTH_URL values (causing malformed health check URLs and container
instability from failed health checks)
- ASCII art comments in Dockerfile headers
Fixed affected addons: guacamole, tdarr, photoprism, enedisgateway2mqtt_dev,
gazpar2mqtt, seafile
Also added a guard in the updater script to skip updates when version
strings are empty, preventing this corruption from recurring.
Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
On aarch64, native Node.js modules (sharp, @next/swc, etc.) may have
been incorrectly cross-compiled via Docker BuildKit QEMU emulation.
Add an npm rebuild step that runs at startup on aarch64 to re-download
the correct prebuilt native binaries for the actual hardware.
Fixes #XXXX
Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
Add ingress: true, ingress_port: 0, and ingress_stream: true to
config.yaml. Update ingress_params.conf with sub_filter rules for
Vue.js SPA: rewrite API paths, stream paths, Socket.IO paths, and
inject base href for Vue Router history mode.
Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
Replace `usermod -o -u 0 node` and `groupmod -o -g 0 node` with direct
sed modifications to /etc/passwd and /etc/group. The usermod/groupmod
commands can hang indefinitely in container environments due to lock
file contention, NSS cache daemon (nscd) interactions, or PAM module
issues. The sed approach achieves the same result without these risks.
Fixes #XXXX
Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
The sudoers entry for the wger user was written to /etc/sudoers before
the sudo package was installed. When apt-get installs sudo, its default
/etc/sudoers conffile may overwrite the entry, causing sudo to fail at
runtime. This prevented ha_entrypoint.sh from running as root, so
/data/media was never created with correct permissions, resulting in
PermissionError when downloading exercise images.
Fix: re-add the sudoers entry after the sudo package is installed.
Also improve symlink handling in 90-run.sh to avoid self-referencing
copies on subsequent container starts.
Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
- ha_entrypoint.sh: probe_script_content now tries regular bashio first,
falls back to bashio-standalone.sh if Supervisor API unreachable
- 00-banner.sh: source bashio-standalone before calling bashio functions
in standalone branch (prevents undefined function errors with set -e)
- 01-custom_script.sh: same probe fix + add bashio-standalone.sh to
fallback source chain
Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>