Home Assistant, OpenHAB, Node-RED, ioBroker, MotionEye, ZoneMinder, Frigate, iSpy Agent, Kerberos Containerized (Docker)

Smarthome Cheat Sheet (Docker Edition)
Home Assistant
docker pull homeassistant/home-assistant:stable
mkdir -p /opt/homeassistant/config
chmod -R 775 /opt/homeassistant
docker run -d --rm --privileged --net=host --name='home-assistant' -e 'TZ=Europe/Berlin' -v /opt/homeassistant/config:/config homeassistant/home-assistant:stable
http://localhost:8123
Node-RED
docker pull nodered/node-red:latest
mkdir -p /opt/nodered/data
chmod -R 775 /opt/nodered
chown 1000:1000 -R /opt/nodered 
docker run -d --rm --privileged --net=host -v /opt/nodered/data:/data --name nodered nodered/node-red
http://localhost:1880
Theming
cd /opt/nodered/data
npm install @node-red-contrib-themes/midnight-red
Add the following to the editorTheme section of your settings.js:
editorTheme: {
    projects: {
            // To enable the Projects feature, set this value to true
            enabled: false
    }
}
Change to ->
// Customising the editor
    editorTheme: {
        page: {
            css: '/opt/nodered/data/node_modules/@node-red-contrib-themes/midnight-red/theme.css'
        }
    }
OpenHAB
docker pull openhab/openhab:latest-alpine
groupadd -g 9001 openhab
useradd -g 9001 openhab
usermod -a -G openhab myownuser
mkdir -p /opt/openhab/{openhab_addons,openhab_conf,openhab_userdata}
chmod -R 775 /opt/openhab
docker run \
        --name openhab \
        --net=host \
        --privileged \
         --rm \
        -v /etc/localtime:/etc/localtime:ro \
        -v /opt/openhab/openhab_addons:/openhab/addons \
        -v /opt/openhab/openhab_conf:/openhab/conf \
        -v /opt/openhab/openhab_userdata:/openhab/userdata \
        -d \
        openhab/openhab:latest-alpine
http:localhost:8080
OpenHAB CLI
docker exec -it openhab /openhab/runtime/bin/client -p habopen
Updating the Image
Use the following steps to update the docker image and all installed add-ons.
Stop the container:
docker stop openhab
Delete the container:
docker rm openhab
Delete the contents of /opt/openhab/userdata/cache and /opt/openhab/userdata/tmp
rm -rf /opt/openhab/userdata/cache
rm -rf /opt/openhab/userdata/tmp
Pull down the latest image:
docker pull openhab/openhab:`latest`
Restart the container using the full command above.
ioBroker
docker pull iobroker/iobroker:latest
And and run it:
docker run \
  --net=host \
  --privileged \
  --rm \
  --name iobroker \
  -v /opt/iobroker:/opt/iobroker \
  -v /opt/iobroker/home:/home/iobroker \
  --detach=true \
  iobroker/iobroker:latest
http://localhost:8081
MotionEye
docker pull ccrisan/motioneye:master-amd64
And and run it:
docker run --name='motioneye' \
    --net=host \
    --privileged \
    --rm \
    --hostname='motioneye' \
    -v /etc/localtime:/etc/localtime:ro \
    -v /opt/motioneye:/etc/motioneye \
    -v /opt/motioneye/lib:/var/lib/motioneye \
    --security-opt label=disable \
    --detach=true \
    ccrisan/motioneye:master-amd64
http://localhost:80
ZoneMinder
docker pull dlandon/zoneminder:latest
And and run it:
docker run -d --name="zoneminder" \
    --privileged="false" \
    --shm-size="5G" \
    --net=host \
    --rm \
    -e TZ="America/New_York" \
    -e PUID="99" \
    -e PGID="100" \
    -e INSTALL_HOOK="0" \
    -e INSTALL_FACE="0" \
    -e INSTALL_TINY_YOLOV3="0" \
    -e INSTALL_YOLOV3="0" \
    -e INSTALL_TINY_YOLOV4="0" \
    -e INSTALL_YOLOV4="0" \
    -e MULTI_PORT_START="0" \
    -e MULTI_PORT_END="0" \
    -v "/opt/zoneminder":"/config":rw \
    -v "/opt/zoneminder/data":"/var/cache/zoneminder":rw \
    dlandon/zoneminder
docker run -d --name="zoneminder" \
    --net="bridge" \
    --privileged="false" \
    --shm-size="5G" \
    -p 9000:9000/tcp \
    -p 443:443/tcp \
    -p 80:80/tcp \
    -e TZ="America/New_York" \
    -e PUID="99" \
    -e PGID="100" \
    -e INSTALL_HOOK="0" \
    -e INSTALL_FACE="0" \
    -e INSTALL_TINY_YOLOV3="0" \
    -e INSTALL_YOLOV3="0" \
    -e INSTALL_TINY_YOLOV4="0" \
    -e INSTALL_YOLOV4="0" \
    -e MULTI_PORT_START="0" \
    -e MULTI_PORT_END="0" \
    -v "/opt/zoneminder":"/config":rw \
    -v "/opt/zoneminder/data":"/var/cache/zoneminder":rw \
    dlandon/zoneminder
http://localhost:80
Frigate NVR
docker pull ghcr.io/blakeblackshear/frigate:stable
mkdir -p /opt/frigate/storage
nano /opt/frigate/config.yml
mqtt:
  host: <ip of your mqtt server>
  user: <username>
  password: <password>
cameras:
  fullhd31: # <------ Name der Kamera
    ffmpeg:
      inputs:
        - path: rtsp://admin:instar@192.168.2.31:554/11 # <----- RTSP Pfad der Kamera
          roles:
            - detect
            - rtmp
    detect:
      width: 1920 # <---- Auflösung des gewählten RTSP Streams
      height: 1080 # <---- Auflösung des gewählten RTSP Streams
  wqhd120: # <------ Name der Kamera
    ffmpeg:
      inputs:
        - path: rtsp://admin:instar@192.168.2.120:554/livestream/12 # <----- RTSP Pfad der Kamera
          roles:
            - detect
            - rtmp
    detect:
      width: 1920 # <---- Auflösung des gewählten RTSP Streams
      height: 1080 # <---- Auflösung des gewählten RTSP Streams
docker run -d \
  --name frigate \
  --restart=unless-stopped \
  --mount type=tmpfs,target=/tmp/cache,tmpfs-size=1000000000 \
  --device /dev/bus/usb:/dev/bus/usb \
  --device /dev/dri/renderD128 \
  --shm-size=64m \
  -v /opt/frigate/storage:/media/frigate \
  -v /opt/frigate/config.yml:/config/config.yml:ro \
  -v /etc/localtime:/etc/localtime:ro \
  -e FRIGATE_RTSP_PASSWORD='password' \
  -p 5000:5000 \
  -p 1935:1935 \
  ghcr.io/blakeblackshear/frigate:stable
http://localhost:5000
Docker-Compose
nano /opt/frigate/docker-compose.yml
version: "3.9"
services:
  frigate:
    container_name: frigate
    privileged: true # dies ist nicht für alle Konfigurationen erforderlich
    restart: unless-stopped
    image: ghcr.io/blakeblackshear/frigate:0.12.0-beta5
    shm_size: "64mb" # Update für Ihre Kameras basierend auf der obigen Berechnung
    devices:
      - /dev/bus/usb:/dev/bus/usb # besteht den USB Coral, muss für andere Versionen modifiziert werden
      - /dev/apex_0:/dev/apex_0 # peine PCIe-Koralle einbauen, folgen Sie den Anweisungen des Treibers hier https://coral.ai/docs/m2/get-started/#2a-on-linux
      - /dev/dri/renderD128 # für intel hwaccel, muss für Ihre Hardware aktualisiert werden
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /opt/frigate/config.yml:/config/config.yml:ro
      - /opt/frigate/storage:/media/frigate
      - type: tmpfs # Optional: 1 GB Arbeitsspeicher, reduziert den Verschleiß von SSD/SD-Karten
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - "5000:5000"
      - "1935:1935" # RTMP feeds
    environment:
      FRIGATE_RTSP_PASSWORD: "password"
iSpy Agent DVR
git clone https://github.com/mpolinowski/agent-dvr-docker.git && cd agent-dvr-docker
docker build -t agent-dvr .
sudo mkdir -p /opt/dvr-agent/{config,media,commands}
sudo chown -R myuser /opt/dvr-agent/*
docker run --restart=unless-stopped -d -p 8090:8090 -p 3478:3478/udp -p 50000-50010:50000-50010/udp \
    -v /opt/dvr-agent/config/:/agent/Media/XML/ \
    -v /opt/dvr-agent/media/:/agent/Media/WebServerRoot/Media/ \
    -v /opt/dvr-agent/commands:/agent/Commands/ \
    -e TZ=Europe/Berlin \
    --name agent-dvr agent-dvr:latest
http://localhost:8090
Kerberos.io
docker pull kerberos/kerberos:latest
docker run --name mycamera -p 8080:80 -p 8889:8889 -d kerberos/kerberos:latest
mkdir -p /opt/kerberos/{config,capture,logs,webconfig}
docker run --name garage \
    -p 8080:80 -p 8889:8889 \
    -v /opt/kerberos/config:/etc/opt/kerberos/config \
    -v /opt/kerberos/capture:/etc/opt/kerberosio/capture \
    -v /opt/kerberos/logs:/etc/opt/kerberosio/logs \
    -v /opt/kerberos/webconfig:/var/www/web/config \
    -d kerberos/kerberos
http://192.168.2.111:8080