Docker
Auf dieser Seite
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:
- Das Datenbankmanagementsystem
PostgreSQL
- Den MQTT-Broker
Mosquitto
- 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:
- Ein Github-Account
- Ein aktiver Docker-Login an der Github Container registry
docker
≥ 20.10
$ 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 Instanzvolumes/application/logs
- Volume für die Logs der PureLife Cloud Instanzvolumes/application/data
- Volume für Upload und generierte Dateien der PureLife Cloud Instanzvolumes/mosquitto
- Volume für die Mosquitto gespeicherten Datenvolumes/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-Brokervolumes/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.