Fedora CoreOS
In dieser Anleitung stellen Sie MyEMS mit Fedora CoreOS bereit.
Prerequisites
Diese Anleitung beschreibt, wie Sie MyEMS auf Fedora CoreOS 37 installieren. Die Hardwareanforderungen hängen von der gewählten Datenbank und der Anzahl der an das System angeschlossenen Geräte ab. Um MyEMS und MySQL auf einem einzigen Rechner laufen zu lassen, benötigen Sie mindestens 4GB RAM.
Aktualisieren Sie das System und installieren Sie Tools:
rpm-ostree install git
rpm-ostree install python3
rpm-ostree install python3-pip
rpm-ostree install nginx
Quellcode klonen:
cd ~
git clone https://github.com/myems/myems
Schritt 1 Database
Siehe Database
Schritt 2 myems-api
- myems-api Dienst installieren:
sudo cp -r ~/myems/myems-api /var/myems-api
cd /var/myems-api
sudo pip install -r requirements.txt
Erstellen Sie eine .env basierend auf example.env und bearbeiten Sie die .env bei Bedarf:
sudo cp /var/myems-api/example.env /var/myems-api/.env
sudo nano /var/myems-api/.env
Port zur Firewall hinzufügen:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=8000/tcp --permanent
sudo firewall-cmd --reload
systemd einrichten und Dateien konfigurieren:
sudo cp /var/myems-api/myems-api.service /etc/systemd/system/
sudo cp /var/myems-api/myems-api.socket /etc/systemd/system/
sudo cp /var/myems-api/myems-api.conf /usr/lib/tmpfiles.d/
Als nächstes aktivieren Sie die Dienste so, dass sie beim Booten automatisch starten:
sudo systemctl enable myems-api.socket
sudo systemctl enable myems-api.service
Starten Sie die Dienste:
sudo systemctl start myems-api.socket
sudo systemctl start myems-api.service
Schritt 3 myems-admin
- NGINX Server installieren
beziehen sich auf http://nginx.org/en/linux_packages.html#RHEL
Enable the nginx service:
sudo systemctl enable nginx.service
- NGINX einrichten
sudo nano /etc/nginx/nginx.conf
Fügen Sie im Abschnitt "http" einige Richtlinien hinzu:
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;
...
}
Fügen Sie eine neue Datei unter /etc/nginx/conf.d/:
sudo nano /etc/nginx/conf.d/myems-admin.conf
Schreiben Sie mit Direktiven wie unten, ersetzen Sie die Standard-myems-api URL http://127.0.0.1:8000/ mit tatsächlicher URL, wenn die myems-ap servcie auf einem anderen Server gehostet wird
server {
listen 8001;
server_name myems-admin;
location / {
root /var/www/myems-admin;
index index.html index.htm;
}
## To avoid CORS issue, use Nginx to proxy myems-api to path /api
## Add another location /api in 'server'
## Replace the default myems-api url http://127.0.0.1:8000/ with actual url if the myems-api servcie hosted on different server
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
- myems-admin installieren : Wenn der Server keine Verbindung zum Internet herstellen kann, komprimieren Sie bitte den Ordner myems/myems-admin und laden Sie ihn auf den Server hoch und extrahieren Sie ihn in ~/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
Überprüfen Sie die Konfigurationsdatei und ändern Sie sie bei Bedarf:
sudo nano /var/www/myems-admin/app/api.js
Der Ordner "upload" ist für vom Benutzer hochgeladene Dateien. Löschen/verschieben/überschreiben Sie NICHT den 'upload' Ordner, wenn Sie myems-admin aktualisiert haben.
/var/www/myems-admin/upload
Port zur Firewall hinzufügen:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=8001/tcp --permanent
sudo firewall-cmd --reload
Restart the nginx service:
sudo systemctl restart nginx.service
If you encounter '403 Forbidden' nginx error, you may fix it by changing SELinx mode with command 'sudo setenforce 0'
Schritt 4 myems-modbus-tcp
In diesem Schritt installieren Sie den Dienst myems-modbus-tcp.
sudo cp -r ~/myems/myems-modbus-tcp /var/myems-modbus-tcp
cd /var/myems-modbus-tcp
sudo pip install -r requirements.txt
Kopieren Sie die Datei exmaple.env in .env und ändern Sie die Datei .env:
sudo cp /var/myems-modbus-tcp/example.env /var/myems-modbus-tcp/.env
sudo nano /var/myems-modbus-tcp/.env
Datei main.py ändern
fh = RotatingFileHandler('/var/myems-modbus-tcp.log', maxBytes=1024*1024, backupCount=1)
Setup systemd service:
sudo cp myems-modbus-tcp.service /etc/systemd/system/
Den Dienst aktivieren:
sudo systemctl enable myems-modbus-tcp.service
Starten Sie den Dienst:
sudo systemctl start myems-modbus-tcp.service
Überwachen Sie den Dienst:
sudo systemctl status myems-modbus-tcp.service
Logbuch anzeigen:
cat /myems-modbus-tcp.log
Schritt 5 myems-cleaning
In diesem Schritt installieren Sie den myems-cleaning Service.
sudo cp -r ~/myems/myems-cleaning /var/myems-cleaning
cd /var/myems-cleaning
sudo pip install -r requirements.txt
Kopieren Sie die Datei exmaple.env in .env und ändern Sie die Datei .env:
sudo cp /var/myems-cleaning/example.env /var/myems-cleaning/.env
sudo nano /var/myems-cleaning/.env
Datei main.py ändern:
fh = RotatingFileHandler('/var/myems-cleaning.log', maxBytes=1024*1024, backupCount=1)
Setup systemd service:
sudo cp /var/myems-cleaning/myems-cleaning.service /etc/systemd/system/
Den Dienst aktivieren:
sudo systemctl enable myems-cleaning.service
Starten Sie den Dienst:
sudo systemctl start myems-cleaning.service
Überwachen Sie den Dienst:
sudo systemctl status myems-cleaning.service
Logbuch anzeigen:
cat /myems-cleaning.log
Schritt 6 myems-normalization
In diesem Schritt installieren Sie den myems-normalization service.
sudo cp -r ~/myems/myems-normalization /var/myems-normalization
cd /var/myems-normalization
sudo pip install -r requirements.txt
Kopieren Sie die Datei exmaple.env in .env und ändern Sie die Datei .env:
sudo cp /var/myems-normalization/example.env /var/myems-normalization/.env
sudo nano /var/myems-normalization/.env
Datei main.py ändern:
fh = RotatingFileHandler('/var/myems-normalization.log', maxBytes=1024*1024, backupCount=1)
Setup systemd service:
sudo cp /var/myems-normalization/myems-normalization.service /etc/systemd/system/
Den Dienst aktivieren:
sudo systemctl enable myems-normalization.service
Starten Sie den Dienst:
sudo systemctl start myems-normalization.service
Überwachen Sie den Dienst:
sudo systemctl status myems-normalization.service
Logbuch anzeigen:
cat /myems-normalization.log
Schritt 7 myems-aggregation
In diesem Schritt installieren Sie den myems-aggregation service.
sudo cp -r ~/myems/myems-aggregation /var/myems-aggregation
cd /var/myems-aggregation
sudo pip install -r requirements.txt
Kopieren Sie die Datei exmaple.env in .env und ändern Sie die Datei .env:
sudo cp /var/myems-aggregation/example.env /var/myems-aggregation/.env
nano /var/myems-aggregation/.env
Datei main.py ändern:
fh = RotatingFileHandler('/var/myems-aggregation.log', maxBytes=1024*1024, backupCount=1)
Setup systemd service:
sudo cp /var/myems-aggregation/myems-aggregation.service /etc/systemd/system/
Den Dienst aktivieren:
sudo systemctl enable myems-aggregation.service
Starten Sie den Dienst:
sudo systemctl start myems-aggregation.service
Überwachen Sie den Dienst:
sudo systemctl status myems-aggregation.service
Logbuch anzeigen:
cat /myems-aggregation.log
Schritt 8 myems-web
In diesem Schritt installieren Sie den myems-web UI Service.
- NGINX-Server installieren
beziehen sich auf http://nginx.org/en/linux_packages.html#RHEL
- Konfigurieren Sie NGINX Standarddateien entfernen
sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/conf.d/default.conf
Fügen Sie eine neue Datei unter /etc/nginx/conf.d/
sudo nano /etc/nginx/conf.d/myems-web.conf
Schreiben Sie mit Direktiven wie unten und ersetzen Sie die Standard-myems-api-URL http://127.0.0.1:8000/ mit tatsächlicher URL, wenn die myems-api-Servcie auf einem anderen Server gehostet wird
server {
listen 80;
server_name myems-web;
location / {
root /var/www/myems-web;
index index.html index.htm;
# add try_files directive to avoid 404 error while refreshing pages
try_files $uri /index.html;
}
## To avoid CORS issue, use Nginx to proxy myems-api to path /api
## Add another location /api in 'server'
## replace the default myems-api url http://127.0.0.1:8000/ with actual url if the myems-api servcie hosted on different server
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
Konfigurationsdateien ändern:
Von https://mapbox.com Holen Sie sich das mapboxToken und setzen Sie showOnlineMap auf true Wenn Sie die Online-Kartenfunktion deaktivieren 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 Laden Sie die Datei auf Ihren Webserver hoch. Beachten Sie, dass der folgende Pfad mit dem in nginx.conf konfigurierten identisch sein sollte.
sudo mv build /var/www/myems-web
Port zur Firewall hinzufügen:
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --reload
Starten Sie NGINX neu
sudo systemctl restart nginx
Wenn Sie auf '500 Internal Server Error' nginx-Fehler stoßen, können Sie ihn beheben, indem Sie den SELinx-Modus mit dem Befehl 'sudo setforce 0' ändern.
Nach der Installation
Glückwunsch! Sie können sich jetzt bei der MyEMS Admin-Benutzeroberfläche und der Web-Benutzeroberfläche 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