Debian
Wie du die PureLife Cloud unter Debian/Linux installierst.
Es wird in den folgenden Abschnitten davon ausgegangen, dass die Installation unter Debian/Linux (x64) erfolgt.
Die PureLife Cloud funktioniert auch unter anderen Plattformen und die Anleitungen sollten sich übertragen lassen, jedoch bieten wir hierfür keinen Support. Für weitere Informationen kannst du dich gern mit uns in Verbindung setzen.
Für die Installation wird davon ausgegangen, dass die folgenden Pakete installiert sind
sudo apt install curl gnupg2 ca-certificates lsb-release
Vorbereitung
Bevor du mit der Installation beginnst, solltest du sicherstellen, dass die folgenden Komponenten vorhanden sind:
- Ein Bash (oder anderes) Terminal
- Ein PostgreSQL >= 13 Datenbankserver und eine Datenbank
- Den MQTT-Broker Mosquitto mit dem mosquitto-go-auth-Plugin, falls eine Authentifizierung genutzt werden soll. Falls keine Authentifizierung genutzt werden soll (nicht empfohlen), kann jeder andere MQTT-Broker verwendet werden.
- (Empfohlen) Ein Domainnamen, der auf deinen Server zeigt (z. B. example.com)
- (Empfohlen) Einen Webserver, z.B. nginx
- (Empfohlen) SMTP-Zugangsdaten für einen E-Mail-Account, um Service-Mails zu verschicken
Außerdem solltest du einen Benutzer erstellen, welcher später den Server startet:
sudo adduser --home /home/pureuser --disabled-login pureuser
Installation
Wechsel zuerst zu dem Benutzer, welcher später für die Ausführung der PureLife Cloud Instanz zuständig ist.
sudo su - pureuser
Lade für deine Plattform die letzte verfügbare Version von der PureLife Cloud herunter, kopiere sie auf den Rechner und entpacke sie.
# Kopiere das Archiv (zum Beispiel mit wget, scp oder rsync)
tar -zxvf purelife-cloud*.tar.gz
Du solltest nun eine Binärdatei purelife-cloud
sehen, welche du zuerst mit ./purelife-cloud -h
überprüfen solltest. Danach kannst du eine Konfigurationsdatei erstellen.
./purelife-cloud config generate
Du solltest jetzt einen neuen Ordner config
mit einer Datei config.toml
sehen. Die Datei dient ab jetzt der Konfiguration von der PureLife Cloud Instanz.
Einrichtung
Zuerst sollte unter SQL.DataSource
der DSN für die PostgreSQL-Datenbankverbindung hinterlegt werden. Als Vorlage kann hierbei der folgenden DNS dienen:
"postgres://<purelife-cloud-db-user>:<purelife-cloud-db-password>@<host-name-or-IP>:5432/<purelife-cloud-db>?sslmode=disable&application_name=purelife-cloud"
Ebenfalls sollte unter HTTP.SiteURL
die URL gesetzt werden, unter welchem die Seite später erreichbar ist. Ein abschließender Backslash sollte dabei entfernt werden. Sollte der Zugriff auf die URL durch HTTPS
gesichert werden (dringend empfohlen), muss unter HTTP.LegacyFirmwareURL
ebenfalls eine URL für den unverschlüsselten Zugriff auf die PureLife Cloud angegeben werden.
Unter MQTT
muss die URL, über welche Mosquitto erreichbar ist, angegeben werden. Falls du bei der Einrichtung von Mosquitto einen MQTT-Account für die PureLife-Cloud erstellt hast, solltest du diesen ebenfalls unter MQTT
hinterlegen. Andernfalls wird die PureLife Cloud automatisch einen Account erstellen, welchen Mosquitto über das Auth-Plugin abfragt.
[MQTT]
Broker = ["mqtt://hostname.de:1883"]
Username = "PureLifeCloud"
Password = "password-here"
Die Verbindung zur Datenbank kann nun direkt getestet werden. Hierzu sollte ein erster Benutzer erstellt werden, welcher dann automatisch auch Administrator der Anwendung ist. (Über das Frontend können später weitere Benutzer hinzugefügt werden).
./purelife-cloud user create
Nachdem du jetzt eine Verbindung zur Datenbank hast, solltest du direkt die Konfiguration der Server-Mails vornehmen. Hierzu musst du deine SMTP Zugangsdaten unter System_SMTP
und unter System.AdminMail
eine Mail-Adresse hinterlegen.
Für den Abschluss der Einrichtung solltest du den Secret Key unter Service.SecretKey
sichern! Dieser ist dafür zuständig, die Daten deiner Datenbank teilweise zu verschlüsseln. Sollte der Secret Key verloren gehen oder überschrieben werden, sind die Daten deiner Datenbank nutzlos.
System-Service
Falls du möchtest, dass die PureLife Cloud Instanz automatisch mit deinem Server startet, muss ein System-Service angelegt werden.
1. Erstelle eine Systemd-Datei für die PureLife Cloud Instanz
sudo touch /etc/systemd/system/purelife-cloud.service
2. Öffne die Datei mit einem Texteditor und füge den folgenden Inhalt ein
[Unit]
Description=PureLife Cloud
After=network.target
After=postgresql.service
BindsTo=postgresql.service
[Service]
Type=notify
ExecStart=/home/pureuser/purelife-cloud server
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/home/pureuser
User=pureuser
Group=pureuser
[Install]
WantedBy=multi-user.target
Falls PostgreSQL auf einem anderen Server installiert ist, muss After=postgresql.service
und BindsTo=postgresql.service
entfernt werden.
3. Nach dem Speichern muss der neue Service erkannt werden
sudo systemctl daemon-reload
4. Überprüfe, ob die Datei erkannt wurde
sudo systemctl status purelife-cloud.service
Du solltest nun ungefähr die folgende Ausgabe sehen
● purelife-cloud.service - PureLife Cloud
Loaded: loaded (/etc/systemd/system/purelife-cloud.service; disabled; vendor preset: enabled)
Active: inactive (dead)
5. Du hast den Service somit erstellt und kannst ihn starten
sudo systemctl start purelife-cloud.service
6. Überprüfe, ob die Instanz gestartet ist
sudo systemctl status purelife-cloud.service
curl http://localhost:8080
Als Ausgabe solltest du eine HTML-Datei sehen, welche die Instanz gesendet hat
7. Du kannst nun aktivieren, dass der Service automatisch mit deinem Rechner startet
sudo systemctl enable purelife-cloud.service
Probiere es aus
Nun, da die 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 lokal auf dem Server oder mittels IP-Adresse des Servers von einem anderen Rechner.
Weitere sinnvolle Anpassungen
System
Trage die Domain des Servers in die Hostsdatei ein
127.0.0.1 example.de
Datenbank
Aktiviere Extensions
sudo su - postgres
psql -d database
CREATE EXTENSION IF NOT EXISTS "hstore";
CREATE EXTENSION IF NOT EXISTS pg_stat_statements;
Teste die SMTP-Konfiguration
sudo su - pureuser
./purelife-cloud config test-mail --help
./purelife-cloud config test-mail --to user@example.de
Konfiguriere logrotate
Erstelle die Datei /etc/logrotate.d/purelife-cloud
, mit folgendem Inhalt
/home/pureuser/logs/purelife-cloud.log {
# Maximum number of log files to keep
rotate 20
# Rotate log files on the first day every day
daily
# Compress rotated logs with .gzip
compress
# If the log file is missing, continue
missingok
# If the log file is empty, continue
notifempty
# Truncate the original log file in place after creating a copy
copytruncate
}
Test die Konfiguration mit logrotate -f -v /etc/logrotate.d/purelife-cloud