Zum Hauptinhalt springen

CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux

In diesem Handbuch stellen Sie MyEMS auf einem CentOS- oder RHEL-Server bereit.

Voraussetzungen

Dieses Handbuch beschreibt die Installation von MyEMS auf CentOS Stream 9 / Red Hat Enterprise Linux 9 (RHEL 9) / Rocky 9 / AlmaLinux 9.1 / Oracle Linux 9.1. 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.

System aktualisieren und Tools installieren

sudo dnf update
sudo dnf install git
sudo dnf install python3-pip

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
Hinweis

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1) Falls der Befehl nicht funktioniert, können Sie diesen verwenden: sudo pip install -r requirements.txt --break-system-packages

.env-Datei auf Basis von example.env erstellen und bei Bedarf bearbeiten:

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

Port zur Firewall hinzufügen:

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/

Anschließend die Dienste aktivieren, damit sie beim Start 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 nano /etc/nginx/nginx.conf

Im Abschnitt „http“ einige 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 nano /etc/nginx/conf.d/myems-admin.conf

Folgende Direktiven eingeben und die Standard-URL von myems-api http://127.0.0.1:8000/ durch die tatsächliche URL ersetzen, 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-Probleme zu vermeiden, nutzen Sie Nginx, um myems-api an den Pfad /api zu proxyn
## Einen weiteren Ort /api im „Server“ hinzufügen
## Die Standard-URL von myems-api http://127.0.0.1:8000/ durch die tatsächliche URL ersetzen, 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 ändern:

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

Der Ordner „upload“ dient für vom Benutzer hochgeladene Dateien. Löschen/Verschieben/Überschreiben Sie den Ordner „upload“ nicht bei der Aktualisierung von myems-admin.

 /var/www/myems-admin/upload

Port entsperren und zur Firewall hinzufügen:

sudo semanage port -a -t http_port_t  -p tcp 8001
sudo firewall-cmd --zone=public --add-port=8001/tcp --permanent
sudo firewall-cmd --reload

NGINX-Dienst neu starten:

sudo systemctl restart nginx.service
Tipp

Falls Sie den NGINX-Fehler „403 Forbidden“ erhalten, können Sie ihn möglicherweise beheben, indem Sie den SELinux-Modus mit dem Befehl „sudo setenforce 0“ ändern.

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
Hinweis

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1) Falls der Befehl nicht funktioniert, können Sie diesen verwenden: sudo pip install -r requirements.txt --break-system-packages

Exmaple.env-Datei zu .env kopieren und .env-Datei bearbeiten:

sudo cp /myems-modbus-tcp/example.env /myems-modbus-tcp/.env
sudo nano /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

Protokoll 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
Hinweis

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1) Falls der Befehl nicht funktioniert, können Sie diesen verwenden: sudo pip install -r requirements.txt --break-system-packages

Exmaple.env-Datei zu .env kopieren und .env-Datei bearbeiten:

sudo cp /myems-cleaning/example.env /myems-cleaning/.env
sudo nano /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

Protokoll 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
Hinweis

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1) Falls der Befehl nicht funktioniert, können Sie diesen verwenden: sudo pip install -r requirements.txt --break-system-packages

Exmaple.env-Datei zu .env kopieren und .env-Datei bearbeiten:

sudo cp /myems-normalization/example.env /myems-normalization/.env
sudo nano /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

Protokoll 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
sudo pip install -r requirements.txt
Hinweis

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1) Falls der Befehl nicht funktioniert, können Sie diesen verwenden: sudo pip install -r requirements.txt --break-system-packages

Exmaple.env-Datei zu .env kopieren und .env-Datei bearbeiten:

sudo cp /myems-aggregation/example.env /myems-aggregation/.env
sudo nano /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

Protokoll 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 Abschnitt „server“ 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-Probleme zu vermeiden, nutzen Sie Nginx, um myems-api an den Pfad /api zu proxyn
## Einen weiteren Ort /api im „Server“ hinzufügen
## Die Standard-URL von myems-api http://127.0.0.1:8000/ durch die tatsächliche URL ersetzen, 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 Web UI installieren: NodeJS einrichten:
sudo dnf install nodejs
  • Config.js-Datei bearbeiten:
Hinweis

MapboxToken unter https://mapbox.com abrufen und dann showOnlineMap auf true setzen. Wenn Sie die Online-Kartenfunktion ausschalten möchten, setzen Sie showOnlineMap auf false.

cd ~/myems/myems-web
sudo nano src/config.js

Erstellen und komprimieren

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

Installieren Dateien auf den Webserver hochladen. Hinweis: Der folgende Pfad muss mit dem in nginx.conf konfigurierten Pfad übereinstimmen.

sudo mv build  /var/www/myems-web

Port entsperren und zur Firewall hinzufügen:

sudo semanage port -a -t http_port_t  -p tcp 80
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

NGINX-Dienst neu starten:

sudo systemctl restart nginx.service
Tipp

Falls Sie den NGINX-Fehler „500 Internal Server Error“ erhalten, können Sie ihn möglicherweise beheben, indem Sie den SELinux-Modus mit dem Befehl „sudo setenforce 0“ ändern.

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

Standardpasswörter

Admin UI
administrator

!MyEMS1
Web UI
administrator@myems.io

!MyEMS1

Fehlerbehebung