From e0f9c91e436620e93aa3f2c4a9c5ed39b7e8afd5 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 26 Feb 2026 10:51:29 +0000 Subject: [PATCH 2/3] 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> --- birdnet-pipy/config.yaml | 3 +++ .../etc/nginx/includes/ingress_params.conf | 18 ++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/birdnet-pipy/config.yaml b/birdnet-pipy/config.yaml index 2460f4a97..c02097e9f 100644 --- a/birdnet-pipy/config.yaml +++ b/birdnet-pipy/config.yaml @@ -60,6 +60,9 @@ environment: PGID: "0" PUID: "0" image: ghcr.io/alexbelgium/birdnet-pipy-{arch} +ingress: true +ingress_port: 0 +ingress_stream: true init: false map: - addon_config:rw diff --git a/birdnet-pipy/rootfs/etc/nginx/includes/ingress_params.conf b/birdnet-pipy/rootfs/etc/nginx/includes/ingress_params.conf index 9338d5e3f..89e051c3f 100644 --- a/birdnet-pipy/rootfs/etc/nginx/includes/ingress_params.conf +++ b/birdnet-pipy/rootfs/etc/nginx/includes/ingress_params.conf @@ -2,8 +2,22 @@ absolute_redirect off; rewrite ^%%ingress_entry%%/(.*)$ /$1 break; sub_filter_once off; sub_filter_types *; + +# Inject for Vue Router history mode and static asset loading sub_filter '' ''; + +# Rewrite absolute href/src attributes in HTML sub_filter 'href="/' 'href="%%ingress_entry%%/'; sub_filter 'src="/' 'src="%%ingress_entry%%/'; -sub_filter '"/birdnet/' '"%%ingress_entry%%/birdnet/'; -sub_filter 'url(/birdnet/' 'url(%%ingress_entry%%/birdnet/'; + +# Rewrite API paths in JS bundles (axios baseURL and fetch calls) +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'"; From 5ece7c238b65c170d8302e9dcd672dd4b24c0154 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Thu, 26 Feb 2026 10:52:48 +0000 Subject: [PATCH 3/3] fix: broaden socket.io sub_filter pattern to match trailing slash variant Co-authored-by: alexbelgium <44178713+alexbelgium@users.noreply.github.com> --- birdnet-pipy/rootfs/etc/nginx/includes/ingress_params.conf | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/birdnet-pipy/rootfs/etc/nginx/includes/ingress_params.conf b/birdnet-pipy/rootfs/etc/nginx/includes/ingress_params.conf index 89e051c3f..3c4e1ff60 100644 --- a/birdnet-pipy/rootfs/etc/nginx/includes/ingress_params.conf +++ b/birdnet-pipy/rootfs/etc/nginx/includes/ingress_params.conf @@ -11,6 +11,7 @@ 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"; @@ -19,5 +20,5 @@ 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 '"/socket.io' '"%%ingress_entry%%/socket.io'; +sub_filter "'/socket.io" "'%%ingress_entry%%/socket.io";