Merge pull request #2680 from Suncuss/fix/birdnet-pipy-nginx-wait-for-upstream

birdnet-pipy: wait for upstream API in nginx run instead of sleep
This commit is contained in:
Alexandre
2026-05-03 09:49:02 +02:00
committed by GitHub
3 changed files with 12 additions and 10 deletions

View File

@@ -1,3 +1,5 @@
## 0.6.6-4 (2026-05-02)
- Fix nginx startup: wait for the upstream API on `127.0.0.1:5002` before starting nginx, instead of the prior `sleep 5` workaround. Under s6-overlay all `services.d/*` services start concurrently, so nginx could begin accepting requests before `core.api` had bound its port — `/api/`, `/socket.io/`, and `/internal/auth` would then return 502, and that 502 could be cached by an upstream service worker / edge cache (e.g. behind Cloudflare-fronted HA), leaving the UI stuck blank. Uses `bashio::net.wait_for` to match the pattern in sister addons (`bazarr`, `jellyfin`, `radarr`).
## 0.6.6-3 (23-04-2026)
- Minor bugs fixed
## 0.6.6-2 (23-04-2026)

View File

@@ -96,4 +96,4 @@ schema:
ssl: bool?
slug: birdnet-pipy
url: https://github.com/alexbelgium/hassio-addons/tree/master/birdnet-pipy
version: "0.6.6-3"
version: "0.6.6-4"

View File

@@ -2,13 +2,13 @@
# shellcheck shell=bash
set -euo pipefail
# Wait for ingress configuration to be generated
while [ ! -f /etc/nginx/servers/ingress.conf ]; do
bashio::log.info "Waiting for /etc/nginx/servers/ingress.conf..."
sleep 1
done
# Wait for the upstream API service (Python core.api) to bind 127.0.0.1:5002
# before starting nginx, so nginx never serves a 502 for the API/auth/socket
# paths during boot. A boot-time 502 can be cached by an upstream cache layer
# (HA's own PWA service worker, a Cloudflare edge worker, etc.), leaving the
# UI in a stuck blank state until the cache is purged.
bashio::log.info "Waiting for upstream API on 127.0.0.1:5002..."
bashio::net.wait_for 5002 127.0.0.1 900
# Wait to be sure the script fully executed
sleep 5
nginx
bashio::log.info "Starting NGinx..."
exec nginx