Ich war zu faul, das noch mal in einer umfassenden Anleitung darstellen, und außerdem wäre das schon wieder so eine sschuste-Lösung, die dann nur von mir supported werden kann. Darauf habe ich nun aber überhaupt keine Lust, und da sich heutzutage jedermann eine fertige Homebridge in 30 Minuten erstellen kann, ist es in meinen Augen auch nicht notwenig.
Die Docker-Lösung hat so ihre Vorteile und auch - wer hätte es gedacht? - ihre Nachteile. Der Vorteil ist, dass man weniger Zeugs backupen muss, was bei mir aufgrund des komplexen Setups eine große Rolle spielt. Der Nachteil ist, dass ich bei Updates von Node immer ein paar Wochen hinterher hänge, aber das stört mich nicht sonderlich.
Ich versuch's mal in ganz kurzer Form, was eigentlich nicht geht, weil das Arbeiten mit Docker ein paar Kenntnisse braucht.
Um einen Docker-Container zu betreiben, braucht man das Programm Docker, dass man auf dem Raspi installieren muss. Theoretisch könnte man das auch auf einem Mac oder Windows-PC installieren, aber aus bestimmten Gründen, auf die ich hier nicht eingehen werde, funktioniert das nicht für eine Homebridge. Also braucht man ein Linux-Betriebssystem für Docker und der Raspi hat eins. Manche NAS haben schon ein Docker drauf und dann kann man auf den Raspi verzichten.
Hat man Docker installiert, dann braucht man ein Homebridge-Docker-Image (ist was anderes als das Homebridge-Image, dass man sonst verwendet). Mit der Docker-Software wird das Homebridge-Docker-Image aus dem Netz heruntergeladen und gestartet. Sobald es gestartet ist, spricht man von einem Docker-Container.
Das Homebridge-Docker-Image enthält ein Linux-Betriebssystem und die Homebridge-Software. Das mitgelieferte Linux ist so minimiert, dass es gerade ausreicht, dass die Homebridge läuft. Das macht das Docker-Image sehr klein, viel viel kleiner als das Image, das man sich auf eine SD-Card flasht, geradezu winzig dagegen. Dafür kann es aber auch nur die Homebridge betreiben und nichts anderes. Wenn man noch was anderes braucht wie beispielsweise einen MQTT-Broker, dann kann das nicht auf dem laufenden Homebridge-Docker-Container installiert werden. Achtung Spoiler: dann installiert man neben dem Homebridge-Container noch einen MQTT-Container.
Das ist der wesentliche Unterschied zu dem Homebridge-Image, das man sich auf die SD-Card flasht: hier kann man nur ein einziges vorgefertigtes System auf dem Raspi verwenden. Mit Docker kann man viele vorgefertigte Systeme auf dem Raspi verwenden.
Docker hat keine Benutzeroberfläche, die muss man extra installieren. Die großen Kinder verzichten darauf und machen alles per Befehlszeile. Alte Säcke wie wir, die sich nix merken können, verwenden was zum Klicken. Nach der Installation von Docker empfiehlt sich die Installation von Portainer - ebenfalls per Docker in einen laufenden Docker-Container.
Ich empfehle für die Installation eine frische SD-Card, so dass deine jetzige Homebridge-Installation unbehelligt bleibt. Ich empfehle den Einsatz des Programms Raspberry Pi Imager zum Vorbereiten der frischen SD-Card. Ich empfehle die Wahl des Betriebssystems Raspberry Pi OS Lite (findet sich unter Raspberry Pi OS (other)).
Also:
Login auf den Raspi und Docker installieren:
sudo apt-get install docker
Ein paar Verzeichnisse anlegen (genau diese Stelle ist die sschuste-Lösung):
sudo mkdir -p /docker/volumes /docker/portainer
Eine Docker-Installationsdatei schreiben:
sudo nano /docker/portainer/compose.yaml
Hier einfügen:
services:
portainer:
container_name: portainer
image: portainer/portainer-ce:latest
pull_policy: always
restart: always
network_mode: bridge
ports:
- 8000:8000
- 9443:9443
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- /docker/volumes/portainer/data:/data
environment:
- TZ="Europe/Berlin"
Alles anzeigen
Abspeichern und nano verlassen.
Portainer installieren und starten:
docker-compose -f /docker/portainer/compose.yaml up -d
Das dauert ein wenig und macht komische Zahlenreihen auf den Bildschirm. Lässt einen vor unbedarften Computernutzern wie einen Superhelden aussehen. Man kann sich den laufenden Container anzeigen lassen mit docker ps.
Jetzt ist die Klinik-Bunti-Oberfläche eingerichtet und kann genutzt werden. Wir nutzen die jetzt zum installieren des Homebridge-Images.
Bevor du weiter machst, solltest du deine alte Homebridge stoppen.
Einen Browser aufrufen, dort in die Adresszeile eingeben:
https://IP-DES-RASPI:9443
Jetzt sollte sich was rühren. Ich hab vergessen, was genau. Ein Login, du musst irgendwie ein Passwort setzen, ich weiß es nicht mehr. Auf jeden Fall landest du irgendwann hier (siehe Bild unten):
- Klicke Live Connect.
- Klicke links im blauen Bereich auf
- Klicke rechts oben auf den blauen Button Add Stack.
- Gib unter Name Homebridge ein.
- Klicke auf Web editor.
- Füge unten im Web-Editor ein:
services:
homebridge:
container_name: homebridge
image: homebridge/homebridge:latest
pull_policy: always
restart: always
network_mode: host
volumes:
- /docker/volumes/homebridge/config:/homebridge
- /docker/volumes/homebridge/root:/root
logging:
driver: json-file
options:
max-size: "10mb"
max-file: "1"
environment:
- HOMEBRIDGE_INSECURE=1
- TZ=Europe/Berlin
Alles anzeigen
- Klicke ganz unten den blauen Button Deploy the stack.
- Warten. dauert ein paar Minuten. Irgendwann wird dir signalisiert, dass der Container läuft.
- Fahre mit der normalen Homebridge-Arbeit fort, also einloggen über den Browser etc. Spiele das Backup deiner alten Homebridge ein.
So. Das alles hab ich jetzt ohne es auszuprobieren geschrieben. Vielleicht fehlt was. Vielleicht geht irgendwas anders. Versuchs mal.