Zum Hauptinhalt springen

SUSE

In diesem Handbuch stellen Sie MyEMS auf dem SUSE Linux Enterprise Server bereit.

Voraussetzungen

Dieses Handbuch beschreibt die Installation von MyEMS auf dem SUSE Linux Enterprise Server 15. Die Hardwareanforderungen hängen von der gewählten Datenbank und der Anzahl der mit dem System verbundenen Geräten ab. Um MyEMS und MySQL auf einem einzelnen Rechner auszuführen, benötigen Sie mindestens 4 GB RAM.

Quellcode klonen:

cd ~
git clone https://github.com/myems/myems

Schritt 1 Datenbank

Siehe Datenbank

Schritt 2 myems-api

  • myems-api-Dienst installieren:
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo pip install -r requirements.txt

.env-Datei anhand der example.env erstellen und bei Bedarf bearbeiten:

sudo cp /myems-api/example.env /myems-api/.env
sudo vi /myems-api/.env

Port in der Firewall freischalten:

sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --reload

Systemd-Konfigurationsdateien einrichten:

sudo cp /myems-api/myems-api.service /lib/systemd/system/
sudo cp /myems-api/myems-api.socket /lib/systemd/system/
sudo cp /myems-api/myems-api.conf /usr/lib/tmpfiles.d/

Dienste anschließend aktivieren, damit sie beim Systemstart automatisch starten:

sudo systemctl enable myems-api.socket
sudo systemctl enable myems-api.service

Dienste starten:

sudo systemctl start myems-api.socket
sudo systemctl start myems-api.service

Schritt 3 myems-admin

NGINX-Dienst aktivieren:

sudo systemctl start nginx.service
  • NGINX konfigurieren
sudo vi /etc/nginx/nginx.conf

Im Abschnitt „http“ folgende Direktiven hinzufügen:

http{
client_header_timeout 600;
client_max_body_size 512M;
gzip on;
gzip_min_length 512;
gzip_proxied any;
gzip_types *;
gzip_vary on;
proxy_buffering off;
...
}

Neue Datei unter /etc/nginx/conf.d/ erstellen:

sudo vi /etc/nginx/conf.d/myems-admin.conf

Fügen Sie die folgenden Direktiven ein. Ersetzen Sie die Standard-URL von myems-api http://127.0.0.1:8000/ durch die tatsächliche URL, falls der myems-api-Dienst auf einem anderen Server gehostet wird.

server {
listen 8001;
server_name myems-admin;
location / {
root /var/www/myems-admin;
index index.html index.htm;
}
## Um CORS-Fehler zu vermeiden, nutze Nginx zum Proxy von myems-api auf den Pfad /api
## Füge einen weiteren location /api im 'server'-Abschnitt hinzu
## Ersetzen Sie die Standard-URL von myems-api http://127.0.0.1:8000/ durch die tatsächliche URL, falls der myems-api-Dienst auf einem anderen Server gehostet wird
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • myems-admin installieren: Falls der Server keine Internetverbindung hat, komprimieren Sie den Ordner myems/myems-admin, laden Sie ihn auf den Server hoch und extrahieren Sie ihn nach ~/myems/myems-admin.
sudo mkdir /var/www
sudo cp -r ~/myems/myems-admin  /var/www/myems-admin
sudo chmod 0755 -R /var/www/myems-admin

Konfigurationsdatei prüfen und bei Bedarf bearbeiten:

sudo vi /var/www/myems-admin/app/api.js
Vorsicht

Der Ordner „upload“ dient für vom Benutzer hochgeladene Dateien. Löschen, verschieben oder überschreiben Sie den Ordner „upload“ nicht bei einem Update von myems-admin.

 /var/www/myems-admin/upload

Port in der Firewall freischalten:

sudo firewall-cmd --zone=public --add-port=8001/tcp --permanent
sudo firewall-cmd --reload

Schritt 4 myems-modbus-tcp

In diesem Schritt installieren Sie den myems-modbus-tcp-Dienst.

sudo cp -r ~/myems/myems-modbus-tcp /myems-modbus-tcp
cd /myems-modbus-tcp
sudo pip install -r requirements.txt

example.env zu .env kopieren und .env bearbeiten:

sudo cp /myems-modbus-tcp/example.env /myems-modbus-tcp/.env
sudo vi /myems-modbus-tcp/.env

Systemd-Dienst einrichten:

sudo cp myems-modbus-tcp.service /lib/systemd/system/

Dienst aktivieren:

sudo systemctl enable myems-modbus-tcp.service

Dienst starten:

sudo systemctl start myems-modbus-tcp.service

Dienst überwachen:

sudo systemctl status myems-modbus-tcp.service

Log anzeigen:

cat /myems-modbus-tcp.log

Schritt 5 myems-cleaning

In diesem Schritt installieren Sie den myems-cleaning-Dienst.

sudo cp -r ~/myems/myems-cleaning /myems-cleaning
cd /myems-cleaning
sudo pip install -r requirements.txt

example.env zu .env kopieren und .env bearbeiten:

sudo cp /myems-cleaning/example.env /myems-cleaning/.env
sudo vi /myems-cleaning/.env

Systemd-Dienst einrichten:

sudo cp /myems-cleaning/myems-cleaning.service /lib/systemd/system/

Dienst aktivieren:

sudo systemctl enable myems-cleaning.service

Dienst starten:

sudo systemctl start myems-cleaning.service

Dienst überwachen:

sudo systemctl status myems-cleaning.service

Log anzeigen:

cat /myems-cleaning.log

Schritt 6 myems-normalization

In diesem Schritt installieren Sie den myems-normalization-Dienst.

sudo cp -r ~/myems/myems-normalization /myems-normalization
cd /myems-normalization
sudo pip install -r requirements.txt

example.env zu .env kopieren und .env bearbeiten:

sudo cp /myems-normalization/example.env /myems-normalization/.env
sudo vi /myems-normalization/.env

Systemd-Dienst einrichten:

sudo cp /myems-normalization/myems-normalization.service /lib/systemd/system/

Dienst aktivieren:

sudo systemctl enable myems-normalization.service

Dienst starten:

sudo systemctl start myems-normalization.service

Dienst überwachen:

sudo systemctl status myems-normalization.service

Log anzeigen:

cat /myems-normalization.log

Schritt 7 myems-aggregation

In diesem Schritt installieren Sie den myems-aggregation-Dienst.

sudo cp -r ~/myems/myems-aggregation /myems-aggregation
cd /myems-aggregation
pip install -r requirements.txt

example.env zu .env kopieren und .env bearbeiten:

sudo cp /myems-aggregation/example.env /myems-aggregation/.env
vi /myems-aggregation/.env

Systemd-Dienst einrichten:

sudo cp /myems-aggregation/myems-aggregation.service /lib/systemd/system/

Dienst aktivieren:

sudo systemctl enable myems-aggregation.service

Dienst starten:

sudo systemctl start myems-aggregation.service

Dienst überwachen:

sudo systemctl status myems-aggregation.service

Log anzeigen:

cat /myems-aggregation.log

Schritt 8 myems-web

In diesem Schritt installieren Sie den myems-web-UI-Dienst.

sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/conf.d/default.conf

Neue Datei unter /etc/nginx/conf.d/ erstellen

sudo nano /etc/nginx/conf.d/myems-web.conf

Neuen „server“-Abschnitt mit folgenden Direktiven hinzufügen:

server {
listen 80;
server_name myems-web;
location / {
root /var/www/myems-web;
index index.html index.htm;
# try_files-Direktive hinzufügen, um 404-Fehler beim Aktualisieren von Seiten zu vermeiden
try_files $uri /index.html;
}
## Um CORS-Fehler zu vermeiden, nutze Nginx zum Proxy von myems-api auf den Pfad /api
## Füge einen weiteren location /api im 'server'-Abschnitt hinzu und ersetze die Demo-Adresse http://127.0.0.1:8000/ durch die tatsächliche URL
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}

NGINX neu starten

sudo systemctl restart nginx
  • MyEMS Web UI installieren: NodeJS einrichten:
sudo zypper install -y nodejs
  • Config.js-Datei bearbeiten:
Hinweis

Holen Sie sich einen MapboxToken unter https://mapbox.com und setzen Sie anschließend showOnlineMap auf true. Wenn Sie die Online-Kartenfunktion deaktivieren möchten, setzen Sie showOnlineMap auf false.

cd myems/myems-web
sudo vi src/config.js

Build und Kompression durchführen

sudo npm i --unsafe-perm=true --allow-root --legacy-peer-deps
sudo npm run build

Installieren Laden Sie die Dateien auf Ihren Webserver hoch. Beachten Sie, dass der folgende Pfad mit dem in der nginx.conf konfigurierten Pfad übereinstimmen muss.

sudo mv build  /var/www/myems-web

Port in der Firewall freischalten:

sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

Nach der Installation

Herzlichen Glückwunsch! Sie können sich jetzt bei der MyEMS Admin UI und der Web UI anmelden.

Standardports

MyEMS Web UI: 80 MyEMS API: 8000 MyEMS Admin UI: 8001

Vorausgesetzt, die Serveradresse lautet 192.168.1.8 (durch die tatsächliche Serveradresse ersetzen): Zugriff auf MyEMS Web UI unter http://192.168.1.8 (Port 80 kann weggelassen werden) Zugriff auf MyEMS Admin UI unter http://192.168.1.8:8001

Standardpasswörter

MyEMS Admin UI Benutzername:

administrator

Passwort:

!MyEMS1

MyEMS Web UI Benutzername:

administrator@myems.io

Passwort:

!MyEMS1

Fehlerbehebung