Skip to main content

Frigate NVR - Reolink 2x + Synology NAS

Stand: 2026-08-01 · Frigate stable · getestet gegen docs.frigate.video

Architektur-Entscheidung

  • Proxmox LXC (unprivileged, schon ready) als Host für Frigate (Docker-in-LXC).
  • iGPU (Intel) via /dev/dri reinbinden → VA-API HW-Decode. Bei 2 Cams reicht CPU-Detection, Coral ist optional.
  • Hinweis Xeon Silver 4110 (dieser Host): KEIN iGPU → kein /dev/dri, VA-API entfällt. Stattdessen ffmpeg.hwaccel_args: auto (CPU-Decode) + OpenVINO-CPU-Detector (type: openvino, device: CPU, nutzt AVX-512). Der iGPU-Passthrough-Block unten gilt NICHT für diesen Host.
  • Recordings → Synology NAS per NFS, gemountet auf dem Proxmox-Host und als mp0 in den LXC rein gebunden.
  • Datenbank bleibt lokal (/config/frigate.db auf LXC-SSD) — DB auf NFS = "database is locked"-Fehler.

Ablauf

  1. Synology: NFS-Share anlegen
  2. Proxmox-Host: NFS mounten + LXC mountpoint + iGPU durchreichen
  3. LXC: Docker + Compose installieren
  4. Config + Compose ablegen, starten
  5. Reolink-Cam-Einstellungen anpassen
  6. Web-UI prüfen

1. Synology NAS (NFS-Share)

DSM → Systemsteuerung → Dateidienste → SMB/AFP/NFS → Tab NFS → NFS-Service aktivieren.

Freigegebenen Ordner anlegen (z.B. surveillance), dann Bearbeiten → NFS-Berechtigungen → Einfügen:

  • Hostname/IP: <Proxmox-Host-IP> (z.B. 10.0.0.10)
  • Privileg: Lesen/Schreiben
  • Squash: "Alle Benutzer auf Admin mapen" (vermeidet UID/GID-Probleme mit unpriv. LXC)
  • Sicherheit: sys
  • Nicht root zuschreiben: ☐ (wenn Squash=map to admin)

Mount-Pfad auf dem NAS merken: /volume1/frigate

Warum NFS statt SMB? NFS ist bei Frigate-Recordings schneller/stabiler und braucht kein mount.cifs-Gedöns im Container. Quelle: Frigate-Diskussion #7351.


2. Proxmox-Host

## NFS-Client
apt update && apt install -y nfs-common

## Mountpoint anlegen
mkdir -p /mnt/surveillance

## fstab (anpassen: NAS-IP + Pfad)
echo '10.0.0.31:/volume1/surveillance /mnt/surveillance nfs defaults,soft,timeo=30,retrans=3,noatime 0 0' >> /etc/fstab
mount -a
df -h /mnt/surveillance   # muss das NAS zeigen

LXC durchreichen (im Proxmox-UI oder /etc/pve/lxc/<CTID>.conf):

## NFS-Share als Mountpoint reinbinden
mp0: /mnt/frigate,mp=/media

## iGPU (Intel) durchreichen
lxc.cgroup2.devices.allow: c 226:0 rwm
lxc.cgroup2.devices.allow: c 226:128 rwm
lxc.mount.entry: /dev/dri dev/dri none bind,optional,create=dir

Im Proxmox-UI: CT → Ressourcen → Gerät durchreichen → /dev/dri (einfacher als die conf-Edits). CT neu starten. Im LXC: ls /dev/dri muss card0/renderD128 zeigen, ls /media das NAS.


3. LXC: Docker + Compose

apt update && apt install -y curl
curl -fsSL https://get.docker.com | sh
systemctl enable --now docker

4. Deploy-Files

config.yml und docker-compose.yml nach /opt/frigate/ legen (siehe beigelegte Files in frigate/). User/Pass/IP in config.yml ersetzen. Dann:

cd /opt/frigate
docker compose up -d
docker compose logs -f   # Config-Fehler werden hier angezeigt (exit bei invalid)

Config vorab validieren:

docker run --rm -v $(pwd)/config.yml:/config/config.yml --entrypoint python3 \
  ghcr.io/blakeblackshear/frigate:stable -u -m frigate --validate-config

  • Encode: H.264 (nicht H.265) — sonst Recording/Safari-Probleme
  • Bitrate-Modus: CBR ("Fluency first")
  • I-Frame-Intervall: = Framerate (Interframe Space 1x)
  • Sub-Stream aktivieren (für detect), Auflösung z.B. 640×480
  • HTTP-Stream aktivieren (Erweiterte Netzwerkeinstellungen) — Frigate nutzt den http-flv-Stream

6. Prüfen

  • Web-UI: http://<LXC-IP>:8971
  • Live-View beider Cams, Detection-Boxen sichtbar?
  • Recordings landen unter /media/frigate/<cam>/ (auf dem NAS)
  • docker compose top / df -h /media im LXC

Hinweise / Pitfalls

  • DB nicht auf NFS: bleibt unter /config (lokal). Sonst "database is locked".
  • unpriv. LXC darf NFS nicht selbst mounten → Host mountet, mp0 reicht den Pfad durch.
  • http-flv > RTSP bei Reolink (zuverlässiger laut Doku). Config nutzt daher go2rtc mit ffmpeg:http://.../flv?....
  • Coral optional: bei 2 Cams reicht CPU; Coral/OpenVINO als Kommentar in der Config vorbereitet.
  • shm_size mind. 256mb bei 2 Cams (FFmpeg braucht Shared Memory).
  • Detektions-Auflösung (detect.width/height) an den echten Sub-Stream anpassen (Reolink sub oft 640×480, nicht 360).

Quelle: Obsidian Knowledge Base/Troubleshooting/Frigate NVR - Reolink 2x + Synology NAS/README.md · Stand: 2026-09-20 · Automatisiert publiziert durch Hermes.