Compare commits

..

1 Commits

Author SHA1 Message Date
Alexandre
2ffe78d610 Fix SignalK startup hang on UID/GID remap failure 2026-03-05 11:04:05 +01:00
29 changed files with 73 additions and 131 deletions

View File

@@ -136,7 +136,6 @@ If you want to do add the repository manually, please follow the procedure highl
![Update](https://img.shields.io/badge/dynamic/json?label=Updated&query=%24.last_update&url=https%3A%2F%2Fraw.githubusercontent.com%2Falexbelgium%2Fhassio-addons%2Fmaster%2Fbirdnet-pipy%2Fupdater.json)
![aarch64][aarch64-badge]
![amd64][amd64-badge]
![ingress][ingress-badge]
![smb][smb-badge]
![localdisks][localdisks-badge]

View File

@@ -319,12 +319,6 @@ for f in */; do
LASTVERSION2=${LASTVERSION//+/-}
CURRENT2=${CURRENT//+/-}
# Skip if current or last version is empty (would corrupt files by replacing all "" occurrences)
if [ "${CURRENT}" = '""' ] || [ "${LASTVERSION}" = '""' ]; then
bashio::log.warning "... $SLUG : skipping update due to empty version string (current=${CURRENT}, latest=${LASTVERSION})"
continue
fi
# Update if needed
if [ "${CURRENT2}" != "${LASTVERSION2}" ]; then
LOGINFO="... $SLUG : update from ${CURRENT} to ${LASTVERSION}" && if [ "$VERBOSE" = true ]; then bashio::log.info "$LOGINFO"; fi

View File

@@ -1,5 +1,3 @@
## 0.5.4-3 (26-02-2026)
- Minor bugs fixed
## 0.5.4-2 (23-02-2026)
- Fix Icecast service failing to connect to PulseAudio on HAOS by respecting PULSE_SERVER env var and setting up socket symlink and auth cookie for icecast2 user

View File

@@ -60,8 +60,6 @@ environment:
PGID: "0"
PUID: "0"
image: ghcr.io/alexbelgium/birdnet-pipy-{arch}
ingress: true
ingress_stream: true
init: false
map:
- addon_config:rw
@@ -95,5 +93,5 @@ schema:
ssl: bool?
slug: birdnet-pipy
url: https://github.com/alexbelgium/hassio-addons/tree/master/birdnet-pipy
version: "0.5.4-3"
version: "0.5.4-2"
webui: "[PROTO:ssl]://[HOST]:[PORT:80]"

View File

@@ -2,23 +2,8 @@ absolute_redirect off;
rewrite ^%%ingress_entry%%/(.*)$ /$1 break;
sub_filter_once off;
sub_filter_types *;
# Inject <base href> for Vue Router history mode and static asset loading
sub_filter '<head>' '<head><base href="%%ingress_entry%%/">';
# Rewrite absolute href/src attributes in HTML
sub_filter 'href="/' 'href="%%ingress_entry%%/';
sub_filter 'src="/' 'src="%%ingress_entry%%/';
# Rewrite API paths in JS bundles (axios baseURL and fetch calls)
# Pattern includes baseURL:"/api" (no trailing slash) so "/api" is needed
sub_filter '"/api' '"%%ingress_entry%%/api';
sub_filter "'/api" "'%%ingress_entry%%/api";
# Rewrite stream paths
sub_filter '"/stream/' '"%%ingress_entry%%/stream/';
sub_filter "'/stream/" "'%%ingress_entry%%/stream/";
# Rewrite Socket.IO default path in the client library
sub_filter '"/socket.io' '"%%ingress_entry%%/socket.io';
sub_filter "'/socket.io" "'%%ingress_entry%%/socket.io";
sub_filter '"/birdnet/' '"%%ingress_entry%%/birdnet/';
sub_filter 'url(/birdnet/' 'url(%%ingress_entry%%/birdnet/';

View File

@@ -2,11 +2,11 @@
# ALEXBELGIUM'S DOCKERFILE #
#============================#
# _.------.
# _.-` ('>.-`"""-.
# _.-` ('>.-`"0.8.13""-.
# '.--'` _'` _ .--.)
# -' '-.-';` `
# ' - _.' ``'--.
# '---` .-'""`
# '---` .-'"0.8.13"`
# /`
#=== Home Assistant Addon ===#

View File

@@ -2,11 +2,11 @@
# ALEXBELGIUM'S DOCKERFILE #
#============================#
# _.------.
# _.-` ('>.-`"""-.
# _.-` ('>.-`"0.8.2""-.
# '.--'` _'` _ .--.)
# -' '-.-';` `
# ' - _.' ``'--.
# '---` .-'""`
# '---` .-'"0.8.2"`
# /`
#=== Home Assistant Addon ===#

View File

@@ -1,5 +1,3 @@
## 1.6.0-bullseye-2 (26-02-2026)
- Minor bugs fixed
## 1.6.0-bullseye (2025-12-24)
- Update to latest version from abesnier/guacamole

View File

@@ -2,11 +2,11 @@
# ALEXBELGIUM'S DOCKERFILE #
#============================#
# _.------.
# _.-` ('>.-`"""-.
# _.-` ('>.-`"1.6.0-bullseye""-.
# '.--'` _'` _ .--.)
# -' '-.-';` `
# ' - _.' ``'--.
# '---` .-'""`
# '---` .-'"1.6.0-bullseye"`
# /`
#=== Home Assistant Addon ===#
@@ -134,7 +134,7 @@ LABEL \
#################
ENV HEALTH_PORT="8080" \
HEALTH_URL=""
HEALTH_URL="1.6.0-bullseye"
HEALTHCHECK \
--interval=5s \
--retries=5 \

View File

@@ -102,5 +102,5 @@ schema:
slug: guacamole
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "1.6.0-bullseye-2"
version: "1.6.0-bullseye"
video: true

View File

@@ -1,5 +1,3 @@
## 10.11.6-7 (26-02-2026)
- Minor bugs fixed
## 10.11.6-6 (04-02-2026)
- Minor bugs fixed
## 10.11.6-5 (03-02-2026)

View File

@@ -124,5 +124,5 @@ schema:
slug: jellyfin
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "10.11.6-7"
version: "10.11.6-6"
video: true

View File

@@ -3,65 +3,40 @@
# DO NOT use set -e here — we want graceful degradation
RENDER_GID=104
JELLYFIN_USER=abc
GROUP_NAME=""
log() {
echo "[render-fix] $*"
}
# Find group owning GID 104
GROUP_NAME="$(getent group "$RENDER_GID" | cut -d: -f1 || true)"
if [ -z "$GROUP_NAME" ]; then
GROUP_NAME="render104"
log "Creating group $GROUP_NAME with GID $RENDER_GID"
if ! groupadd -g "$RENDER_GID" "$GROUP_NAME" 2>/dev/null; then
log "Group creation failed (probably already exists). Continuing."
fi
else
log "Group with GID $RENDER_GID already exists: $GROUP_NAME"
fi
# Ensure user exists
if ! id "$JELLYFIN_USER" >/dev/null 2>&1; then
log "User $JELLYFIN_USER not found — skipping"
exit 0
fi
# Ensure render devices are accessible by detecting actual device GID
if [ -d /dev/dri ]; then
# Make all render devices world-accessible
for dev in /dev/dri/renderD*; do
if [ -e "$dev" ]; then
log "Setting permissions on $dev"
chmod 666 "$dev" 2>/dev/null || log "chmod failed on $dev"
fi
done
# Detect the actual GID of the render device
RENDER_GID="$(stat -c '%g' /dev/dri/renderD128 2>/dev/null || true)"
if [ -z "$RENDER_GID" ]; then
# Fallback: try any render device
for dev in /dev/dri/renderD*; do
if [ -e "$dev" ]; then
RENDER_GID="$(stat -c '%g' "$dev" 2>/dev/null || true)"
break
fi
done
fi
# Fallback to common render GID if no device found
if [ -z "$RENDER_GID" ]; then
RENDER_GID=104
fi
GROUP_NAME="$(getent group "$RENDER_GID" | cut -d: -f1 || true)"
if [ -z "$GROUP_NAME" ]; then
GROUP_NAME="render${RENDER_GID}"
log "Creating group $GROUP_NAME with GID $RENDER_GID"
if ! groupadd -g "$RENDER_GID" "$GROUP_NAME" 2>/dev/null; then
log "Group creation failed (probably already exists). Continuing."
fi
else
log "Group with GID $RENDER_GID already exists: $GROUP_NAME"
fi
# Add user to render group if not already a member
if id "$JELLYFIN_USER" | grep -qw "$GROUP_NAME"; then
log "User $JELLYFIN_USER already in group $GROUP_NAME"
else
log "Adding user $JELLYFIN_USER to group $GROUP_NAME"
if ! usermod -aG "$GROUP_NAME" "$JELLYFIN_USER" 2>/dev/null; then
log "usermod failed — probably read-only user or already applied"
fi
fi
else
log "No /dev/dri directory found — skipping render device setup"
# Check if already member
if id "$JELLYFIN_USER" | grep -qw "$GROUP_NAME"; then
log "User $JELLYFIN_USER already in group $GROUP_NAME"
exit 0
fi
log "Adding user $JELLYFIN_USER to group $GROUP_NAME"
if ! usermod -aG "$GROUP_NAME" "$JELLYFIN_USER" 2>/dev/null; then
log "usermod failed — probably read-only user or already applied"
fi

View File

@@ -1,5 +1,3 @@
## 5.0.0b5-2 (26-02-2026)
- Minor bugs fixed
## 5.0.0b5 (2025-12-27)
- Update to latest version from monicahq/monica (changelog : https://github.com/monicahq/monica/releases)

View File

@@ -108,5 +108,5 @@ services:
- mysql:want
slug: monica
url: https://github.com/alexbelgium/hassio-addons/tree/master/monica
version: "5.0.0b5-2"
version: "5.0.0b5"
webui: "[PROTO:ssl]://[HOST]:[PORT:80]"

View File

@@ -62,7 +62,7 @@ case "$database" in
bashio::log.warning "Uninstalling the MariaDB addon will remove any data"
# Create database
mysql --skip-ssl --host="$DB_HOST" --port="$DB_PORT" --user="$DB_USERNAME" --password="$DB_PASSWORD" -e"CREATE DATABASE IF NOT EXISTS $DB_DATABASE;"
mysql --host="$DB_HOST" --port="$DB_PORT" --user="$DB_USERNAME" --password="$DB_PASSWORD" -e"CREATE DATABASE IF NOT EXISTS $DB_DATABASE;"
;;
@@ -86,7 +86,7 @@ case "$database" in
fi
# Create database
mysql --skip-ssl --host="$DB_HOST" --port="$DB_PORT" --user="$DB_USERNAME" --password="$DB_PASSWORD" -e"CREATE DATABASE IF NOT EXISTS $DB_DATABASE;"
mysql --host="$DB_HOST" --port="$DB_PORT" --user="$DB_USERNAME" --password="$DB_PASSWORD" -e"CREATE DATABASE IF NOT EXISTS $DB_DATABASE;"
;;

View File

@@ -1,5 +1,3 @@
## ubuntu-2025-11-30-4 (26-02-2026)
- Minor bugs fixed
## ubuntu-2025-11-30-3 (2026-01-10)
- ⚠ MAJOR CHANGE : switch to the new config logic from homeassistant. Your configuration files will have migrated from /config/addons_config/photoprism to a folder only accessible from my Filebrowser addon called /addon_configs/xxx-photoprism. This avoids the addon to mess with your homeassistant configuration folder, and allows to backup the options. Migration of data should be automatic, but update any custom paths or permissions to avoid breakage. Please be sure to update all your links however ! For more information, see here : https://developers.home-assistant.io/blog/2023/11/06/public-addon-config/

View File

@@ -2,11 +2,11 @@
# ALEXBELGIUM'S DOCKERFILE #
#============================#
# _.------.
# _.-` ('>.-`"""-.
# _.-` ('>.-`"ubuntu-2025-11-30""-.
# '.--'` _'` _ .--.)
# -' '-.-';` `
# ' - _.' ``'--.
# '---` .-'""`
# '---` .-'"ubuntu-2025-11-30"`
# /`
#=== Home Assistant Addon ===#
@@ -134,8 +134,8 @@ RUN \
mv /etc/nginx/nginx.conf.new /etc/nginx/nginx.conf; \
fi
ENV HEALTH_PORT="2341" \
HEALTH_URL=""
ENV HEALTH_PORT="ubuntu-2025-11-30" \
HEALTH_URL="ubuntu-2025-11-30"
HEALTHCHECK \
--interval=5m \
--retries=5 \

View File

@@ -131,5 +131,5 @@ services:
slug: photoprism
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "ubuntu-2025-11-30-4"
version: "ubuntu-2025-11-30-3"
video: true

View File

@@ -2,11 +2,11 @@
# ALEXBELGIUM'S DOCKERFILE #
#============================#
# _.------.
# _.-` ('>.-`"""-.
# _.-` ('>.-`"12.0.14""-.
# '.--'` _'` _ .--.)
# -' '-.-';` `
# ' - _.' ``'--.
# '---` .-'""`
# '---` .-'"12.0.14"`
# /`
#=== Home Assistant Addon ===#

View File

@@ -1,5 +1,6 @@
## 2.22.1-2 (26-02-2026)
- Minor bugs fixed
## 2.22.1-1 (2026-02-25)
- Fix startup hang by handling node UID/GID remap failures gracefully in init script
## 2.22.1 (2026-02-21)
- Update to latest version from SignalK/signalk-server (changelog : https://github.com/SignalK/signalk-server/releases)

View File

@@ -57,5 +57,5 @@ uart: true
udev: true
url: https://github.com/alexbelgium/hassio-addons
usb: true
version: "2.22.1-2"
version: "2.22.1-1"
webui: http://[HOST]:[PORT:3000]

View File

@@ -15,11 +15,25 @@ ln -sf /config "/home/node/.signalk"
chown -R "$USER:$USER" /config
# Set permissions
# Use sed instead of usermod/groupmod to avoid hangs in container environments
# (usermod can block indefinitely due to lock contention, NSS, or PAM issues)
echo "... setting permissions for node user"
sed -i 's/^\(node:[^:]*:\)[0-9]*:[0-9]*/\10:0/' /etc/passwd
sed -i 's/^\(node:[^:]*:\)[0-9]*/\10/' /etc/group
if id "$USER" &>/dev/null; then
current_uid="$(id -u "$USER")"
current_gid="$(id -g "$USER")"
if [[ "$current_uid" != "0" ]]; then
if ! usermod -o -u 0 "$USER"; then
bashio::log.warning "Failed to set UID 0 for $USER; continuing with UID $current_uid"
fi
fi
if [[ "$current_gid" != "0" ]]; then
if ! groupmod -o -g 0 "$USER"; then
bashio::log.warning "Failed to set GID 0 for $USER; continuing with GID $current_gid"
fi
fi
else
bashio::log.warning "User $USER does not exist; continuing without UID/GID remap"
fi
# Ensure 600 for SSL files
echo "... specifying security files permissions"

View File

@@ -1,5 +1,3 @@
## 1.4.0-2 (26-02-2026)
- Minor bugs fixed
## 1.4.0 (2026-02-21)
- Update to latest version from GerardPolloRebozado/social-to-mealie (changelog : https://github.com/GerardPolloRebozado/social-to-mealie/releases)

View File

@@ -1,5 +1,5 @@
name: Social to Mealie
version: "1.4.0-2"
version: "1.4.0"
slug: social_to_mealie
description: Import recipes from social media directly into Mealie
url: https://github.com/alexbelgium/hassio-addons

View File

@@ -4,16 +4,6 @@ set -e
bashio::log.info "Starting Social to Mealie"
cd /app || bashio::exit.nok "App directory not found"
# On aarch64, native Node.js modules (sharp, @next/swc, etc.) may have been
# incorrectly cross-compiled via Docker BuildKit QEMU emulation, causing
# "Illegal instruction" crashes on real hardware. Rebuild them for the actual
# native architecture.
if [ "$(uname -m)" = "aarch64" ]; then
bashio::log.info "Ensuring native modules are built for aarch64..."
npm rebuild 2>&1 || bashio::log.warning "Could not rebuild native modules - the addon may not work correctly on this architecture"
fi
chown nextjs /app/entrypoint.sh
chmod +x /app/entrypoint.sh
exec gosu nextjs /app/entrypoint.sh node --run start

View File

@@ -1,5 +1,3 @@
## 2.58.02-2 (26-02-2026)
- Minor bugs fixed
## 2.58.02 (2025-12-24)
- Update to latest version from haveagitgat/tdarr

View File

@@ -2,11 +2,11 @@
# ALEXBELGIUM'S DOCKERFILE #
#============================#
# _.------.
# _.-` ('>.-`"""-.
# _.-` ('>.-`"2.58.02""-.
# '.--'` _'` _ .--.)
# -' '-.-';` `
# ' - _.' ``'--.
# '---` .-'""`
# '---` .-'"2.58.02"`
# /`
#=== Home Assistant Addon ===#
@@ -119,7 +119,7 @@ RUN \
fi
ENV HEALTH_PORT="8265" \
HEALTH_URL=""
HEALTH_URL="2.58.02"
HEALTHCHECK \
--interval=5s \
--retries=5 \

View File

@@ -122,6 +122,6 @@ schema:
slug: tdarr
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "2.58.02-2"
version: "2.58.02"
video: true
webui: "[PROTO:ssl]://[HOST]:[PORT:8265]"