Debian/Ubuntu
In diesem Handbuch stellen Sie MyEMS auf einem Debian- oder Ubuntu-Server bereit.
Voraussetzungen
Dieses Handbuch beschreibt die Installation von MyEMS auf Ubuntu 24.04 LTS / Ubuntu 22.04 LTS / Ubuntu 20.04 LTS / Ubuntu 18.04 LTS / Debian 12 Bookworm / Debian 11 Bullseye / Debian 10 Buster. 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 apt install python3-pip
sudo pip install -r requirements.txt
(Ubuntu 24.04 LTS) 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 ufw allow 8000
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-Server installieren Siehe http://nginx.org/en/linux_packages.html#Debian
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
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 zur Firewall hinzufügen:
sudo ufw allow 8001
NGINX-Dienst neu starten:
sudo systemctl restart nginx.service
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
(Ubuntu 24.04 LTS) 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
(Ubuntu 24.04 LTS) 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
(Ubuntu 24.04 LTS) 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
(Ubuntu 24.04 LTS) 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.
-
NGINX-Server installieren Siehe http://nginx.org/en/linux_packages.html#Debian
-
NGINX konfigurieren Standarddateien entfernen
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 und die Demoadresse http://127.0.0.1:8000/ durch die tatsächliche URL ersetzen
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:
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt-get install -y nodejs
- Config.js-Datei bearbeiten:
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
sudo npm i --unsafe-perm=true --allow-root --legacy-peer-deps
sudo npm run build
Installieren Hinweis: Der folgende Pfad muss mit dem in nginx.conf konfigurierten Pfad übereinstimmen.
sudo rm -r /var/www/myems-web
sudo mv build /var/www/myems-web
Port zur Firewall hinzufügen:
sudo ufw allow 80
NGINX neu starten
sudo systemctl restart nginx
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 (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
Verzeichnis für virtuelle Umgebungs-Konfiguration erstellen:
sudo python -m venv venv
Virtuelle Umgebung aktivieren
source venv/bin/activate
Requirements installieren
sudo venv/bin/pip install -r requirements.txt
Virtuelle Umgebung deaktivieren
deactivate