IoBroker unter Docker auf der Synology DiskStation (bis v2)

Standardinstallation von ioBroker

Achtung! Mit dem aktuellen Stable Release v3.0.0 des Docker Images kann diese Anleitung nicht mehr 1:1 umgesetzt werden! Die Anleitung funktioniert nur bis zur Image-Version 2.0.0 vom 7. Dezember 2018. Aufgrund der Vielzahl der Änderungen am Image gibt es für die aktuelle Image-Version ein komplett neues Tutorial.

Beginnen wir mit der einfachen Standardinstallation von ioBroker unter Docker. Warum Standardinstallation? Ganz einfach. Nach den folgenden Schritten hast du innerhalb kürzester Zeit eine funktionierende ioBroker Installation unter Docker auf deiner DiskStation (DS) laufen. Allerdings liegen in dieser Konstellation sämtliche Daten (auch Konfigurationsdaten) in dem erstellten Container. Wenn es also mal Probleme mit Docker auf der DS oder einfach mit dem Container gibt, kann es passieren, dass die komplette ioBroker Installation verloren ist. Außerdem lässt sich so ein Container nur umständlich aktualisieren/ ersetzen. Ich empfehle daher unbedingt noch einen Blick auf die nächste Seite zu werfen auf der es um die „Erweiterte Konfiguration“ geht. Nun aber erstmal zur Standardinstallation.

Vorraussetzungen

Damit die folgenden Schritte erfolgreich absolviert werden können, benötigst du eine eingerichtete Synology DiskStation mit installiertem und gestartetem Docker-Paket und Internetzugang. Sollte im Paketzentrum deiner DS kein Docker-Paket zu finden sein, so kann es sein dass dein Modell die Ausführung von Docker nicht unterstützt. Näheres Dazu findest du in den Paketinformationen auf der Synology-Webseite.

Schritt 1: Image herunterladen

Öffne zuerst die Docker-Oberfläche innerhalb des Webinterface deiner DS und wechsle in den Bereich „Registrierung“. Gib in das Suchfeld „iobroker“ ein und markiere das Image „buanet/iobroker“. Klicke anschließend auf den Download-Button. Im erscheinenden Auswahlfenster für die Version (Tag) wähle „latest“. Dies ist die letzte stabile Version. Das Image wird nun auf deine DS herunter geladen.

Hinweis: Seit 10.12.2017 ist es möglich verschiedene Versionen des Docker Images herunter zu laden. Ich empfehle die Version „latest“ zu verwenden (Das gesamte Tutorial basiert darauf!). Hierbei handelt es sich automatisch um die letzte stabile Version. Das Verwenden einer anderen Version empfehle ich nur erfahrenen Benutzern.

Schritt 2: Container aus Image erstellen

Wechsle in den Bereich „Abbild“ in der Docker-Oberfläche. Hier sollte nun das Image „buanet/iobroker:latest“ zur Verfügung stehen. Wähle das Image aus und klicke auf den Starten-Button.

Es öffnet sich ein Wizard zum Erstellen eines Containers. Vergebe einen Containernamen, z.B. „ioBroker“, und klicke auf den Button „Erweiterte Einstellungen“.

In den Erweiterten Einstellungen wähle das Kontrollkästchen „Automatischen Neustart aktivieren“ aus um sicherzustellen, dass der Container sich im Fehlerfall selbstständig neu startet.

Unter Netzwerk wähle „Dasselbe Netzwerk wie Docker Host verwenden“. Diese Einstellung sorgt dafür, dass siche ioBroker später „anfühlt“ als würde es direkt auf der DiskStation laufen und vermeidet Probleme mit dem Hostnamen.

Schließe die Erweiterten Einstellungen mit OK, und klicke den Weiter-Button. In der Zusammenfassung sind nochmals alle Einstellungen aufgeführt. Klicke auf „Übernehmen“.

Schritt 3: Container überprüfen

Öffne den Bereich „Container“ in der Docker-Oberfläche. Hier sollte nun der erstellte Container erscheinen. Prüfe ob der Container eingeschaltet ist und sich im Status „Läuft“ befindet.

Wähle den Container aus und klicke auf „Details“.

Unter „Prozess“ siehst du ob ioBroker erfolgreich gestartet ist. Falls dem so ist, sieht es ungefähr so aus:

Unter „Terminal“ hast du direkten Zugriff auf die Kommandozeile des Containers (Terminal). Sollte die Kommandozeile leer sein, klicke in das große graue Feld und drücke Enter. Nun sollte es wie folgt aussehen:

Über die Kommandozeile kannst du nun z.B. optionale Softwarepakete nachinstallieren (manche Adapter/ Funktionen benötigen das) oder auch deine ioBroker-Installation steuern und ggf. Updates des js-controllers erledigen.

Hinweis: Seit Version 1.1.0 wird ioBroker im Docker Container nicht mehr als Dienst ausgeführt. Damit sind auch die bekannten Befehle „iobroker start“ und „iobroker stop“ nur noch begrenzt verwendbar. Im folgenden Code-Beispiel ist zu sehen wie man ioBroker stattdessen stoppen und wieder starten kann.

Beispiel für das Stoppen (pkill) und wieder Starten (node) von ioBroker:

cd /opt/iobroker
pkill io
node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &

Schritt 4: ioBroker Weboberfläche öffnen

Wenn der Container ordnungsgemäß eingerichtet und gestartet ist, sollte deine neue ioBroker-Installation nun über das Webinterface erreichbar sein. Öffne dazu einfach den entsprechenden Pfad in einem Webbrowser:

http://[name_oder_ip_der_diskstation]:8081

Für alle die gerne Videos schauen habe ich das Ganze auch nochmal in einem kleinen Screencast mitgeschnitten:

Der Container ist damit eingerichtet. Wie oben aber bereits erläutert empfehle ich auf jeden Fall die „Erweiterte Konfiguration“. Mehr dazu auf der nächsten Seite…

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.

231
Hinterlasse einen Kommentar

avatar
10000
76 Kommentare
155 Antworten
14 Abonnenten
 
Meiste Antworten
Beliebtester Kommentar
75 Kommentatoren
AndréMarcelNicoWolfgangEnrico Letzte Kommentatoren
  Abonnieren  
Benachrichtige mich zu:
Marcel
Gast
Marcel

Hallo, erstmal tolle Anleitung. Habs auf meiner Ds918+ installiert. Der Iobroker läuft auch, aber ich sehe keine anderen Adapter. Was mache ich falsch ? ps. hat das mit dem macvlan Netzwerkeinrichtung gemacht. mfg

Nico
Gast
Nico

Moin,

leider habe ich mein iobroker kaputt gemacht. Ich habe Biobroker seid gut 3 Monaten ohne Probleme laufen gehabt. Jetzt wollte ich einen CC2531 an eine DS216+ anschließen. Da ich den Adapter nicht auf grün bekommen habe ich vieles versucht. Jetzt ist es so das ich die Weboberflächer mit ip:8081 nicht mehr erreichen kann. In Docker steht das Biobroker läuft. Habe iobroker schon komplett gelöscht und neu installiert. Abe ich komme nicht mehr auf die weboberfläche. kannst du mir dabei helfen?

Wolfgang
Gast
Wolfgang

Guten Morgen André, Super für Anfänger erklärtes Tutorial, Respekt 🙂 Ich hab es Dank deiner (neuen) Anleitung geschafft ioBroker auf meiner 918+ im Docker laufern zulassen, und kann nun meinen IntelNuc ablösen. Jetzt bin ich gerade dabei das Backup einzurichten, auch das hat geklappt, jedoch erhalte ich beim Ausführen des Scripts ein paar Fehlermeldungen bzgl. fehlender Rechte, ist das so in Ordnung? (Ich kopier die Ausgabe einfach mal rein) xxx@DiskStation918:~$ /volume1/docker/iobroker_backup/backupscript.sh ##################################################### ############## Backupscript gestartet. ############## ##################################################### Der ioBroker-Container (iobroker) in Docker wird gestoppt… Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.29/containers/iobroker/stop:… Mehr lesen »

Enrico
Gast
Enrico

Hallo Andre, ich bekomme VIS bzw. web.0 auf keinem browser zum laufen. Gibt´s da irgendeinen Trick?
Bin auch ehrlich gesagt, ein Anfängernerd…

Raz3r
Gast
Raz3r

Hi, ich nutze Deine tolle Arbeit unter OMV und bin sehr zufrieden damit. Leider bringe ich partout den TRADFRI-Adapter nicht zum Laufen. Hast Du eine Idee, wo das Problem liegen könnte? Zeit host.Raz3rNAS 2019-05-03 20:52:50.456 info Restart adapter system.adapter.tradfri.0 because enabled host.Raz3rNAS 2019-05-03 20:52:50.456 error instance system.adapter.tradfri.0 terminated with code 1 () host.Raz3rNAS 2019-05-03 20:52:50.456 error Caught by controller[0]: at Function.Module._load (module.js:498:3) host.Raz3rNAS 2019-05-03 20:52:50.456 error Caught by controller[0]: at tryModuleLoad (module.js:506:12) host.Raz3rNAS 2019-05-03 20:52:50.456 error Caught by controller[0]: at Module.load (module.js:566:32) host.Raz3rNAS 2019-05-03 20:52:50.456 error Caught by controller[0]: at Object.Module._extensions..js (module.js:664:10) host.Raz3rNAS 2019-05-03 20:52:50.456 error Caught by controller[0]: at… Mehr lesen »

smartmood
Gast
smartmood

Hallo zusammen, ich bin ziemlich neu in der ioBroker Welt. Habe bei mir ioBroker nach dieser Standartinstallationsanleitung auf meiner Synology DS 415+ (aktuellste DSM) erfolgreich installiert und auch die ersten Adapter zum Laufen gebracht. Probleme habe ich mit dem Logitech Harmony Adapter, dieser wird zwar grün angezeigt – findet jedoch den Hub nicht. Im Io-Broker Forum habe bin ich mit ein paar Leuten einige Punkte wie Firewall usw. durchgegangen, konnten jedoch keine Ursache bzw. Lösung finden. Zum testen habe ich nun ioBroker auf einem Raspbbery Pi installiert – dort läuft der Harmony Adapter einwandfrei und der Hub wurde auch sofort… Mehr lesen »

Matthias
Gast
Matthias

Hallo zusammen,

leider wird mein iobroker-Container unter Docker nicht mehr angezeigt. iobroker läuft logischer Weise auch nicht.

Habe dann versucht einen neuen Container „iobroker2“ anzulegen. Zunächst hat Docker beim Erstellen des neuen Containers gemeckert, weil man noch einen „Startbefehl“ eingeben muss. Habe dann dort einfach mal „Start“ eingegeben. Der Container „iobroker2“ wurde angelegt, aber ebenfalls nicht unter Container angezeigt!
Kann es sein, dass es ein Problem mit dem Image gibt?
Oder gab es ein Update das Probleme bereitet?

Falls nein…kann mir jemand sagen, wie ich mir die Container „iobroker“ und „iobroker2“ wieder anzeigen lassen und starten bzw. löschen kann?!

Danke für eure Hilfe!

Oliver
Gast
Oliver

Auch mein SQL-Adapter läuft nicht. kann jemend helfen und mir sagen was zu tun ist? host.ioBroker 2019-04-11 11:17:48.912 error instance system.adapter.sql.0 terminated with code 1 () host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at Module.load (module.js:566:32) host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at Object.Module._extensions..js (module.js:664:10) host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at Module._compile (module.js:653:30) host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at Object. (/opt/iobroker/node_modules/mmmagic/lib/index.js:1:75) host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at require (internal/module.js:11:18) host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at Module.require (module.js:597:17) host.ioBroker 2019-04-11 11:17:48.912 error Caught by controller[0]: at Function.Module._load (module.js:498:3) host.ioBroker 2019-04-11 11:17:48.912 error… Mehr lesen »

Oliver
Gast
Oliver

Wo werden die Befehle ausgeführt? Ich habe keine Ahnung wo ich diese eingeben soll.

cd /opt/iobroker
pkill io
iobroker host this (bei multihostsystemen: iobroker host [hostname der ds])
node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &

Marc
Gast
Marc

Hallo Andre,
irgendwie ist es nicht möglich den SQL-Adapter zu starten, ist das Problem bekannt? Mein LOG zeigt folgendes an:
host.iobroker 2019-04-02 19:50:08.987 error instance system.adapter.sql.0 terminated with code 1 ()
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Module.load (module.js:566:32)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Object.Module._extensions..js (module.js:664:10)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Module._compile (module.js:653:30)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Object. (/opt/iobroker/node_modules/mmmagic/lib/index.js:1:75)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at require (internal/module.js:11:18)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Module.require (module.js:597:17)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Function.Module._load (module.js:498:3)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at tryModuleLoad (module.js:506:12)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Module.load (module.js:566:32)
Caught 2019-04-02 19:50:08.987 error by controller[0]: at Object.Module._extensions..node (module.js:682:18)
Caught 2019-04-02 19:50:08.987 error by controller[0]: Error: /opt/iobroker/node_modules/mmmagic/build/Release/magic.node: wrong ELF class: ELFCLASS32
Caught 2019-04-02 19:50:08.987 error by controller[0]: ^
Caught 2019-04-02 19:50:08.987 error by controller[0]: return process.dlopen(module, path._makeLong(filename));
Caught 2019-04-02 19:50:08.986 error by controller[0]: module.js:682

Benny
Gast
Benny

Hallo Andre,
sehr gutes Projekt. Leider habe ich bei der Konfiguration von mariaDB ein Problem. Leider weiß ich nicht warum er über den falschen Pfad schimpft und wie ich es lösen kann. Hast du eine Idee?

root@buanet-iobroker1:~# mysql -u root -p
Enter password:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‚/var/run
/mysqld/mysqld.sock‘ (2 „No such file or directory“)

Christian Wimmer
Gast
Christian Wimmer

Hallo Andrè!
Ich finde nirgends das Verzeichnis /root/.npm/_logs/
Ist dies im Docker wo versteckt?
Danke

Glenn
Gast
Glenn

Hallo ! Leider habe ich jetzt schon zum zweiten mal das ich erst den IOBroker super zum laufen bekommen habe. Ich installiere Adapter und nach und nach richte ich das System ein. Er stelle mit dem Editor eine Test seite die dann auch gut läuft. Dann pötzlich komme ich nicht mehr den Admin zum laufen. Meistens wenn ich mit dem Editor rumspiele und der dann nicht mehr reagiert. Das System wird furchbar langsam. Ich starte im Docker den Container neu und danach ist der Admin nicht mehr zu ereichen. WEB VIS und EDITOR sind noch erreichbar. Nur der admin über… Mehr lesen »

Sascha Wallenkewitz
Gast
Sascha Wallenkewitz

Hallo den Iobroker habe ich schon mal zum laufen gebracht. Jetzt möchte ich den Conbee Stick von Dresden Elektronik auch in einem Container installieren, komme da aber nicht wirklich weiter. Hat vielleicht jemand eine Idee wie ich das bewerkstelligen kann?

Christian Wimmer
Gast
Christian Wimmer

Hallo

Ich wollte gerade über das Terminal einen Adapter Upload machen.
Bekomm aber den Fehler dass der Hostname ioBroker nicht aufgelöst werden kann.

Kannst du mir bitte weiterhelfen?

PS: installiert hab ich ioBroker genau nach deimen tollen Tutorial.

PPS:
root@ioBroker:/opt/iobroker# iobroker upload javascript
sudo: Hostname ioBroker kann nicht aufgelöst werden
module.js:478
throw err;
^
Error: Cannot find module ‚/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js‘
at Function.Module._resolveFilename (module.js:476:15)
at Function.Module._load (module.js:424:25)
at Module.runMain (module.js:611:10)
at run (bootstrap_node.js:394:7)
at startup (bootstrap_node.js:160:9)
at bootstrap_node.js:507:3

Frank
Gast
Frank

Stromverbrauch – Hat jemand Erfahrung ? Ich habe eine DS218+ (+ Extra Ram) und Messe bei Belastung > 18 Watt was im normalen Bereich liegt. MIt dem iobroker Docker (Historian loggt mit) – habe ich einen kontinuierlichen Verbrauch von 17 Watt, die Ds218+ geht nicht mehr in den Ruhestand – wenn ich den Iobroker Docker rausnehme, dann komme ich auf 9 Watt (etwas hoch, aber ok). Das gleiche passiert übrigens wenn ich von meinem alten System mit dem Synolgy Adapter die Werte abfrage. Hat jemand das schon mal beobachtet ?

Frank
Gast
Frank

Hi, vielen Dank für die tolle Anleitung. Ich bin von einem Cubietruck auf die DS218+ umgezogen (10 GB Ram). Im Prinzip bin ich der Anleitung gefolgt. Ich habe das Verzeichnis aus dem Docker ausgelagert, komplett gelöscht und mit Filezilla (SFTP) das gesamt Verzeichnis /opt/iobroker von meinem Cubietruck hochgeladen (beim einfachen überschreiben hatte ich Probleme). Dann habe ich die Fehlermeldung bekommen, dass keine Verbindung zum Redis Server möglich ist – ich habe das zunächst im Iobroker Docker mit apt-get install redis-server versucht, aber die Installation hat kein Erfolg gebracht. In einem neuen Docker habe ich Redis installiert – gestartet und es… Mehr lesen »

Fugazzy
Gast
Fugazzy

Hallo, vielen Dank für die Pflege dieses tollen Docker-Containers.
Ich habe gerade gelesen, dass nur noch bridged Netzwerke unterstützt werden, aber extra für yahm auch avari eingebaut wird.
So wie ich es bisher verstanden habe, muss man für HomeKit/Homebridge zwingend das host-Netz verwenden?
Ich nutze in meinem iobroker den HAM-Adapter, um meine Homebridge mit einzubinden.
Funktioniert das nun noch?

Steven
Gast
Steven

Hi André, ich bin deiner Anleitung auch wunderbar gefolgt und folgen können:) Erstmal zum Problem, ich komme nicht mehr auf mein iobroker.admin rauf. Er arbeitet im Hintergrund noch nur die Web-Oberfläche lässt sich nicht mehr auf rufen. Bin bei Google auch schon alle Möglichkeiten die zu finden sind durch gegangen. —————————————————- z.B. cd /opt/iobroker npm i https://github.com/ioBroker/ioBroker.admin cd node_modules/iobroker.admin npm i gulp gulp node_modules/.bin/gulp und hier wollte er „npm i gulp“ nicht ausführen (Kommando nicht gefunden) dann habe ich npm i https://github.com/ioBroker/ioBroker.admin npm i https://github.com/ioBroker/ioBroker.admin/tarball/master ls -la node_modules/iobroker.admin cd node_modules/iobroker.admin npm i gulp node_modules/.bin/gulp (ging nicht richtig) npm install node_modules/.bin/gulp… Mehr lesen »

Ingo
Gast
Ingo

Hallo André, vielen Dank für die Anleitung. 1. Ich habe mit scripts keine Erfahrung. 2. Ich habe den Docker manuell auf meiner 416play installiert. 3. Die Installation bis zur Übertragung auf die DS hat funktioniert. Ich kann den iobroker über IP:8081 öffnen. 4. Aus- und wieder Einschalten zeigt eine Änderung des Logs in der file station der DS. Ich denke also das passt so weit? 5. Das backup funktioniert leider nicht. Was mache ich da falsch. 6. Ich habe das script in note++ kopiert und als backupscript.sh gespeichert. 7. Dann über den Aufgabenplaner einen task erstellt und diesen zum Test… Mehr lesen »

Daniel
Gast
Daniel

Hallo Andre,
deine Anleitung ist super und hat mir im vergangenen Jahr perfekt geholfen um meinen ioBroker vom PI in den Docker Container umzuziehen. Nun würde ich gerne auf die Version 2 umsteigen, damit einige neue Adapter damit laufen. Leider klappt das nicht so wie gewünscht. Ich habe schon versucht aus den einzelnen Seiten meine Infos zu entnehmen, aber eine echte „Upgrade“ Anleitung wäre da sehr hilfreich. Gerade auf die Basis deiner Grundinstallation bezogen. Ich denke da werden einige danach suchen.
Gruß
Daniel

Dirk
Gast
Dirk

Erstmal LOB! Sieht nach einem gut gepflegten repo aus. werde iobroker mal testen und wollte es in docker realisieren. wechsel von fhem, mal schauen was das taugt.
Test: wird auf nen Raspberry erfolgen.

werde berichten

Grüße DIrk

Nils
Gast
Nils

Hallo Andre,

danke für die Ausführliche Anleitung.
Ich habe ein Problem mit dem Backup.
Dieses wird erstellt aber die Archiv Datei ist leer.
Das Script wird auch ohne Fehler abgearbeitet.

Hast du eine Idee?

Gruß Nils

Sascha
Gast
Sascha

Hallo Andre,
ich habe dein Tutorial durchgearbeitet. Alles klappt super. Tolle Arbeit !!!!
Mir bleibt eine Frage zur Backupwiederherstellung offen. Ich habe in deinem Tutorial den Part mit dem Umzug auf ein neues System ausgelassen, weil ich das nicht brauchte. Warum soll der weg des BAckup-Wiederherstellens so „umständlich“ sein.
Erst in den Transferordner dann in den Zielorder entpacken , das noch über Kommandozeile….
Denke ich gerade falsch oder kann ich nicht „einfach“ direkt in der Filestation vom Backup Order in den ioBroker Ordner entpacken (den wir ja auf die DS „ausgelagert“ haben) ?

Danke und Gruß!
Sascha

Marc
Gast
Marc

Hallo,
ich habe eine eigentlich generelle Frage. Ich habe eine DS1817+ mit 8GB und dort ist standardmäßig schon der Synology Virtual Machine Manager installiert, in dem ich auch eine WinVM laufen habe. Nun meine eigentliche Frage: Kann ich das Image für Docker auch direkt in die VM einbinden ? Ist die Synology VMM eine neuere Version von Docker, oder ist es etwas komplett anderes ?