Compare commits

..

1 Commits

Author SHA1 Message Date
copilot-swe-agent[bot]
aba832028c Initial plan 2026-02-25 15:00:10 +00:00
43 changed files with 66 additions and 194 deletions

View File

@@ -7,15 +7,12 @@ set -e
# ======================================================================
if ! bashio::supervisor.ping 2>/dev/null; then
# Source standalone bashio first to provide function definitions
if [ -f /usr/local/lib/bashio-standalone.sh ]; then
source /usr/local/lib/bashio-standalone.sh
fi
bashio::log.blue '-----------------------------------------------------------'
bashio::log.blue "Starting addon in standalone mode (no Supervisor)"
bashio::log.blue "Version : ${BUILD_VERSION:-1.0}"
bashio::log.blue "Config source: ENV + /data/options.json"
bashio::log.blue '-----------------------------------------------------------'
source /usr/local/lib/bashio-standalone.sh
cp -rf /usr/local/lib/bashio-standalone.sh /usr/bin/bashio
grep -rlZ "^#!.*bashio" /etc |
while IFS= read -r -d '' f; do

View File

@@ -64,20 +64,7 @@ if ! command -v bashio::addon.version >/dev/null 2>&1; then
done
fi
# Try regular bashio, fallback to standalone if unavailable or fails
set +e
_bv="$(bashio::addon.version 2>/dev/null)"
_rc=$?
set -e
if [ "$_rc" -ne 0 ] || [ -z "$_bv" ] || [ "$_bv" = "null" ]; then
if [ -f /usr/local/lib/bashio-standalone.sh ]; then
. /usr/local/lib/bashio-standalone.sh
_bv="$(bashio::addon.version)"
fi
fi
echo "$_bv"
bashio::addon.version
'
validate_shebang() {
@@ -146,7 +133,7 @@ fi
sed -i "1s|^.*|#!$shebang|" "$0"
if ! command -v bashio::addon.version >/dev/null 2>&1; then
for f in /usr/lib/bashio/bashio.sh /usr/lib/bashio/lib.sh /usr/src/bashio/bashio.sh /usr/local/lib/bashio/bashio.sh /usr/local/lib/bashio-standalone.sh; do
for f in /usr/lib/bashio/bashio.sh /usr/lib/bashio/lib.sh /usr/src/bashio/bashio.sh /usr/local/lib/bashio/bashio.sh; do
if [ -f "$f" ]; then
# shellcheck disable=SC1090
. "$f"

View File

@@ -83,21 +83,7 @@ if ! command -v bashio::addon.version >/dev/null 2>&1; then
done
fi
# Try regular bashio, fallback to standalone if unavailable or fails
set +e
_bv="$(bashio::addon.version 2>/dev/null)"
_rc=$?
set -e
if [ "$_rc" -ne 0 ] || [ -z "$_bv" ] || [ "$_bv" = "null" ]; then
if [ -f /usr/local/lib/bashio-standalone.sh ]; then
# shellcheck disable=SC1091
. /usr/local/lib/bashio-standalone.sh
_bv="$(bashio::addon.version)"
fi
fi
echo "$_bv"
bashio::addon.version
'
validate_shebang() {

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 @@
## 2026.02.25-2 (25-02-2026)
- Minor bugs fixed
## 2026.02.25 (25-02-2026)
- Fix FLAC for birdweather
- Implement max species to save disk space

View File

@@ -118,5 +118,5 @@ tmpfs: true
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/battybirdnet-pi
usb: true
version: "2026.02.25-2"
version: 2026.02.25
video: true

View File

@@ -1,5 +1,3 @@
## 2026.02.25 (25-02-2026)
- Minor bugs fixed
## 2026.02.01 (01-02-2026)
- Minor bugs fixed
## 2026.01.21 (21-01-2026)

View File

@@ -116,5 +116,5 @@ tmpfs: true
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/birdnet-pi
usb: true
version: 2026.02.25
version: 2026.02.01
video: true

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,3 @@
## 2.22.1-2 (26-02-2026)
- Minor bugs fixed
## 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"
webui: http://[HOST]:[PORT:3000]

View File

@@ -15,11 +15,9 @@ 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
usermod -o -u 0 node
groupmod -o -g 0 node
# 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,7 +1,4 @@
## 4.0.16.2946-3 (2026-02-25)
- Symlink system ffprobe to /app/sonarr/bin/ where Sonarr expects it (fixes https://github.com/alexbelgium/hassio-addons/issues/2451)
## 4.0.16.2946-2 (2026-02-06)
- Add ffmpeg to provide ffprobe for runtime detection (fixes https://github.com/alexbelgium/hassio-addons/issues/2451)

View File

@@ -110,4 +110,4 @@ schema:
slug: sonarr_nas
udev: true
url: https://github.com/alexbelgium/hassio-addons/tree/master/sonarr
version: "4.0.16.2946-3"
version: "4.0.16.2946-2"

View File

@@ -25,11 +25,3 @@ fi
if [ -d /config/addons_config ]; then
rm -rf /config/addons_config
fi
# Sonarr v4 looks for ffprobe in its own binary directory (/app/sonarr/bin/)
# via GlobalFFOptions.Configure(options => options.BinaryFolder = AppDomain.CurrentDomain.BaseDirectory)
# Symlink the system-installed ffprobe there so Sonarr can find a working copy
if [ -f /usr/bin/ffprobe ] && [ -d /app/sonarr/bin ]; then
ln -sf /usr/bin/ffprobe /app/sonarr/bin/ffprobe
echo "Symlinked /usr/bin/ffprobe to /app/sonarr/bin/ffprobe"
fi

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]"

View File

@@ -1,5 +1,3 @@
## 2.5-dev-2 (25-02-2026)
- Minor bugs fixed
## 2.5-dev (2026-01-21)
- Update to latest version from wger/server

View File

@@ -67,10 +67,6 @@ ENV PACKAGES="sudo nginx"
ADD "https://raw.githubusercontent.com/alexbelgium/hassio-addons/master/.templates/ha_autoapps.sh" "/ha_autoapps.sh"
RUN chmod 744 /ha_autoapps.sh && /ha_autoapps.sh "$PACKAGES" || true && rm /ha_autoapps.sh
# Ensure sudoers entry exists after sudo package installation
# (installing sudo may overwrite /etc/sudoers with its default conffile)
RUN echo "wger ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
################
# 4 Entrypoint #
################

View File

@@ -23,5 +23,5 @@ schema:
slug: wger
udev: true
url: https://github.com/alexbelgium/hassio-addons
version: "2.5-dev-2"
version: "2.5-dev"
webui: "[PROTO:ssl]://[HOST]:[PORT:80]"

View File

@@ -11,22 +11,22 @@ sed -i "s|/home/wger/db/database.sqlite|/data/database.sqlite|g" /home/wger/src/
#####################
echo "... create directories"
mkdir -p /data/static
if [ -d /home/wger/static ] && [ ! -L /home/wger/static ]; then
if [ -d /home/wger/static ]; then
if [ -n "$(ls -A /home/wger/static 2> /dev/null)" ]; then
cp -rnf /home/wger/static/* /data/static/
fi
rm -r /home/wger/static
fi
ln -sf /data/static /home/wger
ln -s /data/static /home/wger
mkdir -p /data/media
if [ -d /home/wger/media ] && [ ! -L /home/wger/media ]; then
if [ -d /home/wger/media ]; then
if [ -n "$(ls -A /home/wger/media 2> /dev/null)" ]; then
cp -rnf /home/wger/media/* /data/media/
fi
rm -r /home/wger/media
fi
ln -sf /data/media /home/wger
ln -s /data/media /home/wger
#####################
# Align permissions #