# Ubiquiti Universum

Alles rund um die Produkte von Ubiquiti (Unifi und konsorten)

# Unifi - Wifi

Alles rund um Unifi WLAN Produkte

# Unfi Controller auf Raspian 11 Bullseye 32 Bit (Jetzt Unifi Network Application wurde umbenannt)

Hat man noch einen Raspberry rumliegen, kann man sich den Kauf eines CloudKey sparen um seine APs zu verwalten, indem man den Unifi Controller einfach auf einem  
Raspberry installiert.

### Vorraussetzungen  


```
ACHTUNG!!! muss 32 Bit Raspi Image sein!!!!
```

- Debian Bullseye **32 bit ARM7** für Raspberry 3/4 !!!!!!!  **32 bit ARM7**
- System aktuell mit apt update und apt dist-upgrade
- SSH Zugang
- Java openjdk-jre8 nicht höher!!

### Paketabhängigkeiten

```shell
sudo su
apt install wget gnupg2 ca-certificates apt-transport-https dirmngr -y
apt install gnupg software-properties-common -y
apt install openjdk-8-jre-headless -y
apt-get install haveged -y
```

### Mongo DB installieren

 In den Softwarequellen folgende Repo hinzufügen

```shell
nano /etc/apt/sources.list
```

und den deb Eintrag hinzufügen

```shell
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
```

danach

```shell
apt update
apt dist-upgrade -y
apt install mongodb-server -y
```

### Unfi Controller installieren

Unifi Controller downloaden und installieren ([hier](https://www.ui.com/download/unifi/unifi-ap-hd) vor der installation schauen ob nicht schon eine neuere version zur verfügung steht.  
Der Unifi Controller wurde in Unifi Network Application umbenannt. Dort in der Liste nach Debian/Linux etc schauen. Dann link adresse kopieren und mit dem wget befhel die URL austauschen.

```shell
wget https://dl.ui.com/unifi/7.1.66/unifi_sysvinit_all.deb
dpkg -i unifi_sysvinit_all.deb
```

Es gibt einen Fehler wegen nicht installierter Abhängigkeiten, das holen wir mit dem nächsten befehl nach,  
dieser installiert die fehlenden Pakete und den Unifi Controller/Network Application im Anschluss automatisch.  
Danach das System neustarten.

```shell
apt --fix-broken install -y
reboot
```

Der neustart kann bis zu 5 Minuten dauern bis die Oberfläche da ist. (ist halt immer noch ein Raspberry)

### Finish

Unter https://&lt;ip&gt;:8443 Unifi wie gewohnt konfigurieren. Nun verhält sich der Raspberry wie ein CloudKey

# Unfi Controller auf Debian 11 Bullseye 64 Bit (x64 und arm64/aarch64) (Jetzt Unifi Network Application wurde umbenannt)

### Vorraussetzungen  


- Debian Bullseye **AMD64 oder aarch64**
- System aktuell mit apt update und apt dist-upgrade
- SSH Zugang
- Java openjdk-jre8 nicht höher!!
- Das Script im Anhang dieses Artikels ist vom 19.07.2022

### Install Script  


```
apt update
apt dist-upgrade
apt install gpg curl
```

```shell
rm unifi-latest.sh &> /dev/null; wget https://get.glennr.nl/unifi/install/install_latest/unifi-latest.sh && bash unifi-latest.sh

```

Frage ob man das install script behalten möchte. Wir beantworten mit nein

```

#########################################################################

# Do you want to keep the script on your system after completion? (Y/n) 

```

Frage ob das System aktualierst werden soll  
Mit Ja antworten.

```
# There are were no packages that need an upgrade...

----

# Do you want to proceed with updating your system? (Y/n) 
```

Nun werden wir gefragt ob wir unifi in Zukunft via apt aktualisieren wollne. Natürlich wollen wir das.  
Dann wir mit jedem apt upgrade die version aktualisiert. Also mit Ja bestätigen

```shell
#########################################################################

# Would you like to update the UniFi Network Application via APT?
# Do you want the script to add the source list file? (Y/n) 
```

### Finish

So Fertig. Wir landen wieder in der Console und oben steht die installierte Version + die URL  
Und es wird auch der Status angezeigt ob der Controller läuft

```
#########################################################################

# UniFi Network Application 7.1.66 has been installed successfully
# Your application address: https://222.222.1.66:8443


# UniFi is active ( running )


# Author   |  Glenn R.
# Email    |  glennrietveld8@hotmail.nl
# Website  |  https://GlennR.nl



```

# Umbennen von SSIDs  ab neuem Interface Network ab 7.1.66

WLAN SSIDs werden jetzt in Unifi Gruppen angelegt.

  
Bei Neuinstallation wird eine Gruppe angelegt für beide Funkfrequenzen 2.4 GHz und 5 GHz

[![Screenshot 2022-07-20 at 18-56-19 UniFi Network.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/scaled-1680-/83rwLwH4lrZfCpoR-screenshot-2022-07-20-at-18-56-19-unifi-network.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/83rwLwH4lrZfCpoR-screenshot-2022-07-20-at-18-56-19-unifi-network.png)

Nun drauf klicken.  
Der Name ist die SSID.   
Nun das Kennwort vergeben.

Advanced Configuration auf manual stellen.  
Nun kann gewählt werden, welche Frequenz.

[![Screenshot 2022-07-20 at 19-03-57 UniFi Network.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/scaled-1680-/JvXx6j1kS42kpmGz-screenshot-2022-07-20-at-19-03-57-unifi-network.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/JvXx6j1kS42kpmGz-screenshot-2022-07-20-at-19-03-57-unifi-network.png)

Hier deaktivieren wir das 5 GHz Netz und speichern.

[![Screenshot 2022-07-20 at 19-08-17 UniFi Network.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/scaled-1680-/LMmsAYuIeWyqmsdZ-screenshot-2022-07-20-at-19-08-17-unifi-network.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/LMmsAYuIeWyqmsdZ-screenshot-2022-07-20-at-19-08-17-unifi-network.png)

Nun eine neue Gruppe hinzufügen, durch klicken auf create new Wifi Network

[![Screenshot 2022-07-20 at 19-11-59 UniFi Network.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/scaled-1680-/aXgdjvYWycYTVNLU-screenshot-2022-07-20-at-19-11-59-unifi-network.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/aXgdjvYWycYTVNLU-screenshot-2022-07-20-at-19-11-59-unifi-network.png)

Nun auf Advanced Configuration auf manual stellen. Dann auf Add Wifi Network klicken.

[![Screenshot 2022-07-20 at 19-13-11 UniFi Network.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/scaled-1680-/FubMqCtIkCK00XMN-screenshot-2022-07-20-at-19-13-11-unifi-network.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/FubMqCtIkCK00XMN-screenshot-2022-07-20-at-19-13-11-unifi-network.png)

Nun sieht die Liste so aus. Zwei SSIDs. Einmal 5 GHz und 2.4 GHz

[![Screenshot 2022-07-20 at 19-17-58 UniFi Network.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/scaled-1680-/3VznGcv47saWq3BT-screenshot-2022-07-20-at-19-17-58-unifi-network.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/3VznGcv47saWq3BT-screenshot-2022-07-20-at-19-17-58-unifi-network.png)

# Umbennen einzelner APs für die Lokalisierung (Raumbenennung)

Im Menü auf das Symbol für Accespoints klicken  
  
[![Screenshot 2022-07-20 at 19-20-22 UniFi Network.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/scaled-1680-/Jfs3A9BzfXiBlXJb-screenshot-2022-07-20-at-19-20-22-unifi-network.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/Jfs3A9BzfXiBlXJb-screenshot-2022-07-20-at-19-20-22-unifi-network.png)  
Nun erscheint eine Liste von APs. Dort auf den AP klicken den wir umbennen wollen. (In unserem Falle haben wir nur einen)

[![Screenshot 2022-07-20 at 19-22-58 UniFi Network.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/scaled-1680-/nQc36BOFT5qETcK5-screenshot-2022-07-20-at-19-22-58-unifi-network.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/nQc36BOFT5qETcK5-screenshot-2022-07-20-at-19-22-58-unifi-network.png)

Nun klappt sich recht ein Menü auf und klicken dort auf den registerreiter settings.  
Dort befindet sich ein Textfeld, device Name. Dieses ist zur Zeit leer oder es steht schon ein anderer Name drin.  
Je nachdem ob der AP gerate eingerichtet wurde oder schon vorhanden war und eine Name vergeben war.

[![Screenshot 2022-07-20 at 19-23-39 UniFi Network.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/scaled-1680-/6s6CXCi85BKks37W-screenshot-2022-07-20-at-19-23-39-unifi-network.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/6s6CXCi85BKks37W-screenshot-2022-07-20-at-19-23-39-unifi-network.png)

Mit einem klick in device Name können wir einen Namen vergeben oder einen vorhandenen umbenennen.

[![Screenshot 2022-07-20 at 19-25-40 UniFi Network.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/scaled-1680-/Nvcdac4SA38xwwGW-screenshot-2022-07-20-at-19-25-40-unifi-network.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/Nvcdac4SA38xwwGW-screenshot-2022-07-20-at-19-25-40-unifi-network.png)

Dann nach ganz unten scrollen und auf Apply changes klicken.  
Fertig. AP umbenannt.  
[![Screenshot 2022-07-20 at 19-25-52 UniFi Network.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/scaled-1680-/hEVVH9alJKLmF1yH-screenshot-2022-07-20-at-19-25-52-unifi-network.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/hEVVH9alJKLmF1yH-screenshot-2022-07-20-at-19-25-52-unifi-network.png)

# Unifi Controller - Werkseinstellungen

#### Beschreibung:

Zugangsdaten vergessen oder bei einem Installierten Controller bei Null starten.  
Mit ein paar Befehlen alles weghauen.

#### Werkseinstellungen Linux Debian

Die Unifi Pakete löschen und neu installieren.  
Wenn die alte unifi-sysvinit\_all.deb (Unifi Installer, halt nur ein komischer Dateiname) vorhanden ist gleich wieder installieren.  
Ansonsten gleich mit der aktuellen Version aus diesem Artikel installieren.[Unfi Controller auf Debian 11 Bullseye 64 Bit (Jetzt Unifi Network Application wurde umbenannt)](https://wiki.hacker-net.de/books/ubiquiti-universum/page/unfi-controller-auf-debian-11-bullseye-64-bit-jetzt-unifi-network-application-wurde-umbenannt "Unfi Controller auf Debian 11 Bullseye 64 Bit (Jetzt Unifi Network Application wurde umbenannt)")

Also root einloggen (wenn nicht schon root)

```
sudo su
```

Nun die Pakete entfernen und wenn vorhanden neu installieren

```
apt-get remove --purge unifi
apt-get remove --purge mongodb
rm -rf /usr/lib/unifi
#nur wenn noch vorhanden
dpkg -i unifi_sysvinit_all.deb
```

Fertig.

# Unifi Controller - Webpasswort Passwort via ssh zurücksetzten

Beschreibung:  
  
Wenn man das Passwort für die GUI vergessen hat, aber noch ssh Zugang hat, kann man per ssh und dem mongodb client das Kennwort in der Datenbank einfach neu setzten.

Ändern des passwortes in der Mongo DB

Per ssh einloggen mit root rechten.

Benutzernamen herausfinden.  
Wenn man nicht einmal mehr weiß wie sein Benutzername lautet, denn den konnte man auch selbst vergeben, lassen wir uns erst mal alle Benutzer auf listen

```
mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);"
```

Nun bekommen wir eine liste mit allen benutzern.

Nun können wir das password zurück setzten.  
ich habe hier als hash jetzt einfach das passwort password gewählt.  
Ein vernünftiges Passwort kann man dann ja über die GUI setzten.  
Hier geht es ja nur darum überhaupt ins System zu kommen.  
&lt;username&gt; mit dem Username den wir haben wollen ersetzten

```
mongo --port 27117 ace --eval 'db.admin.update( { "name" : "<username>" }, { $set : { "x_shadow" : "$6$ybLXKYjTNj9vv$dgGRjoXYFkw33OFZtBsp1flbCpoFQR7ac8O0FrZixHG.sw2AQmA5PuUbQC/e5.Zu.f7pGuF7qBKAfT/JRZFk8/" } } )'
```

Nun können wir uns mit unserem Benutzernamen und dem Passwort : password anmelden.  
Fertig

# Unifi - Protect

Alles rund um Sicherheitslösungen von Ubiquiti

# Unifi Protect im Docker Container in einer arm64 Debian VM installieren

### Beschreibung:  


Unifi UNVR im Docker Conatiner auf einem ARm64 Host. Wir können einmal das Image aus dem Docker Hub Pullen oder uns auch ein eigenes Image bauen. Erstmal die Variante mit dem Pullen.

### Vorraussetzung:

Einmal ein arm64 Host in dem Docker installiert ist.  
Eine zweite HDD mindesten 128 GB groß. würde aber eine Größe wählen die größer ist. Unbedingt eine Partioion und ext4 so kann sie on the fly vergrößert werden.

### Grundinstallation Docker und Einbungung Festplatte

Installation Docker, als root per ssh einloggen

```
apt install docker.io gdisk curl
```

Nun eine weitere Festplatte hinzufügen und diese Partitionieren wenn nicht schon geschehen  
Mit lsbk die neue Festplatte ermitteln

```
oot@unnvr:~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0    32G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0  30.5G  0 part /
└─sda3   8:3    0   976M  0 part [SWAP]
sdb      8:16   0   256G  0 disk 
sr0     11:0    1 329.3M  0 rom  

```

sdb ist die gewünschte Festplatte

nun partitonieren

```
gdisk /dev/sdb

dann o eingeben für neues layout
dann n eingeben für eine neue partition

alles durchentern

nun w für schreiben
und exit

```

Nun Dateisystem ext4 erzeugen auf sdb1

```
mkfs.ext4 /dev/sdb1
```

Nun ein verzeichnis für den mount point erstellen

```
mkdir /unvr
```

Nun die part UUID auselsen

```
blkid /dev/sdb1
/dev/sdb1: UUID="a396f93a-305e-4412-9040-5c51c9203f78" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="Linux filesystem" 
PARTUUID="c9c72c32-250f-4b08-b74f-0aadc682d313"

```

Nun haben wir die UUID. Mit dieser serstellen wir einen automount in der fstab.

```
nano /etc/fstab
```

Dort tragen wir unsere UUID ein dann das Mountverzeichnis das Dateisystem

```
...
UUID=a396f93a-305e-4412-9040-5c51c9203f78  /unvr      ext4    defaults,errors=remount-ro 0       1
...
```

testen des mount points.  
Wenns geklappt hat können wir mit

```
mount /unvr
```

die Festplatte mounten.  
Das Ergebnis ob gemountet sehen wir durch lsblk

```
lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0    32G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0  30.5G  0 part /
└─sda3   8:3    0   976M  0 part [SWAP]
sdb      8:16   0   256G  0 disk 
└─sdb1   8:17   0   256G  0 part /unvr
sr0     11:0    1 329.3M  0 rom 
```

Die Grub config um diesen Eintrag erweitern.

```
/etc/default/grub
```

Inhalt:

```
GRUB_CMDLINE_LINUX_DEFAULT="quiet systemd.unified_cgroup_hierarchy=0"

Sollten schon andere parameter drin stehen diese logischerweise hinzufügen und nicht ersetzten...
```

nun update grub ausführen

```
update-grub
```

Neustarten. Achtung bei einem neustart könnte die sda / sdb reihenfolge anders sein.

```
reboot
```

Erstellen der Docker instanz durch pullen von dockerhub

Folgendes script laufen lassen, die Pfade sind angepasst auf /unvr  
Soll der conateiner automatisch gestartet werden an den Befehl noch

```
--restart always hinter -d 
dranhängen
```

Hiernochmals darauf achten das bei STOARGE\_DISK=/dev/sdb1 oder sdb2 die richtige partion angegeben wird. Denn nach dem neustart können diese sich ändern

```
docker run -d --name unifi-protect  \
    --privileged \
    --tmpfs /run \
    --tmpfs /run/lock \
    --tmpfs /tmp \
    -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
    -v /unvr/srv:/srv \
    -v /unvr/data:/data \
    -v /unvr/persistent:/persistent \
    --network host \
    -e STORAGE_DISK=/dev/sda1 \
    -p 443:443 \
    -p 80:80 \
    -p 7446:7446 \
    -p 7443:7443 \
    -p 8443:8443 \
    markdegroot/unifi-protect-arm64
```

Mit Autostart Flag

```
docker run -d --restart always --name unifi-protect  \
    --privileged \
    --tmpfs /run \
    --tmpfs /run/lock \
    --tmpfs /tmp \
    -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
    -v /unvr/srv:/srv \
    -v /unvr/data:/data \
    -v /unvr/persistent:/persistent \
    --network host \
    -e STORAGE_DISK=/dev/sda1 \
    -p 443:443 \
    -p 80:80 \
    -p 7446:7446 \
    -p 7443:7443 \
    -p 8443:8443 \
    markdegroot/unifi-protect-arm64 
```

Nun 9-10 Minuten warten

Dann unter [https://ip:443](https://ip:443) aufrufbar  
  
[![Auswahl_138.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-03/scaled-1680-/NmR2UpFEOm70JvIE-auswahl-138.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-03/NmR2UpFEOm70JvIE-auswahl-138.png)

Nun sind wir fertig.

Sollte Unifi Prtotect noch ewig beim Status starten stehen.  
Dann einloggen mittels

```
docker exec -it unifi-protect /bin/bash 
```

Nun den unifi-core neustarten

```
systemctl restart unifi-core
```

### Fehler:

#### Failed to create /init.scope control group:

Wenn wir folgende Fehler bekommenr (or any systemd error):

```
Failed to create /init.scope control group: Read-only file system
Failed to allocate manager object: Read-only file system
[!!!!!!] Failed to allocate manager object.
Exiting PID 1...

```

Die Grub config um diesen Eintrag erweitern.

```
/etc/default/grub
```

Inhalt:

```
GRUB_CMDLINE_LINUX_DEFAULT="quiet systemd.unified_cgroup_hierarchy=0"

Sollten schon andere parameter drin stehen diese logischerweise hinzufügen und nicht ersetzten...
```

nun update grub ausführen

```
update-grub
```

#### Certiface not Found

```
journalctl -u unifi-protect
```

Ausgabe:

```
[Error: ENOENT: no such file or directory, open '/data/unifi-core/config/unifi-core.crt'] {
Jul 07 10:18:36 unvr node[220735]:   errno: -2,
Jul 07 10:18:36 unvr node[220735]:   code: 'ENOENT',
Jul 07 10:18:36 unvr node[220735]:   syscall: 'open',
Jul 07 10:18:36 unvr node[220735]:   path: '/data/unifi-core/config/unifi-core.crt'
Jul 07 10:18:36 unvr node[220735]: }
Jul 07 10:18:36 unvr node[220735]: Unifi core certificate not found
```

# Werkseinstellungen - UNVR

Um auf Werkseinstellungen zurückzusetzten:

1. Reset Knopf 10 -15 Sekunden gedrückt halten
2. Oder per ssh einloggen, standard credentials  
    user : ubnt  
    Pass : ubnt  
    Dann  
      
    ```shell
     ubnt-systool reset2defaults
    ```
    
    ausführen um Werkseinstellungen durchzuführen

# Unifi-Protect - Fehlerseite an Error occoured

Feherwenn die Seite aufgerufen wird über https://ip:7443

[![Screenshot 2022-07-22 at 15-49-09 UniFi Protect.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/scaled-1680-/8gYkGxQA5tLqAqlK-screenshot-2022-07-22-at-15-49-09-unifi-protect.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/8gYkGxQA5tLqAqlK-screenshot-2022-07-22-at-15-49-09-unifi-protect.png)

Ab Fimrware version 2.0 wird das Dashboard über [https://ip/protect](https://ip/protect) aufgerufen  
Ist die Firmware version niedriger dann liegt es warscheinlich an den nächsten schritten:  
  
Ist das Gerät neu und noch nicht eingerichtet, ist das der falsche Port.  
Über [https://ip:443](https://ip:443) wird das Unifi OS eingerichtet dazu, das Unifi protect und UID.  
Zu finden unter Settings -&gt; Updates  
  
[![Screenshot 2022-07-22 at 16-55-57 UniFi OS - UNVR.png](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/scaled-1680-/Sq9JOesLtdKhqwAM-screenshot-2022-07-22-at-16-55-57-unifi-os-unvr.png)](https://wiki.hacker-net.de/uploads/images/gallery/2022-07/Sq9JOesLtdKhqwAM-screenshot-2022-07-22-at-16-55-57-unifi-os-unvr.png)

Im journalctl -u unifi-protect.service   
Sieht das ganze dann so aus

```shell
journalctl -u unifi-protect.service
-- Logs begin at Fri 2022-07-22 15:37:25 CEST, end at Fri 2022-07-22 15:48:32 CEST. --
Jul 22 15:39:27 UniFi-NVR systemd[1]: Starting UniFi Protect...
Jul 22 15:39:27 UniFi-NVR su[3483]: Successful su for postgres by root
Jul 22 15:39:27 UniFi-NVR su[3483]: + ??? root:postgres
Jul 22 15:39:27 UniFi-NVR su[3483]: pam_unix(su:session): session opened for user postgres by (uid=0)
Jul 22 15:39:28 UniFi-NVR su[3483]: pam_unix(su:session): session closed for user postgres
Jul 22 15:39:33 UniFi-NVR node12[3547]: CONFIG LOADED : /usr/share/unifi-protect/app/config/config.json
Jul 22 15:39:33 UniFi-NVR node12[3547]: Certificate /data/unifi-protect/data/unifi-protect.crt not found.... generating
Jul 22 15:39:33 UniFi-NVR node12[3547]: Using unifi core certificate
Jul 22 15:39:33 UniFi-NVR node12[3547]: {
Jul 22 15:39:33 UniFi-NVR node12[3547]:   crt: '/data/unifi-core/config/unifi-core.crt',
Jul 22 15:39:33 UniFi-NVR node12[3547]:   key: '/data/unifi-core/config/unifi-core.key',
Jul 22 15:39:33 UniFi-NVR node12[3547]:   deviceCrt: '/data/unifi-protect/data/devices.crt',
Jul 22 15:39:33 UniFi-NVR node12[3547]:   deviceKey: '/data/unifi-protect/data/devices.key'
Jul 22 15:39:33 UniFi-NVR node12[3547]: }
Jul 22 15:39:34 UniFi-NVR node12[3547]: Device certificate /data/unifi-protect/data/devices.crt not found.... generating
Jul 22 15:40:28 UniFi-NVR node12[3547]: Fri, 22 Jul 2022 13:40:28 GMT sequelize deprecated String based operators are now deprecated. Please use Symbol based operators for better security, read more at http://docs.sequelizejs.com/manual/t
Jul 22 15:40:42 UniFi-NVR sudo[4674]: unifi-protect : TTY=unknown ; PWD=/usr/share/unifi-protect ; USER=root ; COMMAND=/sbin/ubnt-tools id
Jul 22 15:40:42 UniFi-NVR sudo[4674]: pam_unix(sudo:session): session opened for user root by (uid=0)
Jul 22 15:40:42 UniFi-NVR sudo[4674]: pam_unix(sudo:session): session closed for user root
Jul 22 15:40:42 UniFi-NVR node12[3547]: (node:3547) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 11 save listeners added to [DecalObject]. Use emitter.setMaxListeners() to increase limit
Jul 22 15:40:42 UniFi-NVR systemd[1]: Started UniFi Protect.
Jul 22 15:40:47 UniFi-NVR node12[3547]: (node:3547) [DEP0005] DeprecationWarning: Buffer() is deprecated due to security and usability issues. Please use the Buffer.alloc(), Buffer.allocUnsafe(), or Buffer.from() methods instead.
root@UniFi-NVR:~# 

```

Dienst stoppen

```shell
service unifi-protect stop
```

Zum benutzer postgre wechseln

```shell
su - postgres
```

In die Datenbank einloggen

```
psql -p 5433
```

Auflisten ob es den Benutzer unifi-protect gibt

```shell
\du
```

Ausgabe:

```
postgres=# \du
                                     List of roles
   Role name   |                         Attributes                         | Member of 
---------------+------------------------------------------------------------+-----------
 postgres      | Superuser, Create role, Create DB, Replication, Bypass RLS | {}
 unifi-protect | Create DB                                                  | {}

```

Datenbank löschen

```
drop database "unifi-protect";
```

Und wenn es den Benutzer gab, den Benutzer löschen

```
drop user "unifi-protect";
```

Die SQL Console verlassen

```
\q
```

Als Benutzer postgres wieder abmelden

```
exit
```

Unifi protect wieder starten

```shell
service unifi-protect start
```

# Unifi Protect im Docker Container in einer amd64 Debian VM installieren mit qemu arm64

### Beschreibung:  


Unifi UNVR im Docker Conatiner auf einem x86/x864 Host. Wir können einmal das Image aus dem Docker Hub Pullen oder uns auch ein eigenes Image bauen. Erstmal die Variante mit dem Pullen.

### Vorraussetzung:

Einmal ein x86/x64 Host in dem Docker installiert ist.  
Eine zweite HDD mindesten 128 GB groß. würde aber eine Größe wählen die größer ist. Unbedingt eine Partioion und ext4 so kann sie on the fly vergrößert werden.

### Grundinstallation Docker und Einbungung Festplatte

Installation Docker, als root per ssh einloggen

```
apt install docker.io gdisk curl
#Installieren der quemu erweiterungen für arm64
apt-get install qemu qemu-system-arm binfmt-support qemu-user-static # Install the qemu packages
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes # This step will execute the registering scripts

```

Nun eine weitere Festplatte hinzufügen und diese Partitionieren wenn nicht schon geschehen  
Mit lsbk die neue Festplatte ermitteln

```
oot@unnvr:~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0    32G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0  30.5G  0 part /
└─sda3   8:3    0   976M  0 part [SWAP]
sdb      8:16   0   256G  0 disk 
sr0     11:0    1 329.3M  0 rom  

```

sdb ist die gewünschte Festplatte

nun partitonieren

```
gdisk /dev/sdb

dann o eingeben für neues layout
dann n eingeben für eine neue partition

alles durchentern

nun w für schreiben
und exit

```

Nun Dateisystem ext4 erzeugen auf sdb1

```
mkfs.ext4 /dev/sdb1
```

Nun ein verzeichnis für den mount point erstellen

```
mkdir /unvr
```

Nun die part UUID auselsen

```
blkid /dev/sdb1
/dev/sdb1: UUID="a396f93a-305e-4412-9040-5c51c9203f78" BLOCK_SIZE="4096" TYPE="ext4" PARTLABEL="Linux filesystem" 
PARTUUID="c9c72c32-250f-4b08-b74f-0aadc682d313"

```

Nun haben wir die UUID. Mit dieser serstellen wir einen automount in der fstab.

```
nano /etc/fstab
```

Dort tragen wir unsere UUID ein dann das Mountverzeichnis das Dateisystem

```
...
UUID=a396f93a-305e-4412-9040-5c51c9203f78  /unvr      ext4    defaults,errors=remount-ro 0       1
...
```

testen des mount points.  
Wenns geklappt hat können wir mit

```
mount /unvr
```

die Festplatte mounten.  
Das Ergebnis ob gemountet sehen wir durch lsblk

```
lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0    32G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0  30.5G  0 part /
└─sda3   8:3    0   976M  0 part [SWAP]
sdb      8:16   0   256G  0 disk 
└─sdb1   8:17   0   256G  0 part /unvr
sr0     11:0    1 329.3M  0 rom 
```

Die Grub config um diesen Eintrag erweitern.

```
nano /etc/default/grub
```

Inhalt:

```
GRUB_CMDLINE_LINUX_DEFAULT="quiet systemd.unified_cgroup_hierarchy=0"

Sollten schon andere parameter drin stehen diese logischerweise hinzufügen und nicht ersetzten...
```

nun update grub ausführen

```
update-grub
```

Neustarten. Achtung bei einem neustart könnte die sda / sdb reihenfolge anders sein.

```
reboot
```

Netzwerkkarten Namen anpassen sonst kann man sich nicht mit einem Cloud Knto von Unifi anmelden. Der Anme muss enp0s2 lauten

```
nano /etc/systemd/network/99-enp0s2.link
```

  
Die MACAdress mit der MAc Adresse unserer Netzwerkkarte austauschen.  
Diese bekommt man mit

```
ip a
```

raus

Inhalt:

```
[Match]
MACAddress=xx:xx:xx:xx:xx:xx

[Link]
Name=enp0s2

[Network]
DHCP=yes
```

nun

```
update-initramfs -u
```

ausführen und neustarten.

### Erstellen der Docker instanz durch pullen von dockerhub  


Folgendes script laufen lassen, die Pfade sind angepasst auf /unvr  
Soll der conateiner automatisch gestartet werden an den Befehl noch

```
--restart always hinter -d 
dranhängen
```

Hiernochmals darauf achten das bei STOARGE\_DISK=/dev/sdb1 oder sdb2 die richtige partion angegeben wird. Denn nach dem neustart können diese sich ändern

```
docker run -d --name unifi-protect  \
    --privileged \
    --tmpfs /run \
    --tmpfs /run/lock \
    --tmpfs /tmp \
    -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
    -v /unvr/srv:/srv \
    -v /unvr/data:/data \
    -v /unvr/persistent:/persistent \
    --network host \
    -e STORAGE_DISK=/dev/sda1 \
    -p 443:443 \
    -p 80:80 \
    -p 7446:7446 \
    -p 7443:7443 \
    -p 8443:8443 \
    snowsnoot/unifi-unvr:latest
```

Mit Autostart Flag

```
docker run -d --restart always --name unifi-protect  \
    --privileged \
    --tmpfs /run \
    --tmpfs /run/lock \
    --tmpfs /tmp \
    -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
    -v /unvr/srv:/srv \
    -v /unvr/data:/data \
    -v /unvr/persistent:/persistent \
    --network host \
    -e STORAGE_DISK=/dev/sda1 \
    -p 443:443 \
    -p 80:80 \
    -p 7446:7446 \
    -p 7443:7443 \
    -p 8443:8443 \
    snowsnoot/unifi-unvr:latest
```

Nun 9-15 Minuten warten

mit folgendem Befehl kann man sich in den Container einloggen und zum beispiel den service status sich anzuschauen.

```
docker exec -it unifi-protect bash
```

Nun

```
service unifi-protect status


oder


journalctl -u unifi-protect
```

Nach 9-15 Minuten sollte die Website aufrufbar sein  
Dann unter [https://ip:443](https://ip:443) aufrufbar  
  
[![Auswahl_138.png](https://wiki.hacker-net.de/uploads/images/gallery/2023-03/scaled-1680-/NmR2UpFEOm70JvIE-auswahl-138.png)](https://wiki.hacker-net.de/uploads/images/gallery/2023-03/NmR2UpFEOm70JvIE-auswahl-138.png)

Nun sind wir fertig.

Sollte Unifi Prtotect noch ewig beim Status starten stehen.  
Dann einloggen mittels

```
docker exec -it unifi-protect /bin/bash 
```

Nun den unifi-core neustarten

```
systemctl restart unifi-core
```

### Fehler:

#### Failed to create /init.scope control group:

Wenn wir folgende Fehler bekommenr (or any systemd error):

```
Failed to create /init.scope control group: Read-only file system
Failed to allocate manager object: Read-only file system
[!!!!!!] Failed to allocate manager object.
Exiting PID 1...

```

Die Grub config um diesen Eintrag erweitern.

```
/etc/default/grub
```

Inhalt:

```
GRUB_CMDLINE_LINUX_DEFAULT="quiet systemd.unified_cgroup_hierarchy=0"

Sollten schon andere parameter drin stehen diese logischerweise hinzufügen und nicht ersetzten...
```

nun update grub ausführen

```
update-grub
```

#### Certiface not Found

```
journalctl -u unifi-protect
```

Ausgabe:

```
[Error: ENOENT: no such file or directory, open '/data/unifi-core/config/unifi-core.crt'] {
Jul 07 10:18:36 unvr node[220735]:   errno: -2,
Jul 07 10:18:36 unvr node[220735]:   code: 'ENOENT',
Jul 07 10:18:36 unvr node[220735]:   syscall: 'open',
Jul 07 10:18:36 unvr node[220735]:   path: '/data/unifi-core/config/unifi-core.crt'
Jul 07 10:18:36 unvr node[220735]: }
Jul 07 10:18:36 unvr node[220735]: Unifi core certificate not found
```

# Unifi G4 Pro (Standalone Mode) Zeitstempel ändern

Beschreibung:

Wird eine Unifi Kamera in Standolane betrieben, kann man das Format des Zeitstempels nicht ändern, zumindest nicht über die GUI.

Hier eine Anleitung wie wir dieses per SSH ändern können.

Abänderung:

Per ssh auf die Kamera einloggen. Standard   
user: ubnt   
pass : ubnt

```
ssh ubnt@192.168.178.68
The authenticity of host '192.168.178.68 (192.168.178.68)' can't be established.
ECDSA key fingerprint is SHA256:woZlLB1CI9VRk7g9+AqFQ+lzeil1N9Rvgdnct2Hj6r0.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.178.68' (ECDSA) to the list of known hosts.
ubnt@192.168.178.68's password: 

```

Nach dem wir eingeloggt sind, auf das wurzelverzeichnis / wechseln und nach der config siuchen. Ist jedesmal nach firmware wieder anders.

```
cd /
find -name config
```

# Gruppen

Beschreibung:

Um Verschiedenen Benutzern verschiedene Kameras zuzuweisen müssen unter Protect in Admin und Roles Gruppen definiert werden.  
Diesen gruppen können dann Kameras hinzugefügt werden

Einrichtung:

Auf Protect -&gt; Dann unten das Zahnrad für Einstellungen -&gt; Admin &amp; Users

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/IhE4sN60wnF8AR8T-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/IhE4sN60wnF8AR8T-grafik.png)

Nun Auf Manage Roles klicken um vorhandene Rollen zu editieren

[![grafik.png](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/scaled-1680-/lJAw9IHdzNPfnVua-grafik.png)](https://wiki.hacker-net.de/uploads/images/gallery/2025-05/lJAw9IHdzNPfnVua-grafik.png)