Zum Hauptinhalt springen

FreeBSD

In this guide, you will deploy MyEMS on FreeBSD server. In dieser Anleitung stellen Sie MyEMS mit FreeBSD bereit.

Prerequisites

Diese Anleitung beschreibt, wie Sie MyEMS auf FreeBSD 13.2 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:

pkg install git
pkg install python3
pkg install py39-pip-22.3.1
pkg install nginx
pkg install monit

Quellcode klonen:

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

Schritt 1 Database

Siehe Database

Schritt 2 myems-api

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

Wenn der Fehler „Failed Building Wheel for Pillow“ auftritt, müssen Sie Kissen installieren

Erstellen Sie eine .env basierend auf example.env und bearbeiten Sie die .env bei Bedarf:

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

monit einrichten und Dateien konfigurieren:

nano /etc/monit.d/myems-api
check process mymes-api with pidfile /var/run/myems-api/pid
start program = "/usr/local/bin/gunicorn -b 0.0.0.0:8000 --pid /var/run/myems-api/pid --timeout 600 --workers=4 app:api &"
stop program = "/bin/kill -s TERM $MAINPID"
if 3 restarts within 5 cycles then unmonitor

Starten Sie die Dienste:

monit restart

Schritt 3 myems-admin

  • NGINX Server installieren

beziehen sich auf http://nginx.org/en/docs/install.html

Enable the nginx service:

service nginx enable
  • NGINX einrichten
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/:

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
mkdir /var/www
cp -r ~/myems/myems-admin  /var/www/myems-admin
chmod 0755 /var/www/myems-admin

Überprüfen Sie die Konfigurationsdatei und ändern Sie sie bei Bedarf:

nano /var/www/myems-admin/app/api.js
caution

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

Starten Sie den nginx-Dienst neu:

service nginx restart
tip

Wenn der Nginx-Fehler „403 Forbidden“ auftritt, können Sie ihn beheben, indem Sie den SELinx-Modus mit dem Befehl „sudo setenforce 0“ ändern.

Schritt 4 myems-modbus-tcp

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

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

Kopieren Sie die Datei exmaple.env in .env und ändern Sie die Datei .env:

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

monit Dienst einrichten:

nano /etc/monit.d/myems-modbus-tcp
check file myems-modbus-tcp path /myems-modbus-tcp/main.py
start program = "/usr/local/bin/python3 /myems-modbus-tcp/main.py"
stop program = "/bin/kill -s TERM $MAINPID"
if 3 restarts within 5 cycles then unmonitor

Starten Sie den Dienst:

monit restart

Schritt 5 myems-cleaning

In diesem Schritt installieren Sie den myems-cleaning Service.

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

Kopieren Sie die Datei exmaple.env in .env und ändern Sie die Datei .env:

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

monit Dienst einrichten:

nano /etc/monit.d/myems-cleaning
check file myems-cleaning path /myems-cleaning/main.py
start program = "/usr/local/bin/python3 /myems-cleaning/main.py"
stop program = "/bin/kill -s TERM $MAINPID"
if 3 restarts within 5 cycles then unmonitor

Starten Sie den Dienst:

monit restart

Schritt 6 myems-normalization

In diesem Schritt installieren Sie den myems-normalization service.

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

Kopieren Sie die Datei exmaple.env in .env und ändern Sie die Datei .env:

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

monit Dienst einrichten:

nano /etc/monit.d/myems-normalization
check file myems-normalization path /myems-normalization/main.py
start program = "/usr/local/bin/python3 /myems-normalization/main.py"
stop program = "/bin/kill -s TERM $MAINPID"
if 3 restarts within 5 cycles then unmonitor

Starten Sie den Dienst:

monit restart

Schritt 7 myems-aggregation

In diesem Schritt installieren Sie den myems-aggregation service.

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

Kopieren Sie die Datei exmaple.env in .env und ändern Sie die Datei .env:

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

monit Dienst einrichten:

nano /etc/monit.d/myems-aggregation
check file myems-aggregation path /myems-aggregation/main.py
start program = "/usr/local/bin/python3 /myems-aggregation/main.py"
stop program = "/bin/kill -s TERM $MAINPID"
if 3 restarts within 5 cycles then unmonitor

Starten Sie den Dienst:

monit restart

Step 8 myems-web

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

  • NGINX-Server installieren

beziehen sich auf http://nginx.org/en/docs/install.html

  • 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:

pkg install node-18.16.0

Konfigurationsdateien ändern:

note

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
nano src/config.js

Erstellen:

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

Installieren Beachten Sie, dass der folgende Pfad mit dem in nginx.conf konfigurierten identisch sein sollte.

rm -r /var/www/myems-web
mv build  /var/www/myems-web

Starten Sie NGINX neu

service nginx restart

Post-installation## 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

Fehlerbehebung