UniFi Protect mit Docker auf dem Raspberry Pi 4 installieren #2

Es geht, UniFi Protect im Docker Container auf eigener ARM64 Hardware installieren!
Ich nutze das nicht produktiv, sondern erstmal nur in einer Testumgebung zum ausprobieren.

Diese Anleitung basiert auf: https://github.com/dciancu/unifi-protect-unvr-docker-arm64.
Funktioniert, einige bugs, kommt aber mit aktuellen Versionen! (meine erste Anleitung mit anderem Repository)

mein Setup:

  • Raspberry Pi 4 (4GB)
  • Raspberry Pi OS Lite (64bit, Debian 12 Bookworm)
  • 500GB SSD mit USB-Adapter (für Pi OS und Storage)
  • 2 Kameras (G3 Flex, G3 Micro)

stable und edge

  • stable: UniFi OS 3.2.12 mit UniFi Protect 2.9.42 (empfohlen)
  • edge: UniFi OS 3.2.12 mit UniFi Protect 4.0.33 (mit der aktuellsten UniFi-Protect Version, läuft nicht immer)

Docker installieren

pi@nvr:~ $ curl -fsSL https://get.docker.com -o get-docker.sh
pi@nvr:~ $ sudo sh get-docker.sh

pi@nvr:~ $ docker -v
Docker version 26.1.4, build 5650f9b

Den aktuellen Benutzer (nicht root) in die Docker Gruppe aufnehmen.

pi@nvr:~ sudo usermod -aG docker ${USER}

Docker

Aktuelles Docker Image laden. (Das Image kommt mit UNVR 3.2.12 und Protect 2.9.42)

pi@nvr:~ sudo docker pull dciancu/unifi-protect-unvr-docker-arm64:stable

docker-compose.yml herunterladen

pi@nvr:~ cd /opt
pi@nvr:~ sudo wget https://raw.githubusercontent.com/dciancu/unifi-protect-unvr-docker-arm64/main/docker-compose.yml

und in der docker-compose.yml anpassen

- STORAGE_DISK=/dev/sda2
- TZ=Europe/Berlin

Container starten.

pi@nvr:~ sudo docker compose up -d

Container läuft.

pi@nvr:~ sudo docker ps
CONTAINER ID   IMAGE                                            COMMAND                  CREATED              STATUS              PORTS     NAMES
c224dd7cfdf6   dciancu/unifi-protect-unvr-docker-arm64:stable   "/lib/systemd/systemd"   About a minute ago   Up About a minute             unifi-protect

UniFi Protect

Über https://ip-addresse das WebUI starten und das Setup durchklicken.

Dann sofort unter OS Settings → Applications, Auto Update deaktivieren! (Funktioniert eh nicht und ggf. zerschießen wir uns den Container.)

Storage

Anzeige funktioniert.

RTSP Stream

Kann unter Camera → Settings → Advanced aktiviert werden. Der erstellte link muß aber geändert werden.
?enableSrtp am Ende entfernen, Port auf 7447 ändern und Protokoll auf RTSP ändern.

# der erstellte link
rtsps://192.168.50.159:7441/POx2DUau80whIS30?enableSrtp

# ändern in
rtsp://192.168.50.159:7447/POx2DUau80whIS30

Updates

Updates lassen sich nicht über das WebUI installieren. Es muss ein neues Docker Image geladen werden!

Sonstiges

  • der UNVR läuft bisher ohne Probleme mit den zwei Kameras
  • lässt sich OHNE einen Ubiquiti Account nutzen (auch die Android Protect App)
  • einige Funktionen sind nicht verfügbar
  • Storage: Anzeige funktioniert
  • Fehler: System Config Backup funktioniert nicht
  • Fehler: Map (InnerSpace) funktioniert nicht
  • Update: geringer Aufwand, neues Image laden (wenn es denn eins gibt)
  • Edge: auch die aktuellste Version läuft ohne Probleme
  • trotzdem alles ziemlich frickelig …

2 Gedanken zu „UniFi Protect mit Docker auf dem Raspberry Pi 4 installieren #2“

  1. Leider komme ich weder bei der stable noch im Edge Release nicht weiter. Der Initialfehler ist, dass er
    [FAILED] Failed to start PostgreSQL Cluster 9.6-protect.
    unifi-protect | See ‘systemctl status postgresql@9.6-protect.service‘ for details.
    unifi-protect | [FAILED] Failed to start PostgreSQL Cluster 9.6-main.
    unifi-protect | See ‘systemctl status postgresql@9.6-main.service‘ for details.
    unifi-protect | Starting UniFi Core…
    [FAILED] Failed to start UniFi Core.
    unifi-protect | See ‘systemctl status unifi-core.service’ for details.
    unifi-protect | [FAILED] Failed to start UniFi Protect.
    unifi-protect | See ‘systemctl status unifi-protect.service’ for details. Und dann Protect ebenfalls nicht starten lässt

    Antworten
    • Habe es gerade nochmal nach meiner Anleitung installiert. (stable)
      Läuft problemlos durch. Komme bis ins WebUI für die Ersteinrichtung.

      Bei mir sieht das so aus.
      PostgreSQL 9.6 muss anscheinend auch nicht laufen, sondern PostgreSQL 14.

      root@UNVR:/# systemctl status postgresql@9.6-protect.service
      postgresql@9.6-protect.service – PostgreSQL Cluster 9.6-protect
      Loaded: loaded (/lib/systemd/system/postgresql@.service; disabled; vendor preset: enabled)
      Active: failed (Result: protocol) since Thu 2024-08-29 19:44:02 CEST; 9min ago
      CPU: 148ms

      root@UNVR:/# systemctl status postgresql@14-protect.service
      postgresql@14-protect.service – PostgreSQL Cluster 14-protect
      Loaded: loaded (/lib/systemd/system/postgresql@.service; enabled; vendor preset: enabled)
      Drop-In: /lib/systemd/system/postgresql@14-protect.service.d
      └─clean-postmaster-pid.conf, slow-query.conf, unifi-protect.conf
      Active: active (running) since Thu 2024-08-29 19:44:05 CEST; 7min ago
      Main PID: 287 (postgres)
      Tasks: 10 (limit: 587)
      CPU: 3.596s

      Antworten

Schreibe einen Kommentar