Setting Up Frigate NVR with RTSP Cameras
What is Frigate?#
Frigate is an open-source NVR built around real-time object detection. It runs locally — no cloud, no subscription, no monthly fees. Point it at any RTSP camera feed and it’ll detect objects (person, car, dog, cat) in real-time, record clips on motion events, and let you review everything through a clean web UI.
Why Frigate over something like MotionEye?#
MotionEye is fine for basic motion detection, but it triggers on everything — a curtain moving, shadows shifting, rain. Frigate gives you actual object labels, which means far fewer false alerts. You get a notification that says “person detected at the front door” instead of 300 motion clips of nothing.
My setup#
- Host: Lenovo ThinkCentre running Proxmox VE → Ubuntu Server VM
- Cameras: Tapo and Imou RTSP feeds
- Runtime: Frigate in Docker via Docker Compose
- Storage: Recordings on WD Blue 4TB HDD
- Backup: Clips synced to Google Drive via rclone
- Detection: CPU-based (no Coral TPU — works fine for 2–3 camera feeds)
Docker Compose#
services:
frigate:
image: ghcr.io/blakeblackshear/frigate:stable
container_name: frigate
restart: unless-stopped
privileged: true
shm_size: "256mb"
ports:
- "5000:5000" # Web UI
- "8554:8554" # RTSP restream
- "8555:8555" # WebRTC
volumes:
- ./config:/config
- /mnt/storage/frigate:/media/frigate
- type: tmpfs
target: /tmp/cache
tmpfs:
size: 1000000000
environment:
- TZ=Asia/Kolkata
Frigate config highlights#
The config.yaml lives in the ./config directory:
mqtt:
enabled: false
cameras:
front_door:
ffmpeg:
inputs:
- path: rtsp://user:pass@192.168.1.x:554/stream1
roles:
- detect
- record
detect:
width: 1280
height: 720
fps: 5
record:
enabled: true
retain:
days: 7
mode: motion
events:
retain:
default: 14
mode: active_objects
detectors:
cpu:
type: cpu
num_threads: 4
Key decisions:
- Detection at 5 fps — saves CPU while still catching events reliably
- Recordings retained for 7 days, event clips for 14 days
- No MQTT — I’m not running Home Assistant, so Frigate runs standalone
- CPU detection with 4 threads — the ThinkCentre handles this comfortably
rclone backup to Google Drive#
A cron job syncs event clips to Google Drive daily:
#!/bin/bash
# /home/user/scripts/backup-frigate.sh
rclone sync /mnt/storage/frigate/clips gdrive:homelab/frigate-clips \
--transfers 4 \
--checkers 8 \
--log-file /var/log/rclone-frigate.log
# crontab -e
0 3 * * * /home/user/scripts/backup-frigate.sh
Runs at 3 AM daily. The --transfers 4 flag keeps the upload speed reasonable without saturating the connection.
Camera notes for the Indian market#
If you’re buying RTSP-compatible cameras in India, here’s what I’ve found:
| Brand | RTSP support | Notes |
|---|---|---|
| TP-Link Tapo | ✅ Yes | Reliable, easy RTSP setup via the app |
| Imou | ✅ Yes | Works well, good night vision |
| CP Plus | ⚠️ Varies | Some models support RTSP, check specs carefully |
| Qubo | ❌ No | Cloud-only, no RTSP — avoid for self-hosted setups |
Tip: Always check for ONVIF/RTSP support before buying. Most “smart” cameras in India are cloud-locked.
What’s next#
- Setting up Telegram notifications for person detection events
- Exploring Frigate’s built-in object tracking for counting visitors
Frigate is running as a service on the homelab → view service details