# --------------------------------------------------------------------------- # 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