Offizielles FHEM Docker Basis Image für verschiedene Plattformen

Begonnen von Loredo, 28 Juli 2018, 21:24:57

Vorheriges Thema - Nächstes Thema

volschin

Der Zugriff per —net host ist anscheinend notwendig, um den Bluetooth Stack anzusprechen.
Ich verwende es für das PRESENCE Modul und mache es über LAN-Bluetooth in einen eigenen Container ausgelagert. Damit kann FHEM weiter im Bridge-Modus laufen.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

Sturi2011

Hallo,

In dem Docker Image wird die Version von OpenSSL aus Dezember 19 verwendet.
Diese führte die Option CipherString = DEFAULT@SECLEVEL=2 in der
/etc/ssl/openssl.conf ein. Damit werden Zertifikate unter 2k Schlüssellänge nicht
mehr unterstützt. Da viele MQTT Geräte nur schwache Algorithmen verwenden ist
hier ein Auskommentieren oder das Setzen von CipherString = DEFAULT@SECLEVEL=1
erforderlich. Bitte in die Beschreibung aufnehmen oder direkt über das Dockerfile
anpassen.

Vgl.:
https://wiki.debian.org/ContinuousIntegration/TriagingTips/openssl-1.1.1

Gruß Andreas

volschin

#1007
Zitat von: Sturi2011 am 28 September 2020, 15:02:31Da viele MQTT Geräte nur schwache Algorithmen verwenden ist
hier ein Auskommentieren oder das Setzen von CipherString = DEFAULT@SECLEVEL=1
erforderlich. Bitte in die Beschreibung aufnehmen oder direkt über das Dockerfile
anpassen.
Das wäre aus meiner Sicht wieder mal das Kurieren an Symptomen mit Einfluss auf das ganze System. Wie ersichtlich handelt es sich hier um einen System-DEFAULT, den eine Applikation auf das benötigte Niveau umsetzen kann.
Das wäre der richtige Weg. Andere Distributionen werden hier sicherlich nachziehen und das Problem sollte im MQTT-Modul gelöst werden.

PS: Ich habe mir das mal kurz angesehen. Der eigentliche Code für die OpenSSL-Ansteuerung ist in der TcpServerUtils.pm. Der müsste erweitert werden, um den CipherString setzen zu können. MQTT bräuchte dann eine Steuerung. Ist die Frage, wieviel man da freigibt. Ich würde das ganze wahrscheinlich als Attribut SSL_SECLEVEL nennen und nur 0, 1 und 2 auswählbar machen.

Code für das Protokoll ist sowieso schon drin:
  if($hash->{SSL}) {
    # Forum #27565: SSLv23:!SSLv3:!SSLv2', #35004: TLSv12:!SSLv3
    my $sslVersion = AttrVal($hash->{NAME}, "sslVersion",
                     AttrVal("global", "sslVersion", undef));

Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

Sturi2011

Hallo,

das wäre mit Sicherheit die sicherere Methode.
Die Änderung in der openssl.con betriff sonst den gesamten Host.
Es muss halt dann für alle Module, die TCPServerutils.pm benutzen angepasst werden.

Das andere ist eher ein quick & dirty Workaround.

Gruß Andreas

moonsorrox

#1009
ich habe mir das heute mal auf meinem Unraid Server installiert, war mir nicht so ganz klar wie ich das eigentlich machen soll und habe es aber hinbekommen...

Was mich interessiert ist die latest Version, meine ist Latest Revision: 22889.
Das ist ja momentan die aktuelle.

Auf der Startseite hatte ich gesehen das dort unter image.version aber die 5.8_1.1.0 steht
Bei mir steht image.version 6.0-s22528_v2.2.4 aktuell haben wir ja schon 5.9..... ist unter Docker die 6.0 schon die aktuelle..?

Ein Update hatte ich gemacht und es ist wie geschrieben die latest. Ein weitere Check sagt nothing to do...
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

volschin

Zitat von: Sturi2011 am 30 September 2020, 12:28:52
das wäre mit Sicherheit die sicherere Methode.
Die Änderung in der openssl.con betriff sonst den gesamten Host.
Es muss halt dann für alle Module, die TCPServerutils.pm benutzen angepasst werden.

Das andere ist eher ein quick & dirty Workaround.
Nein, es muss nicht für alle Module angepasst werden. Typischerweise arbeitet man mit einem Default, der es dann auch beim Standard belässt. Nur wenn das Modul aktiv eingreift, wird auch im Zentralmodul eingegriffen. Und das initiiert meines Wissens für jeden Port eine eigene Instanz.
Intel NUC+Ubuntu 22.04+Docker+FHEM6
HomeMatic: HM-MOD-RPI-PCB+HM-USB-CFG2+hmland+diverse, HUE: Hue-Bridge, RaspBee+deCONZ+diverse
Amzn Dash-Buttons, Siro Rollos
4xRPi, 4xCO20, OWL+USB, HarmonyHub, FRITZ!Box 7590, Echo Dots+Show8, Logi Circle 2, HomeBridge
TIG Stack (Telegraf, InfluxDB, Grafana)

Sturi2011

Hallo,

das überschreibt aber im Docker Image die gesetzte default scheinbar nicht - siehe ab diesem Post:
https://forum.fhem.de/index.php/topic,114166.msg1088260.html#msg1088260

Gruß Andreas

moonsorrox

ich habe bei mir Fhem nach dem vorgehen auf der 1. Seite installiert, allerdings auf einem Unraid Server.
Der hat ja einige Apps/Docker Image schon dabei, aber eben fhem nicht.

Wenn ich das fhem Docker jetzt mal absichern möchte, finde ich es gar nicht...
Die Docker Container die Unraid selbst installiert befinden sich alle an einer STelle, sodas ich diese alle mit dem BackUp Program sichern kann, aber eben nicht fhem.

Ich hänge mal ein Screenshot ran wo die ganzen Container sich befinden da sieht man das besser
Ich habe da eben die Container
binhex-plex
DiskSpeed
LogitechmediaServer usw.

Aber fhem finde ich nicht, wie im zweiten Screenshot zu sehen ist im /opt Verzeichnis nichts drin.
Wo ist fhem jetzt gelandet.ß
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

guhu

Ist Dir das Prinzip hinter Docker vertraut? Entscheidend ist das Mapping der Volumes für die Persistenz. Da, wo Du das Mapping hingelegt hast, da sind die Daten für die Sicherung.
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

moonsorrox

Zitat von: guhu am 07 Oktober 2020, 11:08:50
Ist Dir das Prinzip hinter Docker vertraut? Entscheidend ist das Mapping der Volumes für die Persistenz. Da, wo Du das Mapping hingelegt hast, da sind die Daten für die Sicherung.
also ich bin absoluter Docker Neuling und versuche mich da rein zu arbeiten, fällt mir aber momentan etwas schwer.... zu Docker bin ich gekommen weil ich mir einen Unraid Server gebaut habe mit dem ich gut zurecht komme und der einfach zu erstellen ist und prima läuft.
Gekommen bin ich von Proxmox, welcher mir aber zusehends Schwierigkeiten machte.

Auf dem Unraid Server befindet sich ein Apps Store sage ich mal so, der von der Community betreut und wohl auch erstellt wurde und in diesen sind eben die ganzen Docker Container.

Soll heißen ich erstelle mir mit dem App Store einen Docker Container mit ganz geringen Configurationen und die Dinger laufen ohne große Kenntnisse.
z.B. habe ich dort einen Plex , LogitechMediaServer usw.am laufen und dieses ohne große Docker Kenntnisse.
Einen fhem Server gibt es so im App Store nicht, aber der wurde ja hier vorgestellt und den habe ich mir mit diesen Forumsthread und Github erstellt.
Nur dieser Fhem Container ist nich zu finden und mit einem FTP komme ich nicht auf den Fhem Server um  zu suchen und dann eben Dateien rein zu schieben, weil ich nicht alles neu erstellen möchte da mein Fhem doch schon erheblich gewachsen ist.
Das mit dem Mapping sagt mir gar nichts  :-\
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

guhu

.. dann schau mal nach Docker Grundlagen (unabhängig von FHEM). Und im ersten Beitrag unter "Wie benutze ich das Image?"
FHEM 5.9 auf Synology DS918+ (in Docker), HM-CFG-USB2 mit hmlan, HM-CC-RT-DN, HM-SEC-SC-2, nanoCUL,a-culfw,deCONZ,Brennenstuhl-Steckdosen,-FB
Module:ENIGMA2,SONOS,FRITZBOX,FB_CALLLIST,WDT_TIMER,VCONTROL300,WITHINGS

moonsorrox

Zitat von: guhu am 07 Oktober 2020, 14:31:33
.. dann schau mal nach Docker Grundlagen (unabhängig von FHEM). Und im ersten Beitrag unter "Wie benutze ich das Image?"
vielen Dank das hat mir sehr gut geholfen  ;)
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM

wk2000

Moin,

wäre es möglich, folgende Abhängigkeiten direkt ins Docker Image aufzunehmen:

sudo cpan Protocol::WebSocket
sudo pip3 install asyncio websockets importlib_metadata


Sie werden aktuell für die BETA des FHEM Python Binding benötigt, welches wiederum nötig ist, um GOOGLECAST Devices mit FHEM abzufragen. (Siehe: https://github.com/dominikkarall/fhem_pythonbinding)

Kann man ja auch händisch nachinstallieren, dauert aber immer und benötigt zusätzlichen Konfigurationsaufwand.

Hieran anschließend:
Werden eigentlich benötigte Abhängigkeiten von eingecheckten Modulen immer in das  Basisimage mit aufgenommen, oder wie wird das gehandhabt?

Lg,
wk

kadettilac89

Zitat von: wk2000 am 09 Oktober 2020, 13:51:56
Werden eigentlich benötigte Abhängigkeiten von eingecheckten Modulen immer in das  Basisimage mit aufgenommen, oder wie wird das gehandhabt?

nur die häufig benötigten. Sonst würde das Image zu groß werden.

Wie gehandhabt:
du hast per Parameter eigene pip-Module einbinden lassen

-e PIP_PKGS="package1 package2"

Wenn es komplexer wird kannst dir auch ein eigenes Image baun. From-Statement im Dockerfile ... hierzu gab es hier schon ein paar Posts ein bischen zurück.

moonsorrox

ich habe da mal eine generelle Frage.. weil ich etwas nicht verstehe und habe dazu einen eigenen Post aufgemacht
Intel-NUC i5: FHEM-Server 6.1 :: Perl v5.18.2

Homematic: HM-USB-CFG2,HM-CFG-LAN Adapter, HM-LC-BL1-FM, HM-LC-Sw1PBU-FM, HM-LC-Sw1-PI-2, HM-WDS10-TH-O, HM-CC-TC, HM-LC-SW2-FM