Merge pull request #2640 from Suncuss/fix/birdnet-pipy-icecast-and-ingress

fix(birdnet-pipy): fix icecast crash and Live Feed broken in ingress mode
This commit is contained in:
Alexandre
2026-04-11 07:47:18 +02:00
committed by GitHub
3 changed files with 18 additions and 3 deletions

View File

@@ -1,6 +1,8 @@
## 0.6.2 (2026-04-11)
- Update to latest version from Suncuss/BirdNET-PiPy (changelog : https://github.com/Suncuss/BirdNET-PiPy/releases)
- Fix Icecast crashing on startup due to log directory permissions (502 Bad Gateway on Live Feed)
- Fix Live Feed broken in ingress mode — stream config request was double-prefixed by sub_filter
## 0.6.1 (2026-04-06)
- Update to latest version from Suncuss/BirdNET-PiPy (changelog : https://github.com/Suncuss/BirdNET-PiPy/releases)

View File

@@ -15,9 +15,11 @@ sub_filter 'src="/' 'src="%%ingress_entry%%/';
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/";
# Do NOT rewrite "/stream/" — LiveFeed.vue strips the leading slash from
# stream URLs returned by /api/stream/config so they resolve relative to
# <base href="%%ingress_entry%%/"> (injected above). Adding a sub_filter
# for '/stream/' would also rewrite the literal 'api.get("/stream/config")'
# inside the JS bundle, producing a double-prefixed request.
# Rewrite Socket.IO default path in the client library
sub_filter '"/socket.io' '"%%ingress_entry%%/socket.io';

View File

@@ -2,4 +2,15 @@
# shellcheck shell=bash
set -euo pipefail
export PULSE_SERVER="${PULSE_SERVER:-unix:/run/pulse/native}"
# Ensure the log directory and file are writable by the icecast2 user.
# /app/data/logs is created as root by 01-structure.sh, but start-icecast.sh
# runs via gosu icecast2 and would otherwise fail with "Permission denied"
# on the first log write, taking icecast down before it can boot.
mkdir -p /app/data/logs
touch /app/data/logs/icecast.log
# Use `icecast2:` (trailing colon) so chown picks the user's primary group,
# which is `icecast` on Debian, not `icecast2`.
chown icecast2: /app/data/logs /app/data/logs/icecast.log
gosu icecast2 /usr/local/bin/start-icecast.sh