Frigate NVR
AI-accelerated network video recorder. Performs real-time object detection using a Coral USB TPU and feeds detection events to Home Assistant via MQTT.
Where it runs
- Host: Nexus (
192.168.1.226) - UI: http://192.168.1.226:5000
- Managed by: Manual (NOT Komodo — see below)
- Compose file:
frigate/docker-compose.ymlin homelab-docker repo
Not managed by Komodo auto-deploy
Frigate has special hardware requirements (Coral USB TPU device passthrough, USB bus access) that make it incompatible with the standard 5-stack Komodo procedure. It is managed separately — updates are applied manually.
Architecture
| Layer | Location | Retention |
|---|---|---|
| Active recordings | /mnt/server/containers/frigate/media/ (Nexus local HDD) |
21-day rolling window, event-only clips |
| Gold archive | /mnt/nas/frigate-gold/ (Hyperion NFS mount) |
180-day retention, alert-severity clips only |
- Detector: Coral USB TPU (
/dev/bus/usb) via edgetpu runtime - Cameras:
- Reolink RLC-410-5MP frontyard —
192.168.1.239(active) - Wyze indoor — disabled (see issue #87)
- Reolink RLC-410-5MP frontyard —
Mosquitto / MQTT Integration
Frigate publishes detection events to the Mosquitto MQTT broker running on Nexus. Home Assistant subscribes to those topics via the Frigate integration, enabling automations triggered by object-detection alerts (person, vehicle, etc.).
Port Reference
| Port | Protocol | Purpose |
|---|---|---|
| 5000 | HTTP | Frigate API + UI (used by HA integration) |
| 8971 | HTTPS | Main UI (newer Frigate versions) |
| 8554 | TCP | RTSP re-streams |
| 8555 | TCP/UDP | WebRTC |
Secrets
- Real
.envlives at/home/matt/repos/homelab-docker/frigate/.envon Nexus (gitignored) - Encrypted version committed as
frigate/.env.enc(SOPS/age) .env.exampleshows the required variables:
| Variable | Camera | Notes |
|---|---|---|
FRIGATE_REOLINK_RTSP_PASSWORD |
Reolink frontyard | Admin password from Reolink app/web UI |
FRIGATE_WYZE_RTSP_USER |
Wyze indoor | Set when enabling RTSP in Wyze app |
FRIGATE_WYZE_RTSP_PASSWORD |
Wyze indoor | Set when enabling RTSP in Wyze app |
Variable naming rule: All camera credential variables must be prefixed with
FRIGATE_. Frigate only substitutes env vars starting with that prefix, using
Python str.format() syntax in config: {FRIGATE_VAR_NAME} (not ${VAR_NAME}).
Bootstrap on a new machine
-
Decrypt secrets:
cd /home/matt/repos/homelab-docker sops --decrypt frigate/.env.enc > /home/matt/repos/homelab-docker/frigate/.env chmod 600 /home/matt/repos/homelab-docker/frigate/.env -
Copy config template and fill in camera IPs:
cp frigate/config.yml.example /mnt/server/containers/frigate/config/config.yml nano /mnt/server/containers/frigate/config/config.yml -
Create required directories:
sudo mkdir -p /mnt/server/containers/frigate/{config,media/recordings,media/snapshots} sudo chmod -R 755 /mnt/server/containers/frigate/ sudo mkdir -p /mnt/nas/frigate-gold && sudo chmod 777 /mnt/nas/frigate-gold -
Start:
cd /home/matt/repos/homelab-docker/frigate && docker compose up -d -
Draw camera zones in the Frigate UI at http://192.168.1.226:5000 after first boot.
Re-encrypting secrets after changes
After editing /home/matt/repos/homelab-docker/frigate/.env on Nexus:
cd /home/matt/repos/homelab-docker
sops --encrypt frigate/.env > frigate/.env.enc
git add frigate/.env.enc && git commit -m "chore: update encrypted frigate secrets"
Renovate note
ghcr.io/blakeblackshear/frigate is pinned to the stable rolling tag — not a
semver tag, not latest. Renovate will not open auto-update PRs for this image.
Check the Frigate releases page
periodically and update manually when a new stable version ships:
ssh matt@192.168.1.226 "cd /home/matt/repos/homelab-docker/frigate && docker compose pull && docker compose up -d"
Troubleshooting
# Container logs
ssh matt@192.168.1.226 "docker logs frigate --tail 50"
# Check Coral TPU is detected
ssh matt@192.168.1.226 "docker exec frigate cat /proc/bus/usb/devices | grep -A5 'Coral'"
# Verify NFS gold mount is live
ssh matt@192.168.1.226 "mountpoint /mnt/nas/frigate-gold && df -h /mnt/nas/frigate-gold"
# Tail detection events on MQTT (requires mosquitto-clients)
ssh matt@192.168.1.226 "mosquitto_sub -h localhost -t 'frigate/#' -v"
Automation
Infrastructure
Services
- Dashy
- Bookstack
- Tandoor
- Home Assistant
- Pinchflat
- FreshRSS
- Frigate
- Wyze-Bridge
- Mosquitto
- Dispatcharr
- Proxmox LXC Services
Operations
- How to Update Apps
- Backup & Restore Strategy
- Maintenance Schedule
- Useful Commands
- Restore Proxmox Containers
- NAS NFS Share for LXC
- SSH Public Key onto Nexus