Zum Inhalt

IP-Kamera mit Frigate lokal aufzeichnen

Veröffentlicht am 9. August 2026 · Geschätzte Lesezeit: 4 Minuten

Frigate zeichnet den RTSP-Videostream einer IP-Kamera auf und erkennt Bewegungen und Objekte direkt auf dem eigenen Server. Die Aufnahmen bleiben im Heimnetz und lassen sich über eine geschützte Weboberfläche durchsuchen. Für eine erste Kamera mit CPU-Erkennung brauchst du ungefähr 25 Minuten.

Voraussetzungen

  • Ein Linux-Server mit Docker und Docker Compose
  • Eine IP-Kamera mit aktiviertem RTSP-Stream
  • Genügend freier Speicherplatz für Videoaufnahmen
  • Port 8971/TCP ist im Heimnetz frei

1. Kameradaten vorbereiten

Aktiviere in der Kamera den RTSP-Stream und lege dafür möglichst einen eigenen Benutzer mit einem langen Passwort an. Notiere die private Kamera-IP und den RTSP-Pfad aus der Herstellerdokumentation.

Ein vollständiger RTSP-Pfad sieht häufig ähnlich aus, darf aber nicht ungeprüft übernommen werden:

rtsp://<kamera-benutzer>:<kamera-passwort>@<kamera-ip>:554/<rtsp-pfad>

Ersetze alle vier Platzhalter durch die Werte deiner Kamera. Verwende nach Möglichkeit einen niedrig aufgelösten Nebenstream für die Erkennung und den Hauptstream erst später für hochwertige Aufnahmen.

2. Arbeitsordner anlegen

Führe die Befehle auf dem Docker-Server aus. Sie erstellen getrennte Ordner für Konfiguration und Aufnahmen und wechseln direkt in den Arbeitsordner:

sudo mkdir -p /opt/frigate/config /opt/frigate/storage
sudo chown -R "$USER":"$USER" /opt/frigate
cd /opt/frigate

3. Kamerazugang in einer Umgebungsdatei speichern

Erstelle in /opt/frigate eine Datei namens .env. Ersetze beide Platzhalter durch das RTSP-Konto der Kamera:

FRIGATE_RTSP_USER=<kamera-benutzer>
FRIGATE_RTSP_PASSWORD=<kamera-passwort>

Schütze die Datei auf dem Server vor anderen Benutzern:

chmod 600 /opt/frigate/.env

Kamerazugang nicht veröffentlichen

Die .env-Datei enthält echte Zugangsdaten. Lade sie nicht auf eine Webseite oder in eine öffentliche Git-Ablage und zeige sie nicht in Screenshots.

4. Frigate-Konfiguration erstellen

Erstelle /opt/frigate/config/config.yml. Ersetze <kamera-ip> und <rtsp-pfad> durch die Werte deiner Kamera. Die Namen in geschweiften Klammern bleiben genau so stehen; Frigate liest sie später aus der .env-Datei.

mqtt:
  enabled: false

record:
  enabled: true
  retain:
    days: 3
    mode: motion

cameras:
  eingang:
    ffmpeg:
      inputs:
        - path: rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@<kamera-ip>:554/<rtsp-pfad>
          roles:
            - detect
            - record
    detect:
      enabled: true
      width: 1280
      height: 720
      fps: 5

eingang ist der interne Kameraname und darf ohne Leerzeichen geändert werden. Die Aufbewahrung von drei Tagen begrenzt den Speicherverbrauch für den Einstieg. Breite und Höhe müssen zur Auflösung des verwendeten RTSP-Streams passen.

CPU-Erkennung ist nur ein Einstieg

Eine Kamera mit 720p und 5 Bildern pro Sekunde eignet sich zum Testen. Für mehrere Kameras oder dauerhaften Betrieb empfiehlt Frigate einen unterstützten Beschleuniger und Hardware-Decoding. Falsche Werte können den Server stark auslasten.

5. Compose-Datei erstellen

Erstelle /opt/frigate/compose.yaml. Ersetze <server-ip> durch die private IP des Docker-Servers, zum Beispiel 192.168.1.20.

services:
  frigate:
    image: ghcr.io/blakeblackshear/frigate:stable
    container_name: frigate
    restart: unless-stopped
    stop_grace_period: 30s
    shm_size: "128mb"
    env_file:
      - .env
    ports:
      - "<server-ip>:8971:8971"
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - ./config:/config
      - ./storage:/media/frigate
      - type: tmpfs
        target: /tmp/cache
        tmpfs:
          size: 1000000000

Port 8971 führt zur angemeldeten Oberfläche. Der interne, nicht angemeldete Port 5000 wird absichtlich nicht veröffentlicht. shm_size reicht laut Frigate für einen kleinen Einstieg und muss bei weiteren Kameras neu berechnet werden.

6. Starten und Administratorkonto sichern

Prüfe zuerst die Compose-Datei:

cd /opt/frigate
docker compose config --quiet

Starte Frigate:

docker compose up -d

Beim ersten Start erzeugt Frigate das Konto admin und ein zufälliges Passwort. Zeige die letzten Protokollzeilen an und notiere das Passwort:

docker compose logs --tail=100 frigate

Öffne https://<server-ip>:8971. Die Zertifikatswarnung entsteht beim ersten lokalen Zugriff durch das selbst signierte Zertifikat. Melde dich an und ändere das Administratorkennwort sofort unter Einstellungen → Benutzer.

7. Kamera und Aufnahme prüfen

Öffne die Live-Ansicht und kontrolliere, ob eingang ein flüssiges Bild zeigt. Gehe vor der Kamera vorbei und warte kurz, bis in der Review-Ansicht ein Eintrag erscheint. Beobachte gleichzeitig die Serverlast:

docker stats frigate

Beende die laufende Anzeige mit Strg+C. Bleibt die CPU dauerhaft sehr hoch, verwende einen kleineren Nebenstream oder deaktiviere die Erkennung, bis passende Beschleuniger-Einstellungen eingerichtet sind.

8. Backup und Rückweg

Videoaufnahmen können sehr groß werden. Sichere regelmäßig mindestens die Konfiguration, Datenbank und .env-Datei; wichtige exportierte Clips kopierst du zusätzlich auf ein anderes Gerät. Stoppe Frigate für ein konsistentes Backup:

cd /opt/frigate
docker compose down

Lege den Backup-Ordner an und sichere die Konfiguration ohne das große Aufnahmeverzeichnis:

sudo mkdir -p /var/backups
sudo tar -czf "/var/backups/frigate-config-$(date +%F).tar.gz" -C /opt/frigate compose.yaml .env config

Starte Frigate wieder:

cd /opt/frigate
docker compose up -d

Das Archiv enthält den Kamerazugang und muss geschützt aufbewahrt werden. Für den Rückweg stoppst du den Stack und stellst compose.yaml, .env und config aus dem Archiv wieder unter /opt/frigate her.

9. Aktualisieren und Fehler finden

Lege vor einem Update ein Backup an. Aktualisiere anschließend den Container:

cd /opt/frigate
docker compose pull
docker compose up -d
  • Kein Kamerabild: Kamera-IP, RTSP-Pfad und Zugangsdaten prüfen und den Stream zuerst mit einem lokalen Videoplayer testen.
  • 401 Unauthorized: RTSP-Benutzer und Passwort in .env stimmen nicht oder der Benutzer darf den Stream nicht öffnen.
  • Bus error: shm_size ist zu klein und muss nach der offiziellen Formel passend zu Anzahl und Auflösung der Kameras erhöht werden.
  • Festplatte läuft voll: Aufbewahrungszeit senken und den Ordner /opt/frigate/storage kontrollieren.

10. Quellen und Video

Fertig

Frigate zeichnet die Kamera nun lokal auf und schützt die Oberfläche mit einer Anmeldung. Zur Funktionsprüfung gehst du einmal durchs Kamerabild und prüfst, ob kurz danach ein abspielbarer Eintrag in der Review-Ansicht erscheint.