Ga naar de hoofdinhoud

Fedora

In deze handleiding implementeert u MyEMS op een Fedora server.

Vereisten

Deze handleiding beschrijft hoe u MyEMS installeert op Fedora 37 Server. Hardwarevereisten zijn afhankelijk van de gekozen database en het aantal apparaten dat op het systeem is aangesloten. Om MyEMS en MySQL op een enkele machine te draaien heeft u minimaal 4GB RAM nodig.

Update het systeem en installeer tools

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

Kloon de broncode:

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

Stap 1 Database

Zie Database

Stap 2 myems-api

  • Installeer de myems-api service:
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo pip install -r requirements.txt

Maak een .env bestand op basis van example.env en bewerk het .env bestand indien nodig:

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

Voeg poort toe aan de firewall:

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

Stel systemd configuratiebestanden in:

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/

Schakel vervolgens de services in zodat ze automatisch starten bij opstarten:

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

Start de services:

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

Stap 3 myems-admin

  • Installeer NGINX Server

verwijs naar http://nginx.org/en/linux_packages.html#RHEL

Schakel de nginx service in:

sudo systemctl start nginx.service
  • Configureer NGINX
sudo nano /etc/nginx/nginx.conf

Voeg in de 'http' sectie enkele richtlijnen toe:

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;
...

}

Voeg een nieuw bestand toe onder /etc/nginx/conf.d/

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

Schrijf met richtlijnen zoals hieronder, en vervang de standaard myems-api url http://127.0.0.1:8000/ met de daadwerkelijke url als de myems-api service op een andere server wordt gehost

server {
listen 8001;
server_name myems-admin;
location / {
root /var/www/myems-admin;
index index.html index.htm;
}
## Om CORS-problemen te voorkomen, gebruik Nginx om myems-api te proxy naar pad /api
## Voeg een andere locatie /api toe in 'server'
## Vervang de standaard myems-api url http://127.0.0.1:8000/ met de daadwerkelijke url als de myems-api service op een andere server wordt gehost
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • Installeer myems-admin : Als de server geen verbinding met internet kan maken, comprimeer dan de map myems/myems-admin en upload deze naar de server en extraheer deze naar ~/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

Controleer het configuratiebestand en wijzig het indien nodig:

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

De 'upload' map is voor door gebruikers geüploade bestanden. VERWIJDER/VERPLAATS/OVERSCHRIJF de 'upload' map NIET wanneer u myems-admin heeft geüpgraded.

 /var/www/myems-admin/upload

Ontgrendel de poort en voeg de poort toe aan de firewall:

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

Herstart de nginx service:

sudo systemctl restart nginx.service
Tip

Als u een '403 Forbidden' nginx fout tegenkomt, kunt u dit mogelijk oplossen door de SELinux-modus te wijzigen met het commando 'sudo setenforce 0'

Stap 4 myems-modbus-tcp

In deze stap installeert u de myems-modbus-tcp service.

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

Kopieer exmaple.env bestand naar .env en wijzig het .env bestand:

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

Stel systemd service in:

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

Schakel de service in:

sudo systemctl enable myems-modbus-tcp.service

Start de service:

sudo systemctl start myems-modbus-tcp.service

Monitor de service:

sudo systemctl status myems-modbus-tcp.service

Bekijk het logbestand:

cat /myems-modbus-tcp.log

Stap 5 myems-cleaning

In deze stap installeert u de myems-cleaning service.

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

Kopieer exmaple.env bestand naar .env en wijzig het .env bestand:

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

Stel systemd service in:

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

Schakel de service in:

sudo systemctl enable myems-cleaning.service

Start de service:

sudo systemctl start myems-cleaning.service

Monitor de service:

sudo systemctl status myems-cleaning.service

Bekijk het logbestand:

cat /myems-cleaning.log

Stap 6 myems-normalization

In deze stap installeert u de myems-normalization service.

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

Kopieer exmaple.env bestand naar .env en wijzig het .env bestand:

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

Stel systemd service in:

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

Schakel de service in:

sudo systemctl enable myems-normalization.service

Start de service:

sudo systemctl start myems-normalization.service

Monitor de service:

sudo systemctl status myems-normalization.service

Bekijk het logbestand:

cat /myems-normalization.log

Stap 7 myems-aggregation

In deze stap installeert u de myems-aggregation service.

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

Kopieer exmaple.env bestand naar .env en wijzig het .env bestand:

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

Stel systemd service in:

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

Schakel de service in:

sudo systemctl enable myems-aggregation.service

Start de service:

sudo systemctl start myems-aggregation.service

Monitor de service:

sudo systemctl status myems-aggregation.service

Bekijk het logbestand:

cat /myems-aggregation.log

Stap 8 myems-web

In deze stap installeert u de myems-web UI service.

  • Installeer NGINX Server

verwijs naar http://nginx.org/en/linux_packages.html#RHEL

  • Configureer NGINX

Verwijder standaardbestanden

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

Voeg een nieuw bestand toe onder /etc/nginx/conf.d/

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

Voeg een nieuwe 'server' sectie toe met richtlijnen zoals hieronder:

server {
listen 80;
server_name myems-web;
location / {
root /var/www/myems-web;
index index.html index.htm;
# voeg try_files richtlijn toe om 404 fout te vermijden tijdens het vernieuwen van pagina's
try_files $uri /index.html;
}
## Om CORS-problemen te voorkomen, gebruik Nginx om myems-api te proxy naar pad /api
## Voeg een andere locatie /api toe in 'server'
## vervang de standaard myems-api url http://127.0.0.1:8000/ met de daadwerkelijke url als de myems-api service op een andere server wordt gehost
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • Installeer MyEMS Web UI:

Stel NodeJS in:

sudo dnf install nodejs

Wijzig het config.js bestand:

Notitie

Verkrijg mapboxToken op https://mapbox.com en stel vervolgens showOnlineMap in op true. Als u de online kaartfunctie wilt uitschakelen, stel showOnlineMap in op false

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

Bouw en comprimeer

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

Installeer Upload de bestanden naar uw webserver. Let op dat het volgende pad hetzelfde moet zijn als dat is geconfigureerd in nginx.conf.

sudo mv build  /var/www/myems-web

Ontgrendel de poort en voeg de poort toe aan de firewall:

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --reload

Herstart de nginx service:

sudo systemctl restart nginx.service
Tip

Als u een '500 Internal Server Error' nginx fout tegenkomt, kunt u dit mogelijk oplossen door de SELinux-modus te wijzigen met het commando 'sudo setenforce 0'

Post-installatie

Gefeliciteerd! U kunt nu inloggen op de MyEMS Admin UI en Web UI.

Standaard Poorten

MyEMS Web UI: 80

MyEMS API: 8000

MyEMS Admin UI: 8001

Neem aan dat het serveradres 192.168.1.8 is (vervang met het daadwerkelijke serveradres) Toegang tot MyEMS Web UI via http://192.168.1.8 (80 kan worden weggelaten) Toegang tot MyEMS Admin UI via http://192.168.1.8:8001

Standaard Wachtwoorden

MyEMS Admin UI

Gebruikersnaam:

administrator

Wachtwoord:

!MyEMS1

MyEMS Web UI

Gebruikersnaam:

administrator@myems.io

Wachtwoord:

!MyEMS1

Probleemoplossing