Files
frigate_w_audio/pi/install.sh
T
2026-04-25 11:06:10 -04:00

54 lines
1.6 KiB
Bash

#!/usr/bin/env bash
# Pi Zero W setup for the doorbell PTT server.
# Run as the 'pi' user after flashing Raspberry Pi OS Lite (Bookworm).
#
# Usage:
# chmod +x install.sh
# ./install.sh
set -euo pipefail
echo ">>> Installing OS packages..."
sudo apt update
sudo apt install -y ffmpeg alsa-utils python3-venv python3-pip
echo ">>> Creating project dirs..."
mkdir -p "$HOME/doorbell"
echo ">>> Creating Python virtualenv..."
python3 -m venv "$HOME/doorbell-venv"
# shellcheck disable=SC1091
source "$HOME/doorbell-venv/bin/activate"
pip install --upgrade pip
pip install flask flask-sock
echo ">>> Copying server.py..."
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cp "$SCRIPT_DIR/server.py" "$HOME/doorbell/server.py"
echo ">>> Installing systemd service..."
sudo cp "$SCRIPT_DIR/doorbell.service" /etc/systemd/system/doorbell.service
sudo systemctl daemon-reload
sudo systemctl enable doorbell
echo ">>> Testing audio output..."
echo "You should hear 'front left' in a moment. Ctrl-C if nothing plays."
speaker-test -D default -c 2 -t wav -l 1 || {
echo "!! speaker-test failed. Fix ALSA output before starting the service."
echo " Try: sudo raspi-config -> System Options -> Audio"
echo " Or: aplay -l and edit /etc/asound.conf"
exit 1
}
echo ">>> Starting doorbell service..."
sudo systemctl restart doorbell
sleep 2
sudo systemctl status doorbell --no-pager
echo
echo "=========================================="
echo "Done. Quick checks:"
echo " curl http://127.0.0.1:5555/healthz"
echo " sudo journalctl -u doorbell -f"
echo "=========================================="