Merge pull request #2842 from alexbelgium/agent/fix-birdnet-pi-standalone-startup

Fix BirdNET-Pi standalone startup without D-Bus
This commit is contained in:
Alexandre
2026-07-10 14:11:03 +02:00
committed by GitHub
4 changed files with 23 additions and 19 deletions

View File

@@ -4,12 +4,12 @@
# Correct /config permissions after startup
chown pi:pi /config
# Waiting for dbus
until [[ -e /var/run/dbus/system_bus_socket ]]; do
sleep 1s
done
# Set timezone without requiring Home Assistant Supervisor or D-Bus.
TZ_VALUE="${TZ:-}"
if [[ -S /var/run/dbus/system_bus_socket ]] && command -v timedatectl > /dev/null 2>&1; then
TZ_VALUE="$(timedatectl show -p Timezone --value 2> /dev/null || true)"
fi
export TZ="${TZ_VALUE:-Etc/UTC}"
TZ_VALUE="$(timedatectl show -p Timezone --value)"
export TZ="$TZ_VALUE"
echo "Starting service: php pfm"
exec /usr/sbin/php-fpm* -F

View File

@@ -1,4 +1,4 @@
#!/usr/bin/with-contenv bashio
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# Waiting for dbus
until [[ -e /var/run/dbus/system_bus_socket ]]; do

View File

@@ -1,25 +1,29 @@
#!/usr/bin/with-contenv bashio
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
# Dependencies
sockfile="empty"
until [[ -e /var/run/dbus/system_bus_socket ]] && [[ -e "$sockfile" ]]; do
# Wait for PHP-FPM only. D-Bus is optional in standalone Docker mode and must
# not prevent the web service from starting.
sockfile=""
until [[ -n "$sockfile" ]] && [[ -e "$sockfile" ]]; do
sleep 1s
sockfile="$(find /run/php -name "*.sock")"
sockfile="$(find /run/php -name "*.sock" -print -quit 2> /dev/null || true)"
done
# Correct fpm.sock
chown caddy:caddy /run/php/php*-fpm.sock
chown caddy:caddy "$sockfile"
sed -i "s|/run/php/php-fpm.sock|$sockfile|g" /helpers/caddy_ingress.sh
sed -i "s|/run/php/php-fpm.sock|$sockfile|g" /etc/caddy/Caddyfile
sed -i "s|/run/php/php-fpm.sock|$sockfile|g" "$HOME"/BirdNET-Pi/scripts/update_caddyfile.sh
# Set timezone
TZ_VALUE="$(timedatectl show -p Timezone --value)"
export TZ="$TZ_VALUE"
# Set timezone without requiring D-Bus.
TZ_VALUE="${TZ:-}"
if [[ -S /var/run/dbus/system_bus_socket ]] && command -v timedatectl > /dev/null 2>&1; then
TZ_VALUE="$(timedatectl show -p Timezone --value 2> /dev/null || true)"
fi
export TZ="${TZ_VALUE:-Etc/UTC}"
# Update caddyfile with password
/."$HOME"/BirdNET-Pi/scripts/update_caddyfile.sh &> /dev/null || true
"$HOME"/BirdNET-Pi/scripts/update_caddyfile.sh &> /dev/null || true
echo "Starting service: caddy"
/usr/bin/caddy run --config /etc/caddy/Caddyfile
exec /usr/bin/caddy run --config /etc/caddy/Caddyfile

View File

@@ -1,4 +1,4 @@
#!/usr/bin/with-contenv bashio
#!/usr/bin/with-contenv bash
# shellcheck shell=bash
set -e