Skip to main content

Frigate NVR mit zwei Reolink-Kameras und Synology NAS

Stand: 2026-08-01 ·

Frigate stableNVR ·mit getestetzwei gegenReolink-Kameras 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 →und Synology NAS per

    Geltungsbereich

    Dieses Runbook beschreibt ein kleines Frigate-System mit zwei Reolink-Kameras, lokalem Frigate-Config-/Datenbank-Speicher und Aufzeichnungen auf einem Synology-NAS.

    Getestetes Feldprofil: Frigate in Docker innerhalb eines unprivilegierten Proxmox-LXC, NFS, gemountet auf dem Proxmox-Host gemountet und als mp0 in den LXC reindurchgereicht. gebunden.Auf dem getesteten CPU-System ohne iGPU liefen Videodekodierung und OpenVINO-Detektion auf der CPU.

    Herstellerempfehlung: Frigate empfiehlt Docker auf Bare-Metal-Debian, weil GPU- und Accelerator-Zugriff dort einfacher und mit weniger Overhead möglich ist. Proxmox funktioniert in der Praxis, ist aber nicht die bevorzugte Standardplattform. Die folgenden LXC-Schritte sind deploymentspezifisch.

    Architektur

      /config lokal auf SSD: Konfiguration und SQLite-Datenbank Datenbank bleibt lokal (/config/frigate.dbmedia/frigate auf LXC-SSD)Synology-NFS: —Aufzeichnungen, DBSnapshots und Exporte /tmp/cache als tmpfs: temporäre Aufzeichnungssegmente Reolink-Substream für Erkennung, Mainstream für Aufzeichnung Hardwaredekodierung nur konfigurieren, wenn im Frigate-Container ein unterstütztes Gerät tatsächlich verfügbar ist

      Nie /config auf NFS =legen. "databaseFrigate ishält locked"-Fehler.dort die SQLite-Datenbank und Begleitdateien. Nur /media/frigate gehört auf den Netzspeicher.

      Ablauf1. Synology-NFS vorbereiten

      In DSM 7:

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

      1. Synology NAS (NFS-Share)

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

      Dedizierten freigegebenen Ordner erstellen, beispielsweise frigate. Freigegebenen Ordner anlegen (z.B. surveillance), dann Bearbeitenbearbeiten → NFS-Berechtigungen → EinfügenErstellen:
      • Hostname/IP: <nur die IP beziehungsweise das Subnetz des Proxmox-Host-IP> (z.B. 10.0.0.10)Hosts
      • Privileg: Lesen/Schreiben
      • Squash:Sicherheit: "Alle Benutzer auf Admin mapen"
       (vermeidet UID/GID-Probleme mit unpriv. LXC)sys Sicherheit:Squash sysund NichtUID/GID rootpassend zuschreiben:zum ☐eigenen (wennLXC-Rechtemodell Squash=map to admin)wählen

      Den von DSM angezeigten Mount-Pfad aufnotieren, dem NAS merken:beispielsweise /volume1/frigate.

      WarumFür NFSunprivilegierte stattLXC SMB?kann NFS«alle istBenutzer beiauf Frigate-Recordingsadmin schneller/stabilerabbilden» als pragmatischer Workaround funktionieren, erweitert aber die Rechte auf dem Share. Besser sind ein dediziertes Share und brauchteine keinbewusst mount.cifs-Gedönsgetestete im Container. Quelle: Frigate-Diskussion #7351.UID/GID-Abbildung.


      2. NFS auf dem Proxmox-Host mounten

      ## NFS-Client
      apt update &&
      apt install -y nfs-common
      ## Mountpoint anlegen
      mkdir -p /mnt/surveillancefrigate-recordings
      ##

      Eintrag in /etc/fstab; (Server und Exportpfad anpassen:

      NAS-IP + Pfad) echo '10.0.0.31:
      nas.example.invalid:/volume1/surveillancefrigate /mnt/surveillancefrigate-recordings nfsnfs4 defaults,soft,timeo=30,retrans=3,noatimerw,hard,_netdev,noatime,x-systemd.automount,x-systemd.device-timeout=30s 0 0'0
      >>
      /etc/fstab

      Mount und Schreibzugriff prüfen:

      systemctl daemon-reload
      mount -a/mnt/frigate-recordings
      mountpoint /mnt/frigate-recordings
      df -h /mnt/surveillancefrigate-recordings
      #touch muss/mnt/frigate-recordings/.frigate-write-test
      dasrm NAS zeigen/mnt/frigate-recordings/.frigate-write-test
      

      Ausfallschutz: Frigate nicht starten, wenn mountpoint fehlschlägt. Sonst beschreibt Frigate den leeren lokalen Mount-Pfad und kann das Root-Dateisystem füllen. Das Verhalten bei nicht erreichbarem NAS gehört zwingend in den Abnahmetest.

      3. Mount in den LXC durchreichen

      (im Proxmox-UI oder

      In /etc/pve/lxc/<CTID>.conf):

      ## NFS-Share als Mountpoint reinbinden
      mp0: /mnt/frigate,frigate-recordings,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=dirmedia/frigate
      

      ImFalls der Proxmox-UI:Host eine unterstützte GPU hat, das Gerät vorzugsweise über CT → Ressourcen → Gerät durchreichen →hinzufügen. Bei Intel ist im LXC mindestens der passende Render-Node unter /dev/dri/ zu erwarten.

      Nach dem Neustart des LXC:

      mountpoint /media/frigate
      ls -la /dev/dri 2>/dev/null || true
      

      Fehlt /dev/dri, (einfacherdarf alskein Intel-VAAPI/QSV-Preset erzwungen werden. Frigate dokumentiert für konfigurierte Hardwarebeschleunigung keinen CPU-Fallback bei Fehlern.

      4. Frigate mit Docker Compose betreiben

      Docker Engine und das Compose-Plugin gemäss der offiziellen Docker-Dokumentation für die conf-Edits).verwendete CTDistribution neuinstallieren. starten.Beispiel Imfür LXC:die lsrelevanten /dev/dri muss card0/renderD128 zeigen, ls /media das NAS.Volumes:


      3. LXC: Docker + Compose

      aptservices:
        updatefrigate:
          &&container_name: aptfrigate
          installimage: ghcr.io/blakeblackshear/frigate:stable
          restart: unless-stopped
          shm_size: "256mb"
          volumes:
            -y curl
      curl/opt/frigate/config:/config
            -fsSL https:/media/frigate:/get.docker.com | sh
      systemctl enablemedia/frigate
            - type: tmpfs
              target: /tmp/cache
              tmpfs:
                size: 1000000000
          ports:
            -now docker"8971:8971"
      

      Frigate

      4.nennt Deploy-Files

      für zwei Detektionsstreams mit 720p rund 210 MB Shared Memory; 256mb ist ein pragmatischer Startwert. Die tatsächliche Grösse über den Frigate-SHM-Rechner auf Basis der Detektionsauflösung dimensionieren.

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

      cd /opt/frigate
      mountpoint /media/frigate
      
      docker compose config
      docker compose pull
      docker compose up -d
      docker compose logs -f-tail=200 # Config-Fehler werden hier angezeigt (exit bei invalid)frigate
      

      ConfigPort vorab8971 validieren:ist die authentisierte Weboberfläche und API. Port 5000 ist intern und nicht authentisiert und darf nicht öffentlich exponiert werden.

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

      5. Detektor und Videodekodierung

      System ohne GPU

        Kein hwaccel_args erzwingen. Auf Intel-CPU ist OpenVINO im CPU-Modus dem generischen CPU-Detector vorzuziehen. Detektions-FPS und Substream-Auflösung niedrig beginnen und Last messen.

        System mit Intel-iGPU

          Passendes Preset wählen, zum Beispiel preset-vaapi oder preset-intel-qsv-* nach CPU-Generation. Frigate-Logs auf automatische Erkennung beziehungsweise Fehler prüfen. Niedrige CPU-Last allein beweist funktionierende Hardwaredekodierung nicht.

          InFrigate der0.18 Reolink-WebUIempfiehlt jeden CamAdd Camera Wizard unter EinstellungenSettings → Netzwerk/VideoGlobal configuration → Camera management:. Vorher HTTP in den erweiterten Netzwerkeinstellungen der Kamera aktivieren.

          Empfohlene Kameraoptionen, sofern vom Modell angeboten:

          • Encode:Fluency first / CBR aktivieren
          Interframe Space 1x (I-Frame-Intervall gleich Framerate) Substream für Erkennung, Mainstream für Aufzeichnung

          Der Streamtyp hängt vom Modell ab:

          Reolink-Kamera Empfehlung 5 MP oder weniger HTTP-FLV 6 MP oder höher, neuere Modelle HTTP-FLV Enhanced mit FFmpeg 8 oder RTSP 6 MP oder höher, ältere Modelle RTSP

          Nicht pauschal jede Kamera auf H.264 (nichtoder H.265)HTTP-FLV —zwingen. sonstDer Recording/Safari-ProblemeWizard

          Bitrate-Modus: CBR ("Fluency first") I-Frame-Intervall: = Framerate (Interframe Space 1x) Sub-Stream aktivieren (für detect),erkennt Auflösung z.B.und 640×480Streamtyp HTTP-Streamautomatisch. aktivierenH.265-Streams (Erweitertesind Netzwerkeinstellungen)für —Aufzeichnungen Frigatein nutztChrome den108+, http-flv-StreamEdge und
          Safari abspielbar; ältere Browser brauchen H.264.

          6.7. PrüfenAbnahme

          • Web-UI: http:mountpoint //<LXC-IP>:8971media/frigate ist im LXC erfolgreich.
          •  Recordings landen auf dem NAS und altern gemäss Retention.
           Config-Validierung ohne Fehler; Logs zeigen keine FFmpeg-Fehler.  Live-View beider Cams,Kameras stabil; Detection-Boxen sichtbar?sichtbar. Recordings landenDetektionsauflösung unter /media/frigate/<cam>/ (aufentspricht dem NAS)realen Substream. docker composeFalls topGPU /verwendet: dfHardwaredekodierung -hist /mediain imLogs/Frigate-Metriken bestätigt.  Neustart von Host und LXC stellt NFS, Docker und Frigate wieder her.  Ausfalltest: NAS nicht erreichbar ⇒ Frigate startet nicht oder schreibt nicht lokal auf Root-Disk.

          Hinweise / PitfallsQuellen

          Frigate 0.18: Reolink-Kamerakonfiguration Frigate 0.18: Hardwarebeschleunigung Videodekodierung Frigate 0.18: Recording und Retention Synology: NFS-Zugriff auf NFS:freigegebene 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).Ordner

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