frigate_nvr/README.md

3.5 KiB

Frigate NVR on Arch Linux with SMB Storage

Overview

Self-hosted Frigate NVR running on Arch Linux using Docker and SMB-backed storage for recordings.

Current deployment includes:

  • Arch Linux
  • Docker / Docker Compose
  • Frigate 0.17+
  • Amcrest IP cameras
  • SMB network storage
  • go2rtc stream restreaming
  • ONVIF camera discovery

Features

  • Continuous camera recording
  • Motion detection
  • Snapshot capture
  • Multi-camera support
  • SMB/NAS storage
  • ONVIF camera integration
  • RTSP restreaming through go2rtc
  • Home Assistant integration ready

Hardware

Cameras

Name IP Address
Front 10.28.24.141
PTZ 1 10.28.24.142

Network Ports

Port Service
8971 Frigate Web UI
8554 RTSP Restream
8555 WebRTC
1984 go2rtc API

Storage

Recordings are stored on an SMB-mounted network share.

Example mount:

//NAS-IP/recordings /mnt/frigate-recordings cifs credentials=/etc/samba/frigate-smb.cred,uid=1000,gid=1000,_netdev,x-systemd.automount 0 0

Verify mount:

mount | grep frigate

Frigate Configuration

Configuration file:

/opt/frigate/config/config.yml

Camera Streams

Front Camera

Main Stream:

rtsp://admin:PASSWORD@10.28.24.141:554/cam/realmonitor?channel=1&subtype=0

Sub Stream:

rtsp://admin:PASSWORD@10.28.24.141:554/cam/realmonitor?channel=1&subtype=1

PTZ Camera

Main Stream:

rtsp://admin:PASSWORD@10.28.24.142:554/cam/realmonitor?channel=1&subtype=0

Sub Stream:

rtsp://admin:PASSWORD@10.28.24.142:554/cam/realmonitor?channel=1&subtype=1

Example Configuration

mqtt:
  enabled: false

version: 0.17-0

record:
  enabled: true

snapshots:
  enabled: true

go2rtc:
  streams:
    front:
      - rtsp://admin:PASSWORD@10.28.24.141:554/cam/realmonitor?channel=1&subtype=0
    front_sub:
      - rtsp://admin:PASSWORD@10.28.24.141:554/cam/realmonitor?channel=1&subtype=1

    ptz_1:
      - rtsp://admin:PASSWORD@10.28.24.142:554/cam/realmonitor?channel=1&subtype=0
    ptz_1_sub:
      - rtsp://admin:PASSWORD@10.28.24.142:554/cam/realmonitor?channel=1&subtype=1

cameras:
  front:
    enabled: true
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/front_sub
          roles:
            - detect
        - path: rtsp://127.0.0.1:8554/front
          roles:
            - record
            - audio
    detect:
      width: 640
      height: 480
      fps: 5

  ptz_1:
    enabled: true
    ffmpeg:
      inputs:
        - path: rtsp://127.0.0.1:8554/ptz_1_sub
          roles:
            - detect
        - path: rtsp://127.0.0.1:8554/ptz_1
          roles:
            - record
            - audio
    detect:
      width: 640
      height: 480
      fps: 5

Docker Management

Restart:

cd /opt/frigate
sudo docker compose restart

View Logs:

sudo docker logs -f frigate

Container Status:

sudo docker ps

Troubleshooting

Verify RTSP Stream

ffprobe "rtsp://admin:PASSWORD@CAMERA_IP:554/cam/realmonitor?channel=1&subtype=0"

Verify SMB Mount

df -h
mount | grep cifs

Verify Frigate Configuration

sudo docker logs frigate --tail 100

Future Improvements

  • NVIDIA hardware decoding
  • Home Assistant integration
  • Object detection acceleration
  • Cloudflare Tunnel remote access
  • Mobile notifications
  • Recording retention policies
  • Automatic backups
  • GPU-based inference