NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
@dtp sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Kleine Frage. Jedes Mal, wenn ich einen installierten Adapter löschen will, sagt mir der ioBroker, dass das nicht funktioniert hat und dass ich das manuell machen soll. Das Installieren eines Adapters sowie der Instanzen und das Aktualisieren klappt dagegen einwandfrei. Jemand eine Idee?
Dieses Verhalten ist bei mir das Gleiche unter der Docker Version 4.0
-
@Knallochse sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
Dieses Verhalten ist bei mir das Gleiche unter der Docker Version 4.0
Danke.
@andre Kannst du versuchen, das zu fixen?
-
@andre said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@whfor Habe es auf meinem Testsystem zum Laufen gebracht. Vielleicht hilft dies hier:
Hallo
ich habe iobroker auf meinem Synology NAS als Docker Container laufen (erstellt nach dem in diesem Thread verlinkten Tutorial) und möchte gerne im node-red Adapter das Modul amazon-echo-hub (Modul von node-red) verwenden, um mit meinem Echo Dot 3 zu kommunizieren.Das node-red Modul muss den Echo bekanntermaßen ja zwingend auf Port 80 ansprechen. Da dieses node-red standardmäßig nicht möglich war Fehlermeldung: "unable to start on port 80" in node-red.
Wollte ich in der Konsole von iobroker über den im obigen Post erwähnten Befehl:setcap 'cap_net_bind_service=+ep' `which node`
node-red die Berechtigung erteilen Port 80 zu verwenden. Leider ohne Erflog beim Ausführen der Anweisung erhalte ich nur folgenden output in der Konsole:
root@iobroker:/opt/iobroker# setcap 'cap_net_bind_service=+ep' `which node` Failed to set capabilities on file `/usr/bin/node' (Operation not supported) The value of the capability argument is not permitted for a file. Or the file is not a regular (non-symlink) file
Zutr Lösung des Problems habe nochmals in Portainer nohmals einen aktuellen ioBroker-Container über "buanet/iobroker:latest" erstellt und darauf geachtet, dass unter Capabilities NET_BIND_SERVICE aktiviert ist, leider mit selbigen Ergebnis, dass mir beim Ausführen des Kommandos die oben genannte Fehlermeldung angezeigt wird.
Mein Setup:
Synology DS216+II (DSM 6.2.2)
Docker:- Portainer 1.21.0 (bridge)
- iobroker 3.6.12 (MACVLAN)
Woran könnte dieses jetzt liegen?
Bestehen noch andere Möglichkeiten Port 80 für node-red freizugeben? Ich habe noch etwas von iptabels gelesen, ist dies mit Betrieb als Docker Image überhapt möglich, falls ja wo müsste ich diese setzten?
ein starten von node-red mit root rechten über die Konsole mit sudo iobroker start node-red ist leider nicht Ausreichend, in node-red heißt es dann weiterhin "unable to start on port 80".Über Lösungsvorschläge bin ich dankbar.
Grüße
AndreasMod-Edit: Vollzitat gekürzt! Bitte vermeidet Vollzitate! Siehe Forum Regeln, Punkt 2
-
Hallo,
ich habe meine Docker Instanz nach der "neuen" Anleitung aufgesetzt, weil in der alten Node und der Js Controller als Update angemahnt wurden...
Habe die iobroker Instanz aber als host laufen.
Jetzt nach 4-5 Tagen ist sie abgeschmiert und lässt sich nicht mehr starten.
Eine neue Instanz an einem anderen Ort läuft an.
Aber natürlich ohne meine Adapter.
Fehler ist laut Log:
Bin abseits einer Anleitung, leider als DAU zu betrachten und wäre für Hilfe dankbar!!!
Einmal Starten um ein Backup laufen zu lassen, würde ja reichen...
Gruß Thorsten -
Jemand zufällig eine Idee, wie ich das nachfolgende Problem mit wscat in den Griff bekomme?
Brauch wscat für den Samsung.Tizen-Adapter, um einen Token von unserem TV zu empfangen.
-
Vielleicht hilft es: google meint es muss global installiert werden. Deswegen das -g
npm install -g wscat
-
@haselchen sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
npm install -g wscat
Danke für den Tipp. Es war aber noch nicht die ganze Miete. Mit
sudo npm install -g wscat
hat's letztlich funktioniert.
-
@andre said in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
bridge:
driver: bridge
ipam:
config:
- subnet: 172.18.0.0/16
gateway: 172.18.0.1
ip_range: 172.18.0.1/24Geht das so ?
version: '2.4' services: mqtt: restart: always ports: - "1884:1884" - "9001:9001" image: toke/mosquitto networks: fhem-network: {} volumes: - ./mqtt/config/:/mqtt/config/ - ./mqtt/log/:/mqtt/log/ - ./mqtt/data/:/mqtt/data/ portainer: restart: always image: portainer/portainer:1.21.0 volumes: - ./portainer/:/data - /var/run/docker.sock:/var/run/docker.sock ports: - "9000:9000" deconz: image: marthoc/deconz container_name: deconz network_mode: host restart: always volumes: - /opt/deconz:/root/.local/share/dresden-elektronik/deCONZ devices: - /dev/ttyUSB0 environment: - DECONZ_WEB_PORT=80 - DECONZ_WS_PORT=443 - DEBUG_INFO=5 - DEBUG_APS=0 - DEBUG_ZCL=0 - DEBUG_ZDP=0 - DEBUG_OTAU=0 mymediaforalexa: restart: always image: bizmodeller/mymediaforalexa ports: - "52050:52050" - "52051:52051" volumes: - ./Music:/opt/medialibrary \ - ./.MyMediaForAlexa:/opt/datadir networks: fhem-network: {} magic_mirro: restart: always image: bastilimbach/docker-magicmirror ports: - "85:8080" volumes: - ./magic_mirror/config:/opt/magic_mirror/config \ - ./magic_mirror/modules:/opt/magic_mirror/modules \ - ./magic_mirror/css:/opt/magic_mirror/css/custom.css \ networks: fhem-network: {} iobroker: restart: always image: buanet/iobroker:latest volumes: - /etc/localtime:/etc/localtime:ro - /home/pi/smarthome//iobroker:/opt/iobroker networks: macvlan0: ipv4_address: 192.168.200.17 fhem-network: {} networks: fhem-network: driver: bridge macvlan0: driver: macvlan driver_opts: parent: eth0 ipam: config: - subnet: 192.168.200.1/24 gateway: 192.168.200.1 ip_range: 192.168.200.17/32
Im docker compose. ?
-
@eve11 Hallo Heiko,
hast du die Version des Images gewechselt? Wie sieht deine Node-Version alt und neu aus (node -v)?
Falls du eine andere Major-Version verwendest, dann musst du auf jeden Fall reinstall.sh bzw. npm rebuild ausführen... Siehe dazu auch die offizielle ioBroker Doku zum Thema Node upgrade...MfG,
André -
@dtp sagte in [HowTo][Anleitung] Installation ioBroker in Docker auf Synology DiskStation:
@andre Kannst du versuchen, das zu fixen?
Wenn du mir sagst was ich fixen soll? Am liebsten per Issue auf Github....
MfG,
André -
HELP!
Ich hoffe, ich habe es nicht übersehen, dass jemand anderes das Problem bereits gepostet und gelöst hat...
Habe die V4.0 des Containers heute gestartet und obwohl ich eigentlich mit dem JS-Controller längst auf der Version 2.x war bin ich nun wohl wieder auf der V.1.5.14 gelandet.
Ich habe jetzt diese Befehle durch und probiert:
- reinstall.js > Installiert nur V.1.5.14 neu
- npm install ioBroker/ioBroker.js-controller > Installiert auch nur V.1.5.14 neu. Habe ich mit Endung --production und ohne probiert.
Container habe ich nun mehrfach neu angelegt, alles ohne Erfolg.
Hattet ihr auch solche Probleme nach einem Container-Update? Und wie kann es sein, dass der js-controller nach dem Update einen älteren Stand aufweist? Und wie habt ihr es ggf. gelöst?
Komme jetzt nicht mehr auf die Admin-Oberfläche etc....Lieben Dank für eure Hilfe!
-
@Kunibert
Ok, habe es gefixt bekommen aber nur durch eine neue ioBroker-Hülle. Habe den Container neu erstellt und das letzte Backup (Backitup-Adapter) wiederhergestellt. Damit stimmt jetzt auch die js-controller-Version wieder. Dennoch irritiert mich, wie das Problem überhaupt entstehen konnte. Wieso sich auch immer der js-controller selbstständig downgegradet hat... Ich hoffe, das passiert beim nächsten Container-Update nicht mehr -
@tcfigge
Hallo,
ich bin mit meinem Problem nicht weiter gekommen.
Wenn ich einen neuen Container starte, dann meine Ordner aus der alten Struktur einfach rüberkopiere, startet er zwar,meine installierten Adapter tauchen auch unter ADAPTER als installiert auf, aber nicht unter Instanzen...
Denn alten Container einen js.controller zu verpassen scheitert auch kläglich...
Hab so ziemlich alles an Befehlen eingegeben was ich finden konnte...
Kann mich jemand in die richtige Richtung schupsen?
Danke! -
Hallo Gemeinde...
aufgrund diverser Schwierigkeiten seit dem letzten Update habe ich mich entschlossen meinen Container (V1/2?) komplett neu aufzusetzen und ein das letzte bestehende Backup einzuspielen.
Portainer scheint ja nun state of the art zu sein und so schlage ich mich grade mit dem Netzwerk, bzw. mit der Entscheidung welches Netzwerk zu verwenden ist rum.
Leider ist im Tutorial nicht ein Wort zu den beiden "einfachen" Varianten verloren worden.
Also technisch scheint mir die MACVLAN Variante eh am besten aber da habe ich doch eine entscheidende Frage:
Meine WLAN-Teilnehmer, die mit dem iob kommunizieren (Modbus SPS, diverser China-Trödel, VIS etc.) liegen aktuell im Standard Heimnetzwerk, wie alle Teilnehmer.
Wenn ich nun dieses MACVLAN verwende baue ich doch im Prinzip ein komplett neues Netzwerk auf mit eigenem Adressbereich.
Das heißt ich muss alle Teilnehmer auch an dieses neue Netzwerk anknoten?
Also von jedem Familienmitglied auch das Handy in ein anderes Netz heben?
Irgendwie verstehe ich im Moment noch so gar nicht wie das funktioniert und ob der Aufwand (wenn es so ist wie ich glaube) im Verhältnis zum Nutzen steht. (Wer macht da eigentlich das Routing?)
Bisher läuft der Docker mit host. Das war das einzige was seinerzeit problemlos lief mit nahezu allen Adaptern.Kleine Info zu meinem Verständnislevel:
Bei mir ist der ioBroker kein Fulltime-Hobby!
Ich habe sicherlich deutlich mehr als Noob-Level, bin aber weit vom Nerd entfernt.
Also bitte ich um Hilfe für einen Netzwerk- und Linux-Legasteniker.Danke....
-
Ich hatte mich auch für Portainer entschieden, habe es aber wieder Beiseite geschoben, da es für normale ioBroker Installationen nicht essentiell ist.
Gerade die Netzwerkeinstellungen sind nicht unbedingt etwas für Laien.
Darum habe ich ioBroker einfach wie gehabt, nur im Docker als Host installiert und alles funktioniert wunderbar.
-
@tcfigge
Sieht aus als würden deine Befehle am "sudo" scheitern. Welche netzwerkkonfiguration nutzt du? MACVLAN. Bridge oder Host?
Hast du mal ein "npm rebuild" versucht?MfG,
André -
@Telefisch
Hallo,
MACVLAN ist nur für fortgeschrittene Nutzer zu empfehlen. Hier benötigt man schon ein wenig Hintergrundwissen zum Thema Netzwerk....
Hast du mal hier (https://buanet.de/knowledge-base/networking/) gestöbert? Im Tutorial war leider kein Platz um ausführlich auf die Möglichkeiten in Bezug auf Netzwerk ein zu gehen. Daher der Hinweis, dass ich es in die Knowledge Base ausgelagert habe...Was MACVLAN angeht, hast bist du gedanklich irgendwo falsch abgebogen. Es wird hier kein anderes Netz angelegt. Du definierst nur einen speziellen Netzbereich (im Tutorial genau eine Adresse) aus deinem Heimnetz. Dieses Netz/ bzw. die eine Adresse wird dann zusätzlich zu der Adresse deiner DS virtuell auf die Netzwerkschnittstelle der DS gelegt. Über die IP der DS erreichst du dann die DS und über die MACVLAN-Adresse den ioBroker..
Lange Rede, kurzer Sinn, für dich ist es wahrscheinlich besser die Host-Variante zu verwenden.
Dabei verwendet der ioBroker die selbe IP-Adresse wie deine DS. Von außen fühlt es sich dann in etwa so an, als würde der ioBroker nur eine App auf der DS sein....
Einrichtung ist relativ simpel. Einfach als Netzwerk bei der Erstellung des Containers das Netzwerk "host" auswählen...Anders als @StM47 empfehle ich grundsätzlich Portainer als Weboberfläche für Docker. Hier hat man einfach mehr Möglichkeiten.
MfG,
André -
@andre Danke für Deine Antwort...
Naja so ein Noob bin ich nun auch nicht. Ich hatte lediglich ein Verständnisproble mit der Aussage "ich vertraue den chinesischen Netzwerkteilnehmern nicht", die ich in dem Zusammenhang irgendwo gelesen habe.
Da war ich von ausgegangen, dass hier ein echtes VLAN angelegt wird.
Also wird hier im Grunde nur eine virtuelle Netzwerkschnittstelle angelegt.
Das würde sich im Grunde dann ja lediglich auf die VIS-User auswirken.Ich habe aber grade ein viel größeres Problem.
Ich habe das Image meines "alten" Docker aktualisiert und kann jetzt einige Adapter nicht mehr aktualisieren.
Jetzt mache ich schon seit zwei Tagen damit rum das irgendwie grade zu biegen, u.a. mit diesen HowTos:
https://forum.iobroker.net/topic/22867/how-to-node-js-für-iobroker-richtig-updaten/2
Blöd ist nur, dass die hälfte der Befehle so gar nicht funktioniert.
Es ist ja richtig, dass ich das im Terminal des Docker-Container ausführen muss?
Ich bekomme da solche Meldungen:
root@iobroker:/opt/iobroker# npm rebuild
sudo: Hostname iobroker kann nicht aufgelö st werden
sudo: Die Autit-Nachricht kann nicht gesendet werden: Unbekannter Fehler -1
sudo: Pam_open_session: Systemfehler
sudo: Regelwerks-Plugin konnte Sitzung nicht initialisieren"curl -sL https://iobroker.net/fix.sh | bash -" funktioniert nur, wenn das letzte "-" Zeichen wegfällt.
Sonst kommt curl: Option -; is unknown
Ist das richtig? was bedeutet das letzte -?Sowas und ähnliches habe ich sehr häufig.
Irgend eine Idee, wie ich am besten vorgehe?PS: Im Moment bin ich noch direkt im Docker, ohne portainer
-
@StM47 sooo gewaltig kompliziert ist das nun auch wieder nicht.
Ich weiß wie mein Netzwerk aufgebaut ist, welche Adressen verfügbar sind (ohne vom DHCP Server verwendet zu werden).
Welche Netzwerkschnittstelle meine DS hat ist auch nicht so kompliziert herauszufinden.
Da meines Wissens nach Linux immer mit eth0 beginnt, kann es nur eth0 oder eth1 sein.
Ein Blick in die Netzwerk-Einstellungen verrät mir, dass das Haupt-Netzwerk an Port 1 hängt, somit ist die Wahrscheinlichkeit dass es eth0 ist schonmal sehr hoch.Mein Verständnisproblem war, dass ich davon ausgegangen war, dass damit ein komplettes VLAN angelegt wird.
Ich probier das mal, Versuch macht kluch... -
Also das hat ganz hervorragend geklappt.
Jetzt hab ich nur noch das Problem, dass einige Adapter nicht upgedatet werden können, darunter der Admin@andre kann man das volume im nachhinein im portainer ändern?
Zumindest die Kommandozeile scheint da gut zu laufen und schmeisst mir beim manuellen update des cloud-adapters einen Fehler, der auf die Rechte hindeutet.
Ich würde dann vorerst nochmal das iobroker-mount Verzeichnis aus meiner alten Installation probieren.Edit: hab nen neuen Container mit dem „alten“ Volume-Pfad angelegt, bekomme aber immernoch komische Fehler: