Commit Graph

41 Commits

Author SHA1 Message Date
Yudong Sun
33000347b4 birdnet-pipy: remove TZ option — timezone auto-derived from station location
The app derives its timezone from station lat/lng via timezonefinder
(Settings → Location in the Web UI), so a separate addon-level TZ only
ever created mismatch with the UI-derived zone. All app-facing timestamps
(dashboard, API, DB) and Python service stdout (api/main/birdnet) already
honor the UI zone via logging_config.py's formatter, and the frontend log
viewer re-converts Icecast timestamps on read.

Net effect in the HA addon log pane: Python services still show the
correct local time; only Icecast's raw stdout now prints in UTC (accepted
trade for a single source of truth). Deletes
rootfs/etc/cont-init.d/02-timezone.sh added in 0.5.6-2.

Also cleans up the options YAML in DOCS.md/README.md: drops
RECORDING_MODE and RTSP_URL (never wired — app reads them from
user_settings.json), drops http_stream from the modes list, and moves
STREAM_BITRATE under an env_vars: example since it's honored by
start-icecast.sh but not a schema option.

Bumped to 0.6.3-2 (addon-only, no upstream app change).
2026-04-15 08:54:17 -04:00
Yudong Sun
056f372f18 fix(birdnet-pipy): simplify ingress to single <base href> rewrite
Upstream 0.6.3 consolidates deployment-path handling into a single
<base href> declaration in index.html with Vite base: './' and
relative paths for all internal URLs. The previous seven sub_filter
rules (href/src/'/api'/'/socket.io') are no longer needed — one
<base href> replacement is sufficient.

Also removes the incidental brittleness from byte-level sub_filter
matches in minified JS bundles (the '/stream/' rule inadvertently
double-prefixed the literal 'api.get("/stream/config")' string).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 22:32:51 -04:00
Yudong Sun
312906997a fix(birdnet-pipy): fix icecast crash and Live Feed broken in ingress
Two fixes for the birdnet-pipy addon:

1. Icecast log permission error: 01-structure.sh creates /app/data/logs
   as root, but start-icecast.sh runs via gosu icecast2. The first log
   write fails with "Permission denied", crashing icecast in a restart
   loop (502 Bad Gateway on the Live Feed page). Fix: chown the log dir
   and file to icecast2 before dropping privileges.

2. Live Feed double-prefixed request in ingress mode: the "/stream/"
   sub_filter rule also matches 'api.get("/stream/config")' in the JS
   bundle, producing a request like
   /hassio_ingress/TOKEN/api/hassio_ingress/TOKEN/stream/config (404).
   The upstream frontend (BirdNET-PiPy >= 0.6.2) now strips the leading
   slash from stream URLs so they resolve via <base href> — the
   sub_filter rule is no longer needed.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-10 22:46:51 -04:00
Alexandre
3ce74a2e0f Update 02-timezone.sh 2026-03-11 14:34:22 +01:00
github-actions
b740741dbf GitHub bot: sanitize (spaces + LF endings) & chmod 2026-03-11 11:01:22 +00:00
copilot-swe-agent[bot]
742e2ce52e Add container timezone management for birdnet-pipy addon
- New init script 02-timezone.sh: reads TZ from addon config, validates
  against /usr/share/zoneinfo, applies to container (/etc/localtime,
  /etc/timezone, s6 container env)
- Change default TZ from Etc/UTC to Europe/Paris
- Increment version to 0.5.6-2
- Update CHANGELOG.md and DOCS.md

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-03-11 07:12:45 +00:00
copilot-swe-agent[bot]
5ece7c238b fix: broaden socket.io sub_filter pattern to match trailing slash variant
Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-02-26 10:52:48 +00:00
copilot-swe-agent[bot]
e0f9c91e43 feat: enable ingress support for birdnet-pipy addon
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>
2026-02-26 10:51:29 +00:00
copilot-swe-agent[bot]
db417e78d6 Fix Icecast service hardcoding /run/pulse/native and ignoring PULSE_SERVER
- Use ${PULSE_SERVER:-unix:/run/pulse/native} in icecast/run and main/run
  to respect the PULSE_SERVER env var set by HA supervisor
- Create /run/pulse/native symlink when PulseAudio socket is elsewhere
- Copy PulseAudio cookie for icecast2 user authentication
- Add icecast2 to audio group

Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com>
2026-02-22 23:31:55 +00:00
Alexandre
ec5c7ea069 Update 10-config.sh 2026-02-15 22:28:07 +01:00
Alexandre
f24a815f4f Simplify nginx run script by removing checks
Removed conditional check for nginx disabled state.
2026-02-15 18:22:55 +01:00
Alexandre
33dcc7ff09 Refactor nginx ingress script for clarity
Remove redundant sed commands and clean up nginx configuration handling.
2026-02-15 18:22:24 +01:00
Alexandre
27a64fd80b birdnet-pipy: disable nginx service when ingress is unavailable 2026-02-15 08:33:14 +01:00
Alexandre
bdd8221021 birdnet-pipy: use 0.5.0-2 version suffix 2026-02-14 10:40:21 +01:00
Alexandre
fe8da75816 update 2026-01-31 20:57:59 +01:00
Alexandre
ca9240cf01 Merge branch 'master' into codex/build-front-end-with-/birdnet/-base-path 2026-01-31 12:49:00 +01:00
Alexandre
0db919e772 Change sub_filter_types to allow all types 2026-01-31 12:06:33 +01:00
Alexandre
f2d1fc777d Adjust BirdNET PiPy frontend base path 2026-01-31 12:04:53 +01:00
Alexandre
6e4898e597 Change execution user for icecast startup script 2026-01-31 11:26:18 +01:00
Alexandre
6374cb6f54 Update 32-nginx_ingress.sh 2026-01-30 09:05:46 +01:00
Alexandre
760ea3cf26 Update ingress_params.conf 2026-01-30 09:05:11 +01:00
Alexandre
53aeada3fd Update ingress_params.conf 2026-01-30 09:05:04 +01:00
Alexandre
6238f314f4 Update ingress_params.conf 2026-01-30 09:04:57 +01:00
Alexandre
9b9502552e Add absolute_redirect off to nginx config 2026-01-30 09:04:51 +01:00
Alexandre
ed6e54a66a Add rewrite rule for ingress entry in NGINX config 2026-01-30 09:04:26 +01:00
Alexandre
87a163998b Update nginx ingress configuration script 2026-01-30 09:03:34 +01:00
Alexandre
e75cf4beea update 2026-01-29 17:40:59 +01:00
Alexandre
8e86e0b8e7 Update BirdNET-PiPy nginx configs 2026-01-29 17:38:17 +01:00
Alexandre
80b0e840bb Update ingress_params.conf 2026-01-29 17:26:47 +01:00
Alexandre
29d5d796a2 Create ingress_params.conf 2026-01-29 17:25:45 +01:00
Alexandre
5e1622584e Update server_params.conf 2026-01-29 17:25:15 +01:00
Alexandre
18766146a0 Update nginx.conf 2026-01-29 17:22:02 +01:00
Alexandre
8372be9c20 Update run 2026-01-29 17:14:07 +01:00
Alexandre
5c10f19d18 Fix BirdNET-PiPy nginx routing 2026-01-29 16:07:08 +01:00
Alexandre
e7e64c84d7 update 2026-01-29 15:34:09 +01:00
Alexandre
8a4c7d5d2a Update server_params.conf 2026-01-29 15:28:49 +01:00
github-actions
fd8e5e0e15 GitHub bot: sanitize (spaces + LF endings) & chmod 2026-01-28 19:04:33 +00:00
Alexandre
f9cfbe402b Fix data migration ordering 2026-01-28 19:59:55 +01:00
Alexandre
dca06b9a9d Add configurable data location 2026-01-28 19:41:00 +01:00
github-actions
9c9c01723d GitHub bot: sanitize (spaces + LF endings) & chmod 2026-01-28 14:07:32 +00:00
Alexandre
24461af201 Add BirdNET-PiPy add-on 2026-01-28 15:06:11 +01:00