Docker

Wie du die PureLife Cloud mit Docker nutzt.

Es besteht die Möglichkeit, die PureLife Cloud über Docker zu betreiben. Hierfür verteilen wir ein Image über Github Packages sowie eine vollständige Umgebung, welche über ein Github Repository verteilt wird.

Der Zugriff auf das Image und das Repository wird über eine GitHub-Organisation verwaltet. Um Zugriff auf die Organisation zu erhalten, muss ein Konto (ein eigener Benutzer oder eine eigene Organisation) bei GitHub erstellt werden. Nachdem uns der Name des GitHub-Kontos mitgeteilt wurde, wird es als Mitglied zu der Organisation hinzugefügt. Ebenfalls muss über das Docker-CLI eine Anmeldung bei der GitHub-Docker-Registry erfolgen, um Docker das pulling des Images zu ermöglichen.

Nachdem diese Schritte abgeschlossen sind, kann auf das Repository zugegriffen werden. Das Repository enthält dabei eine docker-compose-Datei und mehrere Konfigurationsdateien für einen Multi-Container Set-up.

Der Set-up startet dabei die folgenden Services:

  1. Das Datenbankmanagementsystem PostgreSQL
  2. Den MQTT-Broker Mosquitto
  3. Den PureLife Cloud Service

Für die Anpassung der einzelnen Komponenten (Datenbank, Mosquitto) an die eigenen Anforderungen ist der Nutzer hierbei selbst zuständig.

Diese Anleitung beschreibt die Installation unter einem Linux-System. Sie sollte sich jedoch einfach auf andere Systeme adaptieren lassen.

Vorbereitung

Bevor du mit der Installation beginnst, solltest du sicherstellen, dass die folgenden Komponenten vorhanden sind:

$ docker -v
Docker version 20.10.12, build e91ed5707e
  • docker-compose ≥ 2.2.0
$ docker-compose -v
Docker Compose version 2.2.3
  • Zugriff auf das PureSec purelife-cloud-docker-Repository

Installation

Kopiere oder Klone zuerst den Inhalt des Repositories und wechsel in den Ordner.

git clone github.com/PureSecGmbH/purelife-cloud-docker
cd purelife-cloud-docker

Erstelle die folgenden Ordner:

  • volumes/application/config - Volume für die Konfiguration der PureLife Cloud Instanz
  • volumes/application/logs - Volume für die Logs der PureLife Cloud Instanz volumes/application/data - Volume für Upload und generierte Dateien der PureLife Cloud Instanz
  • volumes/mosquitto - Volume für die Mosquitto gespeicherten Daten
  • volumes/postgres - Volumen für die von PostgreSQL gespeicherten Daten
mkdir -p ./volumes/{application/config,application/logs,application/data,mosquitto,postgres}

Erstelle die folgenden Dateien:

  • volumes/mosquitto/passwd - Sammlung von optionalen Benutzern und Passwörtern für den MQTT-Broker
  • volumes/mosquitto/acl - Sammlung von Berechtigungen für Benutzer
touch ./volumes/mosquitto/{passwd,acl}

Erlaube der UID 3000 den Zugriff auf das PureLife Cloud Verzeichnis.

sudo chown -R 3000:3000 ./volumes/application

Erstelle eine .env-Datei, indem du die Datei env.example kopierst und mit deinem bevorzugten Texteditor bearbeitest.

cp env.example .env

Stelle sicher, dass du in der .env-Datei mindestens den folgenden Wert änderst. Wenn du die Passwörter für den Postgres-Benutzer ändern willst, kannst du dies auch in der .env-Datei tun.

# Public host of service
HOST=purelife-cloud.example.com

Erstellen und speichere die MQTT Zugangsdaten für die PureLife Cloud Instanz. Die erstellten Zugangsdaten müssen in der .env-Datei unter WE_MQTT_USERNAME und WE_MQTT_PASSWORD hinterlegt werden.

# .env
- # WE_MQTT_USERNAME=plcuser
+ WE_MQTT_USERNAME=your-username
- # WE_MQTT_PASSWORD=123456
+ WE_MQTT_PASSWORD=your-cleartext-password

Starte docker-compose als Daemon.

docker-compose up -d

Probiere es aus

Nun, da die PureLife Cloud Instanz eingerichtet ist und läuft, kannst du die Konfiguration anpassen oder dich einloggen. Öffne hierzu die URL http://127.0.0.1:8080 und melde dich mit den Benutzernamen admin und dem Passwort admin ein.

Genutzte Ports

  • Mosquitto nutzt standardmäßig Port 1883
  • Die Instanz startet einen Webserver welcher Standardmäßig Port 8080 nutzt

Cloud CLI nutzen

Die PureLife Cloud verfügt über ein Command Line Interface (CLI) mit nützlichen Hilfsbefehlen. Um das CLI unter Docker zu nutzen, starte den Container und öffne dessen Shell.

docker exec -it purelife-cloud /bin/sh

Du findest die ausführbare PureLife Cloud Datei unter /application

~ $ cd /application
~ $ ./purelife-cloud -h

PureLife  Cloud - Die Verbindung zwischen deinem Sensor und dir

Usage:
  purelife-cloud [flags]
  purelife-cloud [command]

Available Commands:
  bot         Verwaltung von Bot-Accounts
  config      Konfigurationsmanagement
  help        Help about any command
  job         Ausführen von Hintergrundjobs
  mqtt        MQTT-Verbindungsverwaltung und -Tools
  server      Startet die PureLife Cloud-Instanz
  session     Verwaltung der Sessions
  user        Benutzerverwaltung

Flags:
  -h, --help      help for purelife-cloud
  -v, --version   version for purelife-cloud

Use "purelife-cloud [command] --help" for more information about a command.