Compare commits
17 Commits
ec2ee2f688
...
4ce3b460fd
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4ce3b460fd | ||
|
|
0916466849 | ||
|
|
ffdcc54dec | ||
|
|
af461c5f71 | ||
|
|
e476bddd03 | ||
|
|
db417e78d6 | ||
|
|
0a8637d90c | ||
|
|
01a87f3d3d | ||
|
|
9dd66d0977 | ||
|
|
8efc883ab2 | ||
|
|
bc4f9528fe | ||
|
|
911fb73b68 | ||
|
|
ce71f1a9b6 | ||
|
|
c21896c6d6 | ||
|
|
f275dbb139 | ||
|
|
16d7fbcdf9 | ||
|
|
8043837ba4 |
BIN
.github/stargazer_map.png
vendored
|
Before Width: | Height: | Size: 330 KiB After Width: | Height: | Size: 61 KiB |
BIN
.github/stats.png
vendored
|
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 2.2 KiB |
BIN
.github/stats_addons.png
vendored
|
Before Width: | Height: | Size: 9.0 KiB After Width: | Height: | Size: 4.1 KiB |
@@ -199,8 +199,15 @@ if $PID1; then
|
||||
echo "Starting: $runfile"
|
||||
sed -i "1s|^.*|#!$shebang|" "$runfile"
|
||||
chmod +x "$runfile"
|
||||
(exec "$runfile") &
|
||||
true
|
||||
(
|
||||
restart_count=0
|
||||
while true; do
|
||||
"$runfile" || true
|
||||
restart_count=$((restart_count + 1))
|
||||
echo -e "\e[38;5;214m$(date) WARNING: $runfile exited, restarting (#${restart_count}) in 5s...\e[0m"
|
||||
sleep 5
|
||||
done
|
||||
) &
|
||||
done
|
||||
shopt -u nullglob
|
||||
fi
|
||||
@@ -214,6 +221,7 @@ if $PID1; then
|
||||
echo -e "\033[0;32mEverything started!\033[0m"
|
||||
|
||||
terminate() {
|
||||
local local_pid
|
||||
echo "Termination signal received, forwarding to subprocesses..."
|
||||
if command -v pgrep >/dev/null 2>&1; then
|
||||
while read -r pid; do
|
||||
|
||||
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
baikal/stats.png
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
bazarr/stats.png
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 1.8 KiB |
@@ -1,3 +1,5 @@
|
||||
## 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
|
||||
|
||||
## 0.5.4 (2026-02-21)
|
||||
- Update to latest version from Suncuss/BirdNET-PiPy (changelog : https://github.com/Suncuss/BirdNET-PiPy/releases)
|
||||
|
||||
@@ -93,5 +93,5 @@ schema:
|
||||
ssl: bool?
|
||||
slug: birdnet-pipy
|
||||
url: https://github.com/alexbelgium/hassio-addons/tree/master/birdnet-pipy
|
||||
version: "0.5.4"
|
||||
version: "0.5.4-2"
|
||||
webui: "[PROTO:ssl]://[HOST]:[PORT:80]"
|
||||
|
||||
@@ -14,8 +14,32 @@ if [ -n "${SND_GID}" ] && getent group audio >/dev/null 2>&1; then
|
||||
fi
|
||||
fi
|
||||
|
||||
for u in root nginx www-data; do
|
||||
for u in root nginx www-data icecast2; do
|
||||
if id "${u}" >/dev/null 2>&1; then
|
||||
usermod -aG audio "${u}" 2>/dev/null || true
|
||||
fi
|
||||
done
|
||||
|
||||
# Create /run/pulse/native symlink if the PulseAudio socket is elsewhere
|
||||
# (e.g. HAOS provides it at /run/audio/pulse.sock)
|
||||
PULSE_SOCK="${PULSE_SERVER:-}"
|
||||
PULSE_SOCK="${PULSE_SOCK#unix:}"
|
||||
if [ -n "${PULSE_SOCK}" ] && [ -S "${PULSE_SOCK}" ] && [ ! -S /run/pulse/native ]; then
|
||||
mkdir -p /run/pulse
|
||||
ln -sf "${PULSE_SOCK}" /run/pulse/native
|
||||
fi
|
||||
|
||||
# Copy PulseAudio cookie for the icecast2 user so it can authenticate
|
||||
if id icecast2 >/dev/null 2>&1; then
|
||||
ICECAST_HOME="$(getent passwd icecast2 | cut -d: -f6)"
|
||||
if [ -n "${ICECAST_HOME}" ]; then
|
||||
for cookie in /config/.config/pulse/cookie /root/.config/pulse/cookie; do
|
||||
if [ -f "${cookie}" ]; then
|
||||
mkdir -p "${ICECAST_HOME}/.config/pulse"
|
||||
cp "${cookie}" "${ICECAST_HOME}/.config/pulse/cookie"
|
||||
chown icecast2 "${ICECAST_HOME}/.config/pulse" "${ICECAST_HOME}/.config/pulse/cookie"
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/with-contenv bashio
|
||||
# shellcheck shell=bash
|
||||
set -euo pipefail
|
||||
export PULSE_SERVER=unix:/run/pulse/native
|
||||
export PULSE_SERVER="${PULSE_SERVER:-unix:/run/pulse/native}"
|
||||
gosu icecast2 /usr/local/bin/start-icecast.sh
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
# shellcheck shell=bash
|
||||
set -euo pipefail
|
||||
export PYTHONPATH=/app
|
||||
export PULSE_SERVER=unix:/run/pulse/native
|
||||
export PULSE_SERVER="${PULSE_SERVER:-unix:/run/pulse/native}"
|
||||
bashio::net.wait_for 5002 127.0.0.1 300
|
||||
cd /app
|
||||
exec python3 -m core.main
|
||||
|
||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
codex/stats.png
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
emby/stats.png
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
ente/stats.png
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 1.8 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
gitea/stats.png
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
grav/stats.png
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
immich/stats.png
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
inadyn/stats.png
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.4 KiB |
BIN
joal/stats.png
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
joplin/stats.png
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
kometa/stats.png
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
lidarr/stats.png
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 7.3 KiB |
BIN
mealie/stats.png
|
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
monica/stats.png
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
mylar3/stats.png
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.4 KiB |
BIN
nzbget/stats.png
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 1.4 KiB |
BIN
piwigo/stats.png
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
plex/stats.png
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
radarr/stats.png
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 3.1 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.3 KiB |
@@ -1,4 +1,7 @@
|
||||
|
||||
## 12.0.18-2 (2026-02-22)
|
||||
- Fix download URLs containing incorrect `/seafhttp` prefix on first run by re-applying URL configuration after upstream init scripts complete.
|
||||
|
||||
## 12.0.18 (2026-03-20)
|
||||
- Fix `env_vars` handling so extra environment variables are exported correctly.
|
||||
|
||||
|
||||
@@ -128,5 +128,5 @@ services:
|
||||
slug: seafile
|
||||
udev: true
|
||||
url: https://github.com/alexbelgium/hassio-addons/tree/master/seafile
|
||||
version: "12.0.18"
|
||||
version: "12.0.18-2"
|
||||
webui: http://[HOST]:[PORT:8000]
|
||||
|
||||
@@ -155,6 +155,27 @@ done
|
||||
bashio::log.info "SERVICE_URL set to ${SERVICE_URL_VALUE}"
|
||||
bashio::log.info "FILE_SERVER_ROOT set to ${FILE_SERVER_ROOT_VALUE}"
|
||||
|
||||
# The upstream write_config.sh hardcodes /seafhttp in FILE_SERVER_ROOT and
|
||||
# overwrites our settings on first run. Create a helper that re-applies the
|
||||
# addon's URL configuration right before Seafile services start, so it always
|
||||
# takes effect regardless of what the upstream init/setup scripts wrote.
|
||||
cat > /home/seafile/apply_addon_urls.sh << URLEOF
|
||||
#!/bin/bash
|
||||
for _CONF in "${DATA_LOCATION}/conf/seahub_settings.py" "${DATA_LOCATION}/seafile/conf/seahub_settings.py"; do
|
||||
if [ -f "\$_CONF" ]; then
|
||||
sed -i '/^SERVICE_URL *=/d' "\$_CONF"
|
||||
sed -i '/^FILE_SERVER_ROOT *=/d' "\$_CONF"
|
||||
echo 'SERVICE_URL = "${SERVICE_URL_VALUE}"' >> "\$_CONF"
|
||||
echo 'FILE_SERVER_ROOT = "${FILE_SERVER_ROOT_VALUE}"' >> "\$_CONF"
|
||||
fi
|
||||
done
|
||||
URLEOF
|
||||
chmod +x /home/seafile/apply_addon_urls.sh
|
||||
sed -i '/print "Launching seafile"/i /home/seafile/apply_addon_urls.sh' /home/seafile/launch.sh
|
||||
if ! grep -q 'apply_addon_urls.sh' /home/seafile/launch.sh 2>/dev/null; then
|
||||
bashio::log.warning "Could not inject URL configuration into launch.sh; URLs may use upstream defaults"
|
||||
fi
|
||||
|
||||
###################
|
||||
# Define database #
|
||||
###################
|
||||
|
||||
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.6 KiB |
BIN
seerr/icon.png
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 11 KiB |
BIN
seerr/logo.png
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.3 KiB |
BIN
sonarr/stats.png
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.4 KiB |