Files
frigate_w_audio/docker-compose.yml
T
2026-04-25 11:06:10 -04:00

72 lines
2.2 KiB
YAML

# ---------------------------------------------------------------------------
# Home camera stack
# - Frigate 0.17 (NVR + face recognition + LPR + audio detection)
# - Mosquitto (MQTT broker)
# - frigate-notify (event consumer -> ntfy push notifications)
#
# First-run setup: see README.md.
# ---------------------------------------------------------------------------
services:
frigate:
container_name: frigate
image: ghcr.io/blakeblackshear/frigate:0.17.1
restart: unless-stopped
stop_grace_period: 30s
privileged: true # needed for USB Coral
shm_size: "512mb"
env_file: .env
depends_on:
- mosquitto
devices:
- /dev/bus/usb:/dev/bus/usb # USB Coral
# - /dev/apex_0:/dev/apex_0 # PCIe Coral
# - /dev/dri/renderD128 # Intel/AMD hwaccel
volumes:
- /etc/localtime:/etc/localtime:ro
- ./frigate_config:/config
- /home/user/drives/sc-games/frigate:/media/frigate
- type: tmpfs
target: /tmp/cache
tmpfs:
size: 1000000000
ports:
- "8971:8971" # authenticated UI (proxied by Caddy)
- "5001:5000" # unauthenticated UI (LAN debug only)
- "8554:8554" # RTSP restream
- "8555:8555/tcp" # WebRTC TCP
- "8555:8555/udp" # WebRTC UDP
healthcheck:
test: ["CMD", "curl", "-f", "http://127.0.0.1:5000/api/version"]
interval: 10s
timeout: 5s
retries: 12
start_period: 60s
mosquitto:
container_name: mosquitto
hostname: mosquitto
image: eclipse-mosquitto:2
restart: unless-stopped
ports:
- "1883:1883" # MQTT (LAN ONLY -- never expose to internet)
volumes:
- ./mosquitto/config:/mosquitto/config
- ./mosquitto/data:/mosquitto/data
- ./mosquitto/log:/mosquitto/log
frigate-notify:
container_name: frigate-notify
hostname: frigate-notify
image: ghcr.io/0x2142/frigate-notify:latest
restart: unless-stopped
env_file: .env
depends_on:
mosquitto:
condition: service_started
frigate:
condition: service_healthy
volumes:
- ./frigate-notify/config.yml:/app/config.yml:ro