Seite 11 von 11

Re: Edomi 2.x für Desktop-Versionen der Timberwolf Server

Verfasst: Di Apr 13, 2021 8:34 am
von starwarsfan
Hallo miteinander,

die Version 2.03 des Edomi-Dockerimages basierend auf CentOS 7 ist verfügbar (1.63 mit CentOS 6 bleibt unverändert bestehen). Dockerfiles incl. Dokumentation befinden sich auf GitHub und hier kann das Image bezogen werden. Folgende Anmerkungen dazu:
  • Es gibt aktuell diese Versionen für x86_64 Hosts, welche auf dem Image centos:7 basieren:
    • amd64-latest
    • amd64-2.03
    • amd64-2.02.1
    • amd64-2.02
    • amd64-2.01.1
    • amd64-2.01
    • 1.63
    • 1.62
    • 1.61
    • 1.58
  • Das Basis-System wurde in das Image starwarsfan/edomi-baseimage ausgelagert, welches wiederum auf starwarsfan/edomi-baseimage-builder basiert. Damit müssen nun nicht bei jedem Build die CentOS-Pakete heruntergeladen und installiert werden
  • Edomi selbst befindet sich im Image starwarsfan/edomi-docker
  • Es sind Mountpoints für die Verzeichnisse /var/edomi-backups, /var/lib/mysql sowie /usr/local/edomi vorhanden, so dass insbesondere die Backups auf einem Verzeichnis auf dem Host vorgehalten werden können
  • Es wird nun bei jedem Start des Containers das Löschen der mysql.sock verhindert
  • Die Fehlermeldung bzgl. /dev/vcsa sollte nicht mehr auftreten.
  • Es sind zwingend die folgenden Optionen bei docker run ... zu verwenden:
    • -p <host-port>:<container-port>
      Es ist zwingend notwendig, die verwendeten Ports mit jeweils einem solchen Statement in den Container zu mappen. Das betrifft insbesondere den http- resp. https-Port, den Port für den Websocket sowie die drei Ports für die KNX-Kommunikation. Werden weitere Ports verwendet, bspw. für UDP-Traffic aus eigenen Logiken heraus, müssen diese ebenfalls nach obigem Schema gemappt werden.
    • --restart=on-failure
      Diese Option wird benötigt, damit der Container via Edomi-Admin-UI gestoppt oder neu gestartet werden kann.
  • Der Container kann via Edomi-Update-Mechanismus auch direkt aktualisiert werden, wenn eine neue Edomi-Version vorliegt.
  • PHP 7.4 mit den folgenden Paketen:
    • php
    • php-curl
    • php-gd
    • php-json
    • php-mbstring
    • php-mysql
    • php-process
    • php-snmp
    • php-soap
    • php-ssh2
    • php-xml
    • php-zip
  • Es ist eine ganze Reihe zusätzlicher Pakete für Userland-LBS'e bereits vorab installiert. Namentlich für die folgenden Bausteine:
    • Telegram-LBS (19000303 / 19000304)
    • Mailer-LBS (19000587)
    • Philips HUE Bridge (19000195)
    • MQTT Publish Server (19001051)
    • AlexaControl LBS (19000809)
  • Wird der Container selbst gebaut, kann die Version des zu verwendenden Edomi-Archives angegeben werden. Damit ist es möglich, bei einem Edomi-Update selbst schnell einen neuen Container zu bauen. Konkret geht das dann so:

    Code: Alles auswählen

    docker build -t starwarsfan/edomi-docker:latest --build-arg EDOMI_VERSION=EDOMI_200.tar .
    Damit wird das angegebene Archiv von http://edomi.de/download/install/ heruntergeladen und im Image installiert.
Achtung 1: Insbesondere bei der Verwendung des Edomi-eigenen Update-Mechanismus ist eine gewisse Vorsicht geboten! Wird ein neuer Container angelegt (docker run ...), so wird dieser die Edomi-Version enthalten, welche das ursprüngliche Docker-Image enthält. Mitunter passen da aber die vorhandenen Backup-Daten nicht dazu, wenn es bereits eine neuere Edomi-Version gab und der Container via Edomi selbst auf die neueste Version aktualisiert wurde. Es sollte als dafür gesorgt werden, dass es ein Backup der alten Edomi-Version gibt, welches nach einem erneuten docker run ... importiert und danach auf die neueste Edomi-Version aktualisiert wird.

Die empfohlene Vorgehensweise für ein Update des Basis-Images ist diese hier:
  1. Backup machen
  2. Edomi auf aktuelle Version updaten
  3. Erneutes Backup machen
  4. Neues Image pullen
  5. Edomi stoppen
  6. Neuen Container basierend auf neuem Image incl. der vorhandenen Volumes einrichten
  7. Neuen Container starten
  8. Backup einspielen
Achtung 2: Aufpassen beim Mapping des Websocket-Port! Dieser Port muss auf beiden Seiten gleich sein, also bspw. 8080:8080. Ausserdem muss dieser in der Environment-Variable WEBSOCKETPORT übergeben werden, weil er beim Start in die Edomi-Konfiguration eingetragen wird. Somit darf der Websocket-Port nicht über das Admin-UI geändert werden!

Achtung 3: Die Requirements für den MikroTik-LBS (19001059) sind nicht mehr enthalten, da diese aktuell das Image um über 1G aufblasen! Wenn sich das wieder normalisieren sollte, werde ich diese gern wieder mit reinnehmen.

Feedback ist wie immer gern gesehen, also immer her damit!

Re: Edomi 2.x für Desktop-Versionen der Timberwolf Server

Verfasst: Di Apr 13, 2021 12:10 pm
von Smart Jeanie
Auch wenn ich EDOMI nicht einsetze: Es ist schon krass zu sehen, mit welcher Hingabe Du da ran gehst. Danke dafür! :bow-yellow: :handgestures-thumbupright: