IoBroker unter Docker auf der Synology DiskStation (bis v2)

Installation von anderem System umziehen

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.

Alles was wir bis hierher getan haben, bezog sich ausschließlich auf das Aufsetzen eines neuen frischen ioBrokers. Doch was ist mit bestehenden Installationen z.B. auf einem Raspberry oder einem Cubietruck? Kein Problem, sofern ioBroker vorher bereits auf einem Linuxsystem lief.

Vorüberlegungen

Zuerst einmal sei gesagt: Es gibt mehrere Wege einen ioBroker auf ein neues System umzuziehen. Doch für mich hat sich eigentlich nur ein Weg bewährt, und der führt über den Transfer des kompletten ioBroker-Ordners. (Gilt bei mir übrigens auch für das Backup, siehe nächste Seite)
Was habe ich also vor? Eigentlich ganz simpel. Ich sichere auf meinem Quellsystem (von wo ich umziehen möchte) den kompletten ioBroker-Ordner und bringe ihn auf meine DiskStation. Dort überschreibe ich dann alle Dateien in meinem (neuen) ioBroker-Verzeichnis mit den Daten aus dem Quellsystem. Anschließend, aufgrund der Änderung des Hostnamens, noch ein ioBroker-Kommando drüber laufen lassen und fertig. Klingt einfach, ist es auch. Wenn man den ein oder anderen Fallstrick kennt.

Hinweis: Ich baue an dieser Stelle auf dem auf, was auf den vorherigen Seiten beschrieben ist. Das bedeutet: Ich gehe von einer laufenden ioBroker-Installation aus, bei der das ioBroker-Verzeichnis auf der DS liegt und lediglich in den Container gemountet ist. Weiterhin setze ich voraus, dass ioBroker auf dem Quellsystem bereits unter Linux und, bei Verwendung des Docker-Images mit Download nach dem 05.12.2018, unter Node8 lief.

Schritt 1: Daten vom Quellsystem (alt) holen

In welcher Form man Daten vom Altsystem holt und in den ioBroker-Ordner kopiert ist letztendlich jedem selbst überlassen. Ich habe grundsätzlich gute Erfahrungen damit gemacht das Verzeichnis über den Linux-Befehl „tar“ in ein Archiv zu packen, und am Ziel entsprechend wieder zu entpacken. Aus dem Forum weiß ich, dass es auch viele viele andere Wege gibt, die mehr oder weniger gut funktionieren. Vermeiden solltet ihr aber auf jeden Fall eine Zwischenstation auf einem Windows-Rechner. (Also etwa ioBroker-Verzeichnis des Quellsystems als Netzlaufwerk einbinden und Inhalt auf den eigenen PC kopieren) Hat was mit Dateisystemspezifikationen und Zugriffsrechten zu tun.

Gehen wir also mal davon aus wir haben einen Raspberry Pi als Quellsystem mit dem Verzeichnis /opt/iobroker als ioBroker-Verzeichnis. IoBroker selbst ist natürlich gestoppt.
Zum (ver-)packen deines ioBroker-Verzeichnisses braucht es nur einen Befehl:

tar -cf /opt/iobroker_verzeichnis.tar /opt/iobroker
Achtung! Für den Befehl „tar“ gibt es viele mögliche Parameter. Die hier aufgeführten Befehle funktionieren mitunter nur in der von mir beschriebenen Umgebung. Das heißt: ioBroker liegt sowohl auf dem Quell- als auch auf dem Zielsystem im Pfad /opt/iobroker.
Es kann also sein dass ihr ggf. andere Parameter verwenden müsst/ könnt. Bitte informiert euch bei Bedarf daher selbstständig über den Befehl „tar“. Danke.

Wenn alles geklappt hat, liegt jetzt auf dem Quellsystem im Verzeichnis „/opt“ eine Datei mit dem Namen „iobroker_verzeichnis.tar“. Diese Datei können wir jetzt problemlos (auch über Betriebssysteme bzw. Dateisysteme hinweg) kopieren.

Schritt 2: Sicherungsdatei in den Container kopieren und entpacken

Nachdem wir jetzt das tar-Archiv vom Quellsystem geholt haben, muss es nur noch in den Container um es dort über die Kommandozeile wieder zu entpacken. Das geht, wie bereits früher in diesem Tutorial erläutert, am besten über ein Transfer-Verzeichnis. Dazu empfiehlt es sich auf der DS neben dem ioBroker-Verzeichnis (/volume1/docker/iobroker_mount) noch ein weiteres Verzeichnis z.B. „iobroker_transfer“ zu erstellen und parallel in den Container zu mounten (vgl. dazu die ersten Schritte unter „ioBroker-Verzeichnis auf die DiskStation auslagern“ auf Seite 3 des Tutorials).

Anschließend das tar-Archiv in das Transfer-Verzeichnis kopieren und das Terminal des Containers über die Docker-Oberfläche öffnen. Die folgenden Befehle stoppen ioBroker im Container und entpacken das Archiv.

cd /opt/iobroker
pkill io
cd /opt/transfer
tar -xf iobroker_verzeichnis.tar -C /

Schritt 3: ioBroker für den Start auf neuem System vorbereiten und starten

An dieser Stelle ist ioBroker noch nicht lauffähig, da sich mit dem Umzug auf die DS in der Regel auch der Hostname geändert hat. Um ioBroker den neuen Hostname mit zu teilen reicht ein einfacher Befehl, ausgeführt im ioBroker-Verzeichnis über das Terminal des Docker-Containers:

cd /opt/iobroker
iobroker host this

Anschließend sollte sich ioBroker wieder starten lassen:

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

Hat alles geklappt? Schön, dann fehlt nur noch ein Thema: Datensicherung. Mehr dazu auf der nächsten Seite.
Falls dein Umzug nicht geklappt haben sollte, dann nutze gerne die Kommentare auf der ersten Seite dieses Tutorials oder den angesprochenen Thread im ioBroker-Forum um Unterstützung aus der Community zu erhalten.

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 ?