IoBroker unter Docker auf der Synology DiskStation

Kurze Einleitung

Nachdem meine ioBroker-Installation mit der Zeit immer weiter gewachsen ist und damit auch immer ressourcenhungriger wurde, reichten mir RaspberryPi und Cubietruck bald nicht mehr aus. Ich brauchte eine neue, leistungsfähigere Lösung.

Zum Glück hatte ich mir kurze Zeit vorher bereits eine DiskStation 1515+ von Synology zugelegt um meinen alten Linux-Server (mit all seinen Datei- und Medien-Diensten, sowie dem TV-Server) abzulösen. Also kurzerhand den Arbeitsspeicher der DS auf 6 GB aufgerüstet und… ja, Problem. In der neuen Version 6 des DSM war die Installation von VirtualBox (welches ich auf meinem Server genutzt hatte) nicht mehr möglich. Man konnte also keinen virtuellen ioBroker Server auf der DS laufen lassen. Das Aus für meinen Virtualisierungsplan? Nein.

Eine kurze Recherche mit den Stichworten “Virtualisierung” und “Synology” später stieß ich auf das Projekt Docker. Docker ist eine Virtualisierungsplattform, welche einen etwas anderen Ansatz verfolgt als vmWare, VirtualBox oder MS Hyper-V. Unter Docker werden nicht mehr ganze virtuelle Server erstellt, sondern lediglich sogenannte Container, die alle notwendigen Daten enthalten um eine einzelne Anwendung oder einen einzigen Dienst zum Laufen zu bekommen und zur Nutzung bereitzustellen. Diese Container werden, teilweise bereits fertig konfiguriert, als Images zum Download bereitgestellt.

Hinweis: Weitere Infos zu Docker hier (docker.com) oder hier (Wikipedia)

Also habe ich mich ein wenig in das Thema eingelesen und ein paar Tests gemacht. Ein ioBroker-Docker-Image gab es zwar schon, allerdings hatte ich hier einige Probleme benötigte Pakete für einzelne Container nach zu installieren. Ich wollte etwas was sich leichter administrieren lässt, also näher an einer virtuellen Maschine ist. Beim Durchwühlen verschiedenster Docker-Tutorials stolperte ich irgendwann über das Debian-Image. Einige Tests später stand fest: Es verhält sich in etwa so, wie eine Debian-Installation (z.B. Raspbian) auf dem RaspberryPi. Nachdem ich dann noch verstanden hatte, wie das mit dem Dockerfile funktioniert, dachte ich mir: So ein Image erstellen kannst du auch.
Gesagt, getan. Hier probiert und da getestet und letztendlich das Resultat auf Github und im Docker Hub veröffentlicht.

Wer sich also für den Quellcode interessiert, der wird auf Github fündig. Wen nur das fertige Image interessiert, der ist im Docker Hub gut aufgehoben.

Nun Gut, da ich meine Bastelei nicht für mich behalten wollte, habe ich ein entsprechendes Thema im ioBroker-Forum erstellt. Leider ist so ein Thread nicht unbedingt zur Dokumentation einer solchen Lösung geeignet. Daher jetzt hier einmal die offizielle Anleitung zu meinem ioBroker-Docker-Image. Falls du Probleme hast, oder Unterstützung benötigst, nutze gerne die Kommentare oder den Thread im ioBroker-Forum. Ich lese beides. 🙂

Der Übersichtlichkeit halber habe ich meine Anleitung hier auf mehrere Seiten verteilt. Das Inhaltsverzeichnis befindet sich immer am Seitenanfang, aber das hast du ja sicher schon gesehen…

Überarbeitung am 10.12.2017

Aufgrund kleinerer Probleme mit dem Docker Image musste ich einige Änderungen vornehmen. Hierdurch hat sich auch das Tutorial geringfügig geändert. So sind zum Beispiel die Befehle „iobroker stop“ und „iobroker start“ nur noch begrenzt nutzbar. Weiterhin ist es ab sofort möglich verschiedene Versionen des Docker Images herunter zu laden. Entsprechende Hinweise zu den Veränderungen finden sich an der jeweiligen Stelle im Tutorial.

Überarbeitung am 21.08.2018

Aus den bisherigen Diskussionen und Kommentaren habe ich einen kleinen Troubleshooting-Guide erstellt der neben häufig auftretenden Fehlerbildern auch wichtiges Basiswissen zu ioBroker, Docker & Co beinhaltet. Das Troubleshooting habe ich als zusätzliche Seite an den Artikel angehängt und werde es bei Bedarf entsprechend erweitern.

Überarbeitung am 05.12.2018

Mit dem heutigen Update des Docker-Container-Images auf Version 2 wurde die verwendete Node-Version auf node8 angehoben. Auf Neuinstallationen hat dies keine Auswirkungen, wohl aber auf Updates bestehender Installationen von vor dem 05.12.2018. Nach dem Wechsel der Node-Version muss nämlich innerhalb des ioBrokers das Script „reinstall.sh“ ausgeführt werden, um die Installierten Adapter mit Node8 verwenden zu können. Mehr Informationen dazu gibt es in der offiziellen ioBroker Dokumentation.

About the author: André

André
Familienvater und bekennender Technik-Nerd. Beruflich unterwegs als Fachinformatiker für Systemintegration bei einem deutschen IT-Dienstleister. In der Freizeit begeisterter "Home-Automatisierer" bzw. "Smarthome-Bastler" und (zumindest bei schönem Wetter) gerne mit der Familie in verschiedenen Outdooraktivitäten unterwegs.

110
Hinterlasse einen Kommentar

avatar
10000
42 Comment threads
68 Thread replies
6 Followers
 
Most reacted comment
Hottest comment thread
42 Comment authors
EnricoStefanAndréGiuseppeWilli Recent comment authors
  Subscribe  
Benachrichtige mich zu:
Stefan
Gast
Stefan

Hallo,
ich würde gerne nach deiner Anleitung vorgehen, jedoch scheitert es bereits am Zugang zu iobroker…

Ich habe alles so gemacht wie du beschrieben hast, aber der zugriff via ip:8081 ist nicht möglich (Fehler: Verbindung fehlgeschlagen)

Habe ich irgendetwas grundlegendes vergessen/übersehen?

Ach, ich habe auf der DS2415+ alle Updates von DSM installiert sowie die aktuelle Version von Docker.

Gruß
Stefan

Willi
Gast
Willi

Hi, ich nutze den Docker-Container in dem abschotten Modus (siehe „ioBroker-Container vom Netzwerk abschotten“). Nun kann man im ioBroker ein Login einrichten und hierfür ist ein „let’s encrypt zertifikat“ notwendig. Weist du wie ich das auf der Synology einrichte? Ich meine es sollte über die „Reverse Proxy“ Funktion der Synology gehen, kenne mich damit aber nicht aus. Dabei habe ich mir vorgestellt den ioBroker über „subsub.sub.domain.de“ zu erreichen. Wenn du das weist, könntest du dein Tutorial hierfür ergänzen? P.S. Wie man ein „let’s encrypt zertifikat“ für die Synology einrichtet weiß ich. Mir geht es darum wie ich das Zertifikat auf… Read more »

Enrico
Gast
Enrico

Hallo & Danke für die bisherige Anleitung. Ich habe dank dieser, bis jetzt alles super hinbekommen.

Soeben habe ich aber auf Version 2.0 geupdated. Leider gab es hier Probleme mit dem Recompilling für Node8. Hier war es leider nicht möglich Befehle, wie „reboot“ abzusetzen. Auch „sudo chmod +x reinstall.sh und ./reinstall.sh“ liefen mit der Meldung, dass diese Datei nicht vorhanden ist. Hierdurch funktioniert augenscheinlich der HomeMatic ReGaHSS Adapter nicht mehr.

Kannst du mir hier bitte eine kurze Hilfestellung geben, was hier schief gelaufen ist.
Lieben Dank für Dein bisheriges Engagement.

Viele Grüße
Enrico

Carsten
Gast
Carsten

Hallo Andre,
vielen Dank für deine Mühen ein tolles Image für Synology bereitzustellen! Da ich mit meiner bisherigen Installation einpaar Schwierigkeiten habe, wollte ich einen neuen iobroker aufsetzen. Habe die aktualisierte Anleitung (meiner Meinung nach) beachtet, allerdings startet der Adminadapter nicht auch wird der Befehl iobroker nicht gefunden. Hast du eine Idee woran das liegen könnte?

Vielen Dank und Gruß Carsten

Giuseppe
Gast
Giuseppe

Hallo Andre, danke für diesen Container. Leider habe ich Startschwierigkeiten. Habe ein Ubuntu System und will alle größeren Software Pakete auf Docker umziehen.
Wenn ich dein Image starte ist /opt/iobroker ziemlich leer. Die Binary ioBroker ist zumindest nicht vorhanden und wird mir auch so im Log angezeigt: Das startup_script findet die Datei nicht.

Was mache ich falsch? Muss ich speziell etwas beachten wenn ich es nicht auf einer Diskstation nutze? Für die Konfiguration nutze ich Portainer, was mir die selben Möglichkeiten bietet wie die DS.

Danke & Gruß,
Giuseppe

Jan
Gast
Jan

Hallo, erstmal Danke für die Klasse Anleitung.

Es scheint auch alles zu funktionieren. Datensicherung wird auch angelegt.
Jedoch bekomme ich immer eine Fehlermeldung, das in ein Fehler im Skript währe.


Standardausgabe/Fehler:
/volume1/docker/Backup-ioBroker.sh: line 1: #!/bin/bash: No such file or directory #####################################################
############## Backupscript gestartet. ############## #####################################################

Der ioBroker-Container (ioBroker) in Docker wird

Woran kann das liegen? Was mache ich falsch?

Netten Gruß
Jan

Christian
Gast
Christian

Hallo

Habe alles soweit hinbekommen.
Danke dafür!

Nur beim automatischen Backup scheitere ich.

Wenn ich das Backup starte, bekomme ich folgende Fehlermeldung per Mail.

Standardausgabe/Fehler:
sh: /volume1/docker/iobroker_backup/backupscript.sh: /bin/bash^M: bad interpreter: No such file or directory

Könntest du mir bitte weiterhelfen?

Danke

Christof
Gast
Christof

Hi,
mir dieser super Anleitung habe ich es auch geschafft, auf meiner DS218+ den ioBroker container zu installieren.
Nun wollte ich mich an das Backup machen und sehe im Backupskript, dass ioBroker vorher idealerweise gestoppt werden sollte.
Da dachte ich mir, automatisier das doch über crontab.
Zu meiner Überraschung habe ich festgestellt, dass es crontab nicht gibt – nur cron.daily.

Ist es entweder unkritisch, ioBroker „abzuschießen“ oder gibt es eine andere pfiffige Idee?

Und vielen
Dank nochmal für die Anleitung

Christof

Jörg F.
Gast
Jörg F.

Hallo André, vielen Dank für die Mühe mit der Anleitung, sie hat mich immerhin schon mal meinem Vorhaben weitergebracht ioBroker auf meinem Qnap Hs 251 NAS laufen zu lassen. An einer Installation in einer VM bin ich schon vor Monaten gescheitert, da Laie. Iobroker läuft mit Hilfe Deiner Anleitung, funktioniert aber nicht. Vielleicht brauche ich nur einen kleinen Anfängerschubs, damit ich mich selbst einarbeiten kann. Ich hatte gehofft Dir fällt dazu etwas ein. Schöne Grüße Joerg Ich konnte iobroker.admin 3.4.7 installieren und starten. Qnap HS-251 2GB Firmware 4.3.5.0728 Container Station Version 1.9.3527 (2018/09/26) Image buanet/iobroker (latest) vom 27.10.2018 Netzwerk Bridge… Read more »

Anni
Gast
Anni

Hallo, die Anleitung ist sehr gut geschrieben, vielen Dank dafür.
Leider hat sie bei mir nicht funktioniert, obwohl ich genau die gleiche Hardwarekonstellation vorzuliegen habe.
Der Umzug soll von einem Raspi3 auf eine DS218+ erfolgen. Das gepackte Archiv habe ich via Filezilla in das Transferverzeichnis schieben können. Das Entpacken erfolgte jedoch nicht in das richtige Zielverzeichnis „/“, sondern es landete im Transferverzeichnis. Von dort konnte ich es via „cp -a…“ in das /-Verzeichnis kopieren.
Nun funktionierte aber das „host this“ nicht. Es erscheint: „No connection to states 127.0.0.1:6379[redis]“
Was kann ich bitte tun?

JohnDoe
Gast
JohnDoe

Hi,

erstmal will ich mich bei Dir bedanken. Ich nutze Deinen Docker Container und bin sehr zufrieden. Das einzige was ich aktuell nicht zum laufen kriege, ist der firetv adapter. Da muss man adb einbauen und ich habe die plattform-tools von android entpackt und den pfad eingebunden. Hier meine Fehlerbeschreibung: https://github.com/soef/ioBroker.firetv/issues/18

Gruss

Karl
Gast
Karl

Hallo Andre,

danke erstmal für das Docker Image – es läuft sehr gut auf meiner 916+.
Derzeit kämpfe ich aber damit, dass das IOBroker zum MI Gateway keine Verbindung aufbaut.
Netzwerkadresse und Key habe ich geprüft, die Lokale LAN Kommunikation erlaubt ( Mi APP ) – Port 9898 und 4321 UDP habe ich geöffnet .. es kommt aber trotzdem keine Verbindung zu Stande. Ich habe schon alles probiert.
Kann es mit der AES Encryption zu tun haben? – fehlt eventuell im Image eine Modul dazu?

Wäre für jeden Hinweis dankbar.

Viele Grüße und Danke,
Karl

matze
Gast
matze

Hi,

Habe nun schon seit mehreren Monaten den Iobroker auf dem Docker ohne Probleme am laufen.
Meine Frage wäre noch ob es eine Möglichkeit gibt ein USB Stick z.B. cc 2531 für das Zigbee Protokoll mit auf dem Docker und Iobroker laufen zu lassen?

Alex
Gast
Alex

Hallo André,

ich habe vor Docker auf einen Intel NUC laufen zu lassen. Kann ich dein Docker Image dafür auch nutzen oder ist es nur für die Synology gedacht?

Wo ist der Unterschied zu diesem Docker hier: https://github.com/ioBroker/ioBroker.docker oder diesem hier: https://github.com/Locke/docker-iobroker

Danke und Gruss
Alex

Jan
Gast
Jan

Moin André,
echt – geile Sache! Der Umzug vor Monaten von einem Pi auf die Diskstation mit Deinem Image und Deiner Anleitung klappte genau so reibungslos wie seitdem mehrere Updates des Containers.
Vielen Dank für Deine Mühe!!
Gruß, Jan

Daniel
Gast
Daniel

Ich hab leider Probleme, ne Verbindung aufzubauen. Im iobroker Forum gibts (bisher) keine Hilfe. Glaub ich hab dir schon ne mail geschickt – evt. kannst du helfen?! nx.0 2018-07-06 09:36:12.330 info STATE_NOT_CONNECTED : Try to connect / reconnect : STATE_CONNECT_REQUEST(3) to STATE_NOT_CONNECTED(0). knx.0 2018-07-06 09:36:12.330 info … not able to close connection, because already closed knx.0 2018-07-06 09:36:12.329 info Connection persists…..closing now knx.0 2018-07-06 09:36:10.828 info Send : UDP Connection Request : 06 10 02 05 00 1a 08 01 ac 11 00 01 ae 8a 08 01 ac 11 00 01 ae 8a 04 04 02 00 sent to… Read more »

Andreas
Gast
Andreas

Hallo Andre,
danke! bei mir läuft dank dieser Anleitung nun iobroker auf der DS718+ .

Grüße Andreas