NEWS
[HowTo] ioBroker unter Docker auf Synology DiskStation
-
Muss man wirklich mal durchtesten.
Ich meinte, wenn watchdog mir das Image:latest durch ein aktuelles ersetzt. Ich glaube, man müsste das buanet-Image Forken und das fehlende wget-Paket direkt ins Image einpflanzen. Aber das ist mir zu hoch.
… oder ich baue mir ein Script, welches beim starten von iobroker mit exec wget (drüber-)installiert? Das müsste gehen, oder? `
Hallo,
am besten einfach mal fragen. Ich kann das Paket mit in den Container nehmen… Darf ich fragen was du mit wget machst?
Die Export-Funktion ist für Container Updates nicht geeignet. Damit wird ja der gesamte Container inklusive allem Inhalt exportiert. Bei einem neuerlichen Import findet also keine Aktualisierung statt.
PS: Sorry falls ich im moment ein bisschen verzögert antworte, aber weil tapatalk nicht mehr geht bekomme ich weder Benachrichtigungen noch kann ich von unterwegs schnell mal meinen Senf dazu geben...
MfG,
André
[EDIT] wget ist drin. Läuft unter Beta. Build ist angestoßen, das neue Image sollte demnächst zur Verfügung stehen.
-
Aber dann habe ich doch auch den alten Container, oder? Und bei den Einstellungen exportieren wird wget bestimmt nicht mitexportiert? `
Ich kann meine Container einzeln exportieren…...also mit Auswahl welchen ich möchte. Ich denke es wird der komplette Container exportiert, also alles was dort gemacht wurde.
Hab ich so noch nie versucht, da mir ein Rückspielen der gesicherten Ordner gereicht hat `
Hallo,
das Exportieren dient maximal zur Datensicherung (auch wenn ich da eine andere Methode bevorzugen würde) nicht aber zum Aktualisieren eines Containers. Siehe dazu auch der Punkt zur Aktualisierung des Containers in der Anleitung.
Zur Aktualisierung gibt es nur zwei Möglichkeiten: Entweder über die Kommandozeile den bestehenden Container hin und wieder updaten (apt-get update, apt-get upgrade) oder ab und an Container löschen, Image updaten, Container neu erstellen (siehe Anleitung).
MfG,
André
-
Danke, andre! Das wäre der Hammer wenn wget mit drin ist! :ugeek:
wget nutze ich in verschiedenen Scripten, um ein Standbild von meiner Webcam D-Link DSC-2332L abzuholen. Das Standbild wird dann innerhalb von 1-2 Sekunden erzeugt und wird dann danach per Telegram an mich verschickt. Auslöser sind verschiedene Sachen, wenn jemand klingelt oder wenn ich es per Telegrambefehl abfordere. Den Code kann ic hgerne mal posten, er müsste aber in den Untiefen des Forums hier schon irgendwo sein (habe ich aber nicht gefunden).
-
Danke, andre! Das wäre der Hammer wenn wget mit drin ist! :ugeek:
wget nutze ich in verschiedenen Scripten, um ein Standbild von meiner Webcam D-Link DSC-2332L abzuholen. Das Standbild wird dann innerhalb von 1-2 Sekunden erzeugt und wird dann danach per Telegram an mich verschickt. Auslöser sind verschiedene Sachen, wenn jemand klingelt oder wenn ich es per Telegrambefehl abfordere. Den Code kann ic hgerne mal posten, er müsste aber in den Untiefen des Forums hier schon irgendwo sein (habe ich aber nicht gefunden). `
Hallo,
Build ist durchgelaufen, also sollte wget ab sofort im neuen Beta-Image drin sein.
Offtopic:
! Ok, ich mache das selbe mit meiner Cam. Allerdings komme ich ohne wget aus. Ich mache das per request. habe ich hier auch irgendwo im Forum gesehen:
var source_url = 'http://xxxx', // Pfad zum Kamerabild dest_path = '/opt/transfer/webcam/'; // Pfad zum Speicherort var request = require('request'); var fs = require('fs');
! ````
function saveImage() {
request.get({url: source_url, encoding: 'binary'}, function (err, response, body) {
fs.writeFile(dest_path + 'kamerabild.jpg', body, 'binary', function(err) { // Dateiname Kamerabild
! if (err) {
log('Fehler beim Bild speichern: ' + err, 'warn');
} else {
log('Webcam Bild gespeichert');
sendImage(dest_path + 'kamearbild.jpg'); // Optional Kamerabild senden, bei mir mit Telegram.
}
});
});
}>! Sind natürlich nur die entsprechenden Codefragmente. Aber so geht es bei mir. :) >! Habe übrigens eine Foscam. MfG, André
-
Hallo,
Build ist durchgelaufen, also sollte wget ab sofort im neuen Beta-Image drin sein. `
Hi André!
habe gerade von :latest auf :beta umgestellt und es klappt hervorragend. wget ist nun "ab Werk" installiert. Danke vielmals!
Hier mein wget - Foto Abholbefehl per Telegram:
! ````
// ###################################################
// Webcamfoto schicken
! on("telegram.0.communicate.request", function (obj) {
if (obj.newState.val == "[xxx]torfoto" || obj.newState.val == "[xxx]/torfoto") {
getfoto();
setState("telegram.0.communicate.request","leer");
}
});
! function getfoto() {
exec ("wget --user=xxxx--password=xxxx-N -P /opt/iobroker http://192.168.1.xxx/dms?nowprofileid=1.jpg");
sendphoto(); // Rufe Funktion sendphoto aufsetState("telegram.0.communicate.request","leer"); sendTo('telegram', 'Was noch?' + '\n' + '/haus' + '\n' + '/haupthahn' + '\n' + '/heckehatti' + '\n' + '/reboot');
}
! function sendphoto() { // Warteschleife, 2 Sekunden, damit das Bild erzeugt wird
setTimeout(waittime, 2000);
}
! function waittime() { // Nach der Warteschleife, sende das Bild per Telegram
sendTo('telegram', "/opt/iobroker/dms?nowprofileid=1.jpg");
}
! ```` -
Der Docker Container läuft perfekt, vielen Dank dafür.
Habe noch eine Synology-spezifische Frage: Ich möchte auch die ioBroker-Authentifikatiion zum Schutz von admin und vis in Betrieb nehmen. Wie an mehreren Stellen zu lesen ist, geht das nur in Verbindung mit "Verschlüsselung(HTTPS)" und eigenen Zertifikaten. Das funktioniert bei mir allerdings nicht, da ja die Synology die Ports 80 & 443 besetzt hat und sich darüber selbst Zertifikate über Lets encrypt beschafft.
Bisher habe ich das immer gelöst, in dem ich unter Synology/Anwendungen den reverse Proxy (nginx) aktiviert habe und lasse bepielsweise nextcloud.xxx.myds.me auf den Docker-Port der Anwendung verweisen, so dass ich hier kein Zertifikat mehr benötige.
Das würde ich für den ioBroker auch so machen und alles den Zugriff nur noch über die IP der Synology zu damit keiner den https umgehen kann.
Wie kann ich den hhtps-Zwang für die Authentifikation befriedigen wenn ich Port 80 für iobroker nicht bereit stellen kann?
Muss ich die Zertifikate etwa alle 3 Monate von der Synology in ioBroker importieren?
Gruß, Ralf
-
Hey! Cooles Projekt mit Docker. Funktioniert einwandfrei. Gute Anleitung!
Wollte heute mal ein Update fahren. Habe aus diesem Forumsbeitrag rausgelesen, dass man folgende Kombination verwenden kann um ein Update des Containers zu machen und danach ein Update von js-controller durchführen kann:
Update Container:````
apt-get update
apt-get upgradeUpdate js-controller:```` pkill io npm install iobroker.js-controller –production node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
Leider kommt dann folgender Fehler:````
root@buanet-iobroker1:/opt/iobroker# pkill io
root@buanet-iobroker1:/opt/iobroker# npm install iobroker.js-controller –product
ion
npm ERR! addLocal Could not install /opt/iobroker/–production
npm ERR! Linux 3.10.102
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.js-controller"
"–production"
npm ERR! node v6.13.1
npm ERR! npm v3.10.10
npm ERR! path /opt/iobroker/–production
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall opennpm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–producti
on'
npm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–producti
on'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoentnpm ERR! Please include the following file with any support request:
npm ERR! /opt/iobroker/npm-debug.log
[1]+ Exit 1 node node_modules/iobroker.js-controller/controlle
r.js > /opt/scripts/docker_iobroker_log.txt 2>&1
root@buanet-iobroker1:/opt/iobroker# node node_modules/iobroker.js-controller/co
ntroller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
[1] 10117Habt Ihr eine Idee? Danke euch!
-
Hey! Cooles Projekt mit Docker. Funktioniert einwandfrei. Gute Anleitung!
Wollte heute mal ein Update fahren. Habe aus diesem Forumsbeitrag rausgelesen, dass man folgende Kombination verwenden kann um ein Update des Containers zu machen und danach ein Update von js-controller durchführen kann:
Update Container:````
apt-get update
apt-get upgradeUpdate js-controller:```` pkill io npm install iobroker.js-controller –production node node_modules/iobroker.js-controller/controller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
Leider kommt dann folgender Fehler:````
root@buanet-iobroker1:/opt/iobroker# pkill io
root@buanet-iobroker1:/opt/iobroker# npm install iobroker.js-controller –product
ion
npm ERR! addLocal Could not install /opt/iobroker/–production
npm ERR! Linux 3.10.102
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.js-controller"
"–production"
npm ERR! node v6.13.1
npm ERR! npm v3.10.10
npm ERR! path /opt/iobroker/–production
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall opennpm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–producti
on'
npm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–producti
on'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoentnpm ERR! Please include the following file with any support request:
npm ERR! /opt/iobroker/npm-debug.log
[1]+ Exit 1 node node_modules/iobroker.js-controller/controlle
r.js > /opt/scripts/docker_iobroker_log.txt 2>&1
root@buanet-iobroker1:/opt/iobroker# node node_modules/iobroker.js-controller/co
ntroller.js >/opt/scripts/docker_iobroker_log.txt 2>&1 &
[1] 10117Habt Ihr eine Idee? Danke euch! `
Hallo,
das ist kein Docker-spezifisches Problem. Dir fehlt einfach das zweite Minuszeichen im Befehl:
npm install iobroker.js-controller --production
MfG,
André
Gesendet von iPad mit Tapatalk Pro
-
ah ok, dass stimmt natürlich.
Kommen trotzdem noch Fehler. Noch eine Idee?
root@buanet-iobroker1:/opt/iobroker# pkill io [1]+ Exit 1 node node_modules/iobroker.js-controller/controlle r.js > /opt/scripts/docker_iobroker_log.txt 2>&1 root@buanet-iobroker1:/opt/iobroker# npm install iobroker.js-controller –-produc tion npm ERR! addLocal Could not install /opt/iobroker/–-production npm ERR! Linux 3.10.102 npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.js-controller" "–-production" npm ERR! node v6.13.1 npm ERR! npm v3.10.10 npm ERR! path /opt/iobroker/–-production npm ERR! code ENOENT npm ERR! errno -2 npm ERR! syscall open npm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–-product ion' npm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–-product ion' npm ERR! enoent This is most likely not a problem with npm itself npm ERR! enoent and is related to npm not being able to find a file. npm ERR! enoent npm ERR! Please include the following file with any support request: npm ERR! /opt/iobroker/npm-debug.log
-
ah ok, dass stimmt natürlich.
Kommen trotzdem noch Fehler. Noch eine Idee?
root@buanet-iobroker1:/opt/iobroker# pkill io [1]+ Exit 1 node node_modules/iobroker.js-controller/controlle r.js > /opt/scripts/docker_iobroker_log.txt 2>&1 root@buanet-iobroker1:/opt/iobroker# npm install iobroker.js-controller –-produc tion npm ERR! addLocal Could not install /opt/iobroker/–-production npm ERR! Linux 3.10.102 npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "install" "iobroker.js-controller" "–-production" npm ERR! node v6.13.1 npm ERR! npm v3.10.10 npm ERR! path /opt/iobroker/–-production npm ERR! code ENOENT npm ERR! errno -2 npm ERR! syscall open npm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–-product ion' npm ERR! enoent ENOENT: no such file or directory, open '/opt/iobroker/–-product ion' npm ERR! enoent This is most likely not a problem with npm itself npm ERR! enoent and is related to npm not being able to find a file. npm ERR! enoent npm ERR! Please include the following file with any support request: npm ERR! /opt/iobroker/npm-debug.log ```` ` Hallo,
immernoch derselbe Fehler. Schau dir mal die Bindestriche vor production an.
Hatte das in meinem Post per copy and paste übernommen. Sollte jetzt korrigiert sein…
MfG,
André
Gesendet von meinem Smartphone mit Tapatalk
-
Der Docker Container läuft perfekt, vielen Dank dafür.
Habe noch eine Synology-spezifische Frage: Ich möchte auch die ioBroker-Authentifikatiion zum Schutz von admin und vis in Betrieb nehmen. Wie an mehreren Stellen zu lesen ist, geht das nur in Verbindung mit "Verschlüsselung(HTTPS)" und eigenen Zertifikaten. Das funktioniert bei mir allerdings nicht, da ja die Synology die Ports 80 & 443 besetzt hat und sich darüber selbst Zertifikate über Lets encrypt beschafft.
Bisher habe ich das immer gelöst, in dem ich unter Synology/Anwendungen den reverse Proxy (nginx) aktiviert habe und lasse bepielsweise nextcloud.xxx.myds.me auf den Docker-Port der Anwendung verweisen, so dass ich hier kein Zertifikat mehr benötige.
Das würde ich für den ioBroker auch so machen und alles den Zugriff nur noch über die IP der Synology zu damit keiner den https umgehen kann.
Wie kann ich den hhtps-Zwang für die Authentifikation befriedigen wenn ich Port 80 für iobroker nicht bereit stellen kann?
Muss ich die Zertifikate etwa alle 3 Monate von der Synology in ioBroker importieren?
Gruß, Ralf `
Hallo Ralf,
wollte das immer mal einrichten, habe es bisher aber nicht geschafft.
Wenn du da Erkenntnisse hast, würde ich mich über einen Wissensaustausch freuen. Wäre ein schönes Thema für ein ergänzendes Tutorial.
Wenn ich richtig liege hast du mich ja auch schon per Mail kontaktiert. Ich werde heute Abend mal mein Notebook aufklappen und mir das Thema genauer anschauen. Melde mich dann per Mail bei dir.
Bin aktuell im Oster-Urlaub…
MfG,
André
Gesendet von meinem Smartphone mit Tapatalk
-
Mhhh… das hat zwar im ersten Augenblick geklappt. Jetzt geht nur leider gar nichts mehr
Siehe Anhang vom Terminal...
Kannst du helfen?
Vielen Dank!
6445_screenshot_2018-03-29_13.54.44.png
6445_screenshot_2018-03-29_13.55.07.png -
Mhhh… das hat zwar im ersten Augenblick geklappt. Jetzt geht nur leider gar nichts mehr
Siehe Anhang vom Terminal...
Kannst du helfen?
Vielen Dank! ` Mhh, kann leider mobil nur wenig auf dem Screenshot erkennen. Wenn ich das richtig verstehe meckert er ein Paket "pseudomap" an. Versuch mal npm install pseudomap
Dann ggf. Nochmal den js-controller drüber installieren und den Container neu starten.
Das Problem könnte aber auch bei nicht Docker Installationen auftreten. Hast du mal im Forum danach gesucht?
MfG,
André
Gesendet von meinem Smartphone mit Tapatalk
-
Hat sich erstmal erledigt. Danke für den Support und frohe Ostern!
-
Meine Uhrzeit in iobroker ist genau 2 Stunden falsch. Auf dem NAS ist die Zeit aber richtig. Wie kann ich die Zeit bei dem Docker-Image ändern?
Danke!
-
Meine Uhrzeit in iobroker ist genau 2 Stunden falsch. Auf dem NAS ist die Zeit aber richtig. Wie kann ich die Zeit bei dem Docker-Image ändern?
Danke! `
probiermal mit
dpkg-reconfigure tzdata
-
Top Funktioniert. Vielleicht kann man das ganze in zukünftige Docker Images integrieren.
Vielen Dank!
-
Top Funktioniert. Vielleicht kann man das ganze in zukünftige Docker Images integrieren.
Vielen Dank! `
Hallo,das kann man… ist sogar schon lange im Image enthalten. Kann mir nicht erklären warum es ab und an nicht stimmt. Hatte ich selbst auch schon einmal.
Zum Test habe ich gerade noch einmal einen frischen Testcontainer aus dem aktuellen Beta-Image erstellt. Zeitzonen und locales Einstellungen ok... Wenn mir jemand die Ursache für die manchmal fehlerhafte Zeitzoneneinstellung zeigt, tue ich mein Bestes für nen Fix. Aktuell kann ich aber keinen Fehler feststellen
MfG,
André
-
Also ich hab's so gelöst: https://forum.iobroker.net/viewtopic.php?f=22&t=13014&p=137748#p137748!
Gruß,
Thorsten
-
@dtp:Also ich hab's so gelöst: https://forum.iobroker.net/viewtopic.php?f=22&t=13014&p=137748#p137748!
Gruß,
Thorsten `
Danke für den Tipp. Das kann ich mit in das Image einbauen. bleibt nur die Frage warum meine Zeitzone stimmt wenn ich einen neuen Container erstelle und bei anderen nicht…
MfG,
André
Gesendet von iPad mit Tapatalk Pro