NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Den Inhalt der compose kannst du im Portainer als "Stack" hinzufügen.
Kannst Du bitte mal Dein Stack hier posten?
Wie ich oben schrieb, hab ich mein ioBroker auch noch klassisch von der Konsole erstellt, aber für die Zukunft würde ich auch das umstellen in Stack, ist ja dann doch einfacher -
@glasfaser
Zum ersten Mal? Ich konnte noch nie über Portainer zB meine ENV ändern/ergänzen. Funktioniert einfach nicht. Drückst auf Speichern und er ignoriert dich schlichtweg.Wenn er keine Synology hat, was sucht er dann hier
-
@tugsi
Such ich morgen mal raus und posten es hier.
Ich bin jetzt quasi schon im BettEdit:
@tugsi Hier mal meine Compose (IP-Adressen frei abgeändert/erfunden):version: '2.4' services: ioBroker: image: buanet/iobroker:latest container_name: ioBroker hostname: iobroker dns: - "192.168.0.1" - "1.1.1.1" dns_search: "lan" ports: - "8081:8081" - "8082:8082" - "8087:8087" - "9000:9000" - "9001:9001" environment: - TZ=Europe/Berlin - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin - LANG=de_DE.UTF-8 - DEBIAN_FRONTEND=teletype - LANGUAGE=de_DE:de - LC_ALL=de_DE.UTF-8 # - SETGID=1000 # - SETUID=1000 # - PACKAGES=vim ssh - IOB_MULTIHOST=master - IOB_OBJECTSDB_HOST=0.0.0.0 - IOB_OBJECTSDB_PORT=9001 - IOB_OBJECTSDB_TYPE=jsonl - IOB_STATESDB_HOST=0.0.0.0 - IOB_STATESDB_PORT=9000 - IOB_STATESDB_TYPE=jsonl volumes: - /volume1/docker/ioBroker:/opt/iobroker networks: LAN: ipv4_address: 192.168.0.150 iobroker-db_default: restart: always networks: LAN: name: LAN driver: macvlan driver_opts: parent: bond0 ipam: config: - subnet: 192.168.0.0/24 ip_range: 192.168.0.200/29 gateway: 192.168.0.1 iobroker-db_default: name: iobroker-db_default driver: bridge ipam: config: - subnet: 172.21.0.0/16 gateway: 172.21.0.1
Der Container läuft in einem MACVLAN.
Außerdem im Multihost-Betrieb. Zum Kopieren der Compose und erfolgreichem Starten sollte man diese Dinge beachten und ggf. anpassen.
Dasiobroker-db_default
-Netz habe ich, weil ich zusätzlich einen MySQL/InfluxDB-Container separat laufen habe. Auch da müsste man die IP-Adressen anpassen oder das Netzwerk komplett entfernen. -
Hallo @andre , Forum,
habe Docker auf meiner DS220+ laufen, neueste Firmware.
Zusätzlich habe ich nach deinem HowTo Portainer installiert und ein neues MACVLAN eingerichtet.
Mit diesem Script erstelle ich den Container:docker run -d --name=ioBroker \ --network ioBroker \ -p 502:502 \ -p 1502:1502 \ -p 1880:1880 \ -p 1883:1883 \ -p 2001:2001 \ -p 8081:8081 \ -p 8282:8282 \ -p 8088:8088 \ -p 8284:8284 \ -v /volume1/docker/iobroker:/opt/iobroker \ --restart always \ buanet/iobroker:latest
Frage 1: ist es korrekt, dass im Docker der neue Container NICHT mehr angezeigt wird sondern nur noch über Portainer?
Frage 2: Als ich noch das Bridge Network verwendet habe, konnte sich ioBroker direkt zur Influxdb im anderen Container verbinden. Das geht über das MACVLAN jetzt nicht mehr:
influxdb.0 2022-12-30 17:25:42.927 error Error: connect EHOSTUNREACH 192.168.178.181:8087 influxdb.0 2022-12-30 17:25:39.916 info Influx DB Version used: 1.x influxdb.0 2022-12-30 17:25:39.915 info Connecting http://nas.fritz.box:8087/ ...
Muss die jetzt auch mit in das MACVLAN?
Danke
Henri -
@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Der Container läuft in einem MACVLAN.
Außerdem im Multihost-Betrieb. Zum Kopieren der Compose und erfolgreichem Starten sollte man diese Dinge beachten und ggf. anpassen.
Das iobroker-db_default-Netz habe ich, weil ich zusätzlich einen MySQL/InfluxDB-Container separat laufen habe. Auch da müsste man die IP-Adressen anpassen oder das Netzwerk komplett entfernen.Danke für die Vorlage.
Bei mir ist auch MACVLAN, Multihost etc drin
Aber ich schaue mir das mal an und werde mir das mal als Vorlage zum umstellen auf Stack/Compose annehmen. -
@hennerich sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Frage 1: ist es korrekt, dass im Docker der neue Container NICHT mehr angezeigt wird sondern nur noch über Portainer?
Jo, das ist wahrscheinlich nicht wirklich normal, ist aber das, was ich oben schonmal gesagt habe, dass Portainer nicht zu 100% mit Synology harmoniert. Ich persönlich nutze die Docker-Oberfläche im DSM nur um Portainer ein- oder auszuschalten.
Frage 2: Als ich noch das Bridge Network verwendet habe, konnte sich ioBroker direkt zur Influxdb im anderen Container verbinden. Das geht über das MACVLAN jetzt nicht mehr:
Muss die jetzt auch mit in das MACVLAN?Ja, bzw. auch nein.
Du kannst deine Influx auch hochfahren und deinen ioBroker zusätzlich in das Influx-Network ziehen. So ähnlich mache ich es ja auch (siehe compose-Datei oben).
Einfacher ist es allerdings wenn du die Influx auch in dein MACVLAN holst.@tugsi
Ich wünsche viel Erfolg und Vergnügen@bean
Gleiches Problem gerade beim Kollegen gehabt. Portainer Downgrade auf z.B. 2.15.1 brachte Erfolg. Damit ließ sich der gleiche Stack hochfahren - mit der neusten Portainerversion nicht.
Dazu einfach als Imageportainer/portainer-ce:2.15.1
nutzen und nicht daslatest
-
@hennerich sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Frage 2: Als ich noch das Bridge Network verwendet habe, konnte sich ioBroker direkt zur Influxdb im anderen Container verbinden. Das geht über das MACVLAN jetzt nicht mehr:
Nur zum Verständnis.
ioBroker im MACVLAN heißt, dass es für sich ein eigenes Netzwerk hat und eine eigene IP, zB 192.168.178.181
In Docker-Universum haben die ganzen Container eine IP-Adresse aus dem Bereich 172.17.0.x (im Normalfall).
Deswegen machst Du eine Bridge, dass quasi das Routing von deinem MACVLAN zum Docker-IP-Netzwerk macht.
IPV4 Subnet - 172.17.0.0/16 IPV4 Gateway - 172.17.0.1Deine Fehlermeldung sagt ja, dass influxdb die 192.168.178.181 nicht erreicht.
Logisch, weil der Container im 172.17.0.0/16 Netzwerk festhängt.
Du musst im ioBroker Container zusätzlich unter Netzwerke nicht nur das MACVLAN und die Bridge, auch das Netzwerk von influxdb eintragen.Oder Du gibst influx auch eine IP aus dem 192.168.178.x Bereich, also auch ein MACVLAN.
Ich habe bei mir noch ein Prioxmox-System und da läuft influx und grafana zusammen in einem LXC.
Vorteil, hat eine eigene IP-Adresse in meinem Heimnetzwerk und könnte auch von anderen Dingen angesprochen werden.Ist halt etwas tricky.
-
@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Einfacher ist es allerdings wenn du die Influx auch in dein MACVLAN holst.
@tugsi sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Oder Du gibst influx auch eine IP aus dem 192.168.178.x Bereich, also auch ein MACVLAN.
Es gibt keinen technischen Grund auch die Influx DB (oder andere Services wie grafana, redis, mariadb usw.) über MACVLAN in Betrieb zu nehmen! Das ist Quatsch und sollte auch nicht empfohlen werden. Immerhin ist einer der Vorteile von Docker, dass man die Services, die nicht direkt über das (Heim)Netzwerk erreichbar sein müssen komplett von diesem abschirmen kann. Brauch man doch einen Zugriff von Extern reicht man einen Port durch (wie bei einer Firewall)
Meine Empfehlung:
MACVLAN: iobroker (für den Zugriff von außen und erweiterte Netzwerkfunktionen)
Bridge: influxdb (kommuniziert intern mit iobroker und grafana), grafana (kommuniziert intern mit influxdb, Portfreigabe nach extern für web UI), ioBroker (kommuniziert intern mit influxdb)MfG,
André -
@andre sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Das ist Quatsch und sollte auch nicht empfohlen werden.
Stimmt, hatte soweit jetzt gar nicht nachgedacht... es reicht ja auch die Bridge bzw ein Port durchzureichen.
Wie ich ja schrieb, habe ich das auf ein CT im Proxmox, deswegen bin ich auf die IP-Adresse gekommen.
Manchmal sollte man so am Jahresende erstmal nachdenken -
Moin und gutes Neues. Mich hat heute auch ein Synology/Portainer Problem erwischt. Ich wollte auf die 7.2 updaten, indem ich die "recreate" Funktion genutzt habe.
Das Ergebnis:
iobroker startet kurz an, kommt aber nicht über Schritt 3/5 hinaus.
Die Meldung:
There was a problem detecting the admin instance of your iobroker.
Ich habe auch schon versucht, auf 7.1.2 downzugraden. Leider ohne Ergebnis.Es lief bislang tadellos unter Portainer, insofern finde ich jetzt keinen Punkt, an dem ich mit der Fehlersuche sinnvoll anfangen könnte.
Merci und Grüße, clfberlin
-
@andre
Ist ok, ist deine Empfehlung.
Ich sehe das etwas anders. Für mich ist es kein "Quatsch" sondern einfach persönliches Empfinden.
Ich habe nahezu alle Container in meinem MACVLAN. Einfach aus dem Grund, weil ICH es gerne habe, dass jeder Service seine eigene IP in MEINEM LAN bekommt. Auch eine Influx oder ein Grafana hat seine eigene IP in meinem Netzwerk. Mir missfällt es einfach, dass alles über die Synology-IP bzw. der FQDN erreichbar ist.
Aber wie gesagt, ist das genau so meine Meinung und Empfehlungen, wie Du eine andere hast@clfberlin sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Moin und gutes Neues. Mich hat heute auch ein Synology/Portainer Problem erwischt. Ich wollte auf die 7.2 updaten, indem ich die "recreate" Funktion genutzt habe.
Das Ergebnis:
iobroker startet kurz an, kommt aber nicht über Schritt 3/5 hinaus.
Die Meldung:
There was a problem detecting the admin instance of your iobroker.
Ich habe auch schon versucht, auf 7.1.2 downzugraden. Leider ohne Ergebnis.Es lief bislang tadellos unter Portainer, insofern finde ich jetzt keinen Punkt, an dem ich mit der Fehlersuche sinnvoll anfangen könnte.
Merci und Grüße, clfberlin
Hab ich vor zwei Posts schon was zu geschrieben. Downgrade deinen Portainer.
-
@hollywoot Jedem wie er es mag. Da du aber offenbar auch keinen technischen Grund siehst das so zu machen, einigen wir uns vielleicht darauf:
@andre sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Es gibt keinen technischen Grund auch die Influx DB (oder andere Services wie grafana, redis, mariadb usw.) über MACVLAN in Betrieb zu nehmen!
@clfberlin Hast du versucht von v7.1.2 auf v7.2.0 zu gehen? Waren alle deine Adapter und der js-controller vorher auf der aktuellsten (stable) Version?
Folgendes würde ich versuchen:
- Container neu einmal neu anlegen, das Recreate vom Portainer ist immer mal wieder buggy. Alternative: Bau dir einen Stack! Dann vermeidest du in Zukunft Bugs der Portainer web UI bei Recreate oder Duplicate/ Edit.
- Umgebungsvariable DEBUG hinzufügen und auf true setzen. Das macht, dass der Container an der Stelle wo es bei dir hakt stehen bleibt und weiter läuft. So hast du die Möglichkeit auf die Kommandozeile zu gehen und z.B. ein
iobroker status
auszuführen. Eventuell bekommen wir über die Ausgabe mehr Infos warum es Probleme bei der Erkennung der Admin Instanz gab. - Poste das komplette Log deines Containers beim Start. Nur mit der Fehlermeldung kommen wir hier nicht weit.
@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Hab ich vor zwei Posts schon was zu geschrieben. Downgrade deinen Portainer.
Hast du dazu mehr Infos? Gibt es da einen bekannten Issue bei Portainer? (Link?)
Ich denke das Portainer Downgrade ist den zweiten Schritt vor dem ersten machen.@hollywoot sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
@bean
Gleiches Problem gerade beim Kollegen gehabt. Portainer Downgrade auf z.B. 2.15.1 brachte Erfolg. Damit ließ sich der gleiche Stack hochfahren - mit der neusten Portainerversion nicht.
Dazu einfach als Image portainer/portainer-ce:2.15.1 nutzen und nicht das latestDu sprichst vom Stack. @bean hat den Container manuell erstellt. Ich würd erstmal versuchen neu anzulegen.
MfG,
André -
Hab ich vor zwei Posts schon was zu geschrieben. Downgrade deinen Portainer.
Ja, danke - ich war allerdings noch auf 2.16.1. Hatte bisher nicht auf 2.16.2... Ach, Moment - Du schriebst ja 2.15.1. Oh Mann. Ok, probiere ich gleich... Ich sage Bescheid.
Und gleich noch eine Zusatzfrage:
Ich habe in der Zwischenzeit einen neuen Container aufgesetzt und auf ein anderes Verzeichnis gemappt.
Im ersten Schritt habe ich den gesamten Inhalt des vorigen Ordners dorthin kopiert, also /iobroker-data, /node_modules etc.
Diese Installation brach beim Start (erwartungsgemäß) mit demselben Fehler ab.
Dann Ordner geleert und wieder Container aufgesetzt. In der frischen Installation dann ein Backup hergestellt. Es fehlten viele Dinge (vor allem ins Sachen VIS). Also habe ich iobroker gestoppt und gezielt eine ganze Reihe an Ordnern rüber kopiert (mit Option "überschreiben"). Das immer schrittweise. Also Ordner kopiert, iobroker gestartet und überprüft, dann wieder aus und Ordner kopiert.
Die Parallelinstallation sieht eigentlich ganz gut aus. Es gibt nur beim Start Meldungen bzgl. homebridge-ewelink und einem fehlenden Keyword 'homebridge-plugin'. Dem gehe ich noch nach.
Ich habe jetzt also zumindest ein Fallback, falls Plan A nicht klappt. Nun aber zur Frage: Ich hatte gestern, bevor er abgeschmiert war, eine Menge Zeit in die Konfiguration gesteckt. Mir fehlen jetzt eigene angelegte Objekte aus 0_userdata und ein paar Blockly-Skripte. Weiß jemand, wo die gespeichert werden bzw. wie ich die von der Altinstallation in die neue Version ziehen kann?Vielen Dank und Grüße, clfberlin
-
Nachtrag: Ne, bei mir hat das Portainer-Downgrade auf 2.15.1 nichts gebracht.
Container steigt aus nach
Fixing "sudo-bug" by replacing sudo with gosu... Done.
mit
There was a problem detecting the admin instance of your iobroker.
Hatte den Container auch per "Recreate" neu gezigen und aufgesetzt.Sieht so aus, als müsse ich mit dem Ausweich-Container weiterarbeiten. Das scheint soweit auch stabil (erster Eindruck). Nur die neueren Objekte aus 0_userdata sowie tagesaktuelle Blockly-Skripte fehlen halt noch.
-
@clfberlin sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
In der frischen Installation dann ein Backup hergestellt.
richtig ...
Es fehlten viele Dinge (vor allem ins Sachen VIS). Also habe ich iobroker gestoppt und gezielt eine ganze Reihe an Ordnern rüber kopiert (mit Option "überschreiben"). Das immer schrittweise. Also Ordner kopiert, iobroker gestartet und überprüft, dann wieder aus und Ordner kopiert.
Falsch ... man kopiert nichts von anderen Ordnern ( Dateien ) zusammen, damit igendwas wieder läuft in ioBroker .
der Schritt für Vis wäre gewesen :
https://forum.iobroker.net/topic/58991/gelöst-vis-lässt-sich-nicht-installieren -
@clfberlin sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
Container steigt aus nach
lese und führe das so durch , wie @andre oben schreibt ...
so bringt das nicht´s !
-
@glasfaser und @andre
Sorry, überhastet. Du hast Recht, ich gehe das nochmal systematisch durch...
Container neu einmal neu anlegen, das Recreate vom Portainer ist immer mal wieder buggy. Alternative: Bau dir einen Stack! Dann vermeidest du in Zukunft Bugs der Portainer web UI bei Recreate oder Duplicate/ Edit.
Check. Container neu angelegt - mappt auf den ursprünglichen Ordner.
Verwendet wird Image buanet/iobroker:latest-v7Umgebungsvariable DEBUG hinzufügen und auf true setzen. Das macht, dass der Container an der Stelle wo es bei dir hakt stehen bleibt und weiter läuft. So hast du die Möglichkeit auf die Kommandozeile zu gehen und z.B. ein iobroker status auszuführen. Eventuell bekommen wir über die Ausgabe mehr Infos warum es Probleme bei der Erkennung der Admin Instanz gab.
Bei ENV ist DEBUG mit true gesetzt (s. Log). Außerdem USBDEVICES auf /dev/ttyUSB0
Poste das komplette Log deines Containers beim Start. Nur mit der Fehlermeldung kommen wir hier nicht weit.
Gerne:
-------------------------------------------------------------------------------- ----- Step 1 of 5: Preparing container ----- -------------------------------------------------------------------------------- Updating Linux packages on first run... Done. Registering maintenance script as command... Done. -------------------------------------------------------------------------------- ----- Step 2 of 5: Detecting ioBroker installation ----- -------------------------------------------------------------------------------- Existing installation of ioBroker detected in "/opt/iobroker". -------------------------------------------------------------------------------- ----- Step 3 of 5: Checking ioBroker installation ----- -------------------------------------------------------------------------------- (Re)setting permissions (This might take a while! Please be patient!)... Done. Fixing "sudo-bug" by replacing sudo with gosu... Done. There was a problem detecting the admin instance of your iobroker. Make sure the ioBroker installation you use has an admin instance or start over with a fresh installation and restore your configuration. For more details see https://docs.buanet.de/iobroker-docker-image/docs/#restore [DEBUG] Debug mode prevents the container from exiting on errors. [DEBUG] This enables you to investigate or fix your issue on the command line. [DEBUG] If you want to stop or restart your container you have to do it manually. [DEBUG] IoBroker is not running!
Der Tipp mit DEBUG true ist klasse, @andre - das kannte ich nicht. Da der Container jetzt am Leben gehalten wird, habe ich es mal mit iobroker status probiert. Aber er gibt mir nur zurück:
iobroker is not running on this host.
Objects type: jsonl
States type: jsonlMerci und Grüße
-
Ergänzung:
iob fix habe ich auch probiert.Danach gestartet
root@iobroker:/opt/iobroker# iob start Starting iobroker controller daemon... iobroker controller daemon started. PID: 1073 root@iobroker:/opt/iobroker# iob start all The adapter "admin.0" was started. The adapter "history.0" was started. The adapter "influxdb.0" was started. The adapter "javascript.1" was started. The adapter "pushover.0" was started. The adapter "scenes.0" was started. The adapter "alexa2.0" was started. The adapter "ham.0" was started. The adapter "hue.1" was started. The adapter "ical.0" was started. The adapter "modbus.0" was started. The adapter "netatmo.0" was started. The adapter "ping.0" was started. The adapter "samsung.0" was started. The adapter "sonos.0" was started. The adapter "zigbee.0" was started. The adapter "backitup.0" was started. The adapter "bluelink.0" was started. The adapter "cloud.0" was started. The adapter "daswetter.0" was started. The adapter "devices.0" was started. The adapter "discovery.0" was started. The adapter "dwd.0" was started. The adapter "firetv.0" was started. The adapter "flot.0" was started. The adapter "fullybrowser.0" was started. The adapter "homeconnect.0" was started. The adapter "hue-extended.1" was started. The adapter "icons-material-svg.0" was started. The adapter "icons-mfd-svg.0" was started. The adapter "info.0" was started. The adapter "iot.0" was started. The adapter "jarvis.0" was started. The adapter "lovelace.0" was started. The adapter "net-tools.0" was started. The adapter "openligadb.0" was started. The adapter "renault.0" was started. The adapter "tankerkoenig.0" was started. The adapter "text2command.0" was started. The adapter "tradfri.0" was started. The adapter "trashschedule.0" was started. The adapter "unifi.0" was started. The adapter "vis-google-fonts.0" was started. The adapter "vis-justgage.0" was started. The adapter "vis-timeandweather.0" was started. The adapter "vis.0" was started. The adapter "web.0" was started. The adapter "web.1" was started. The adapter "vis-materialdesign.0" was started. The adapter "simple-api.0" was started. root@iobroker:/opt/iobroker#
aber der Container bleibt im selben Zustand.
-
Starting iobroker controller daemon..
Log von iobroker wäre interessant
iob logs --watch
und
iobroker list instances
-
@andre sagte in [HowTo] ioBroker unter Docker auf Synology DiskStation:
@clfberlin Hast du versucht von v7.1.2 auf v7.2.0 zu gehen? Waren alle deine Adapter und der js-controller vorher auf der aktuellsten (stable) Version?was war hiermit !?