openEuler
W tym przewodniku wdrożysz MyEMS na serwerze openEuler.
Wymagania wstępne
Ten przewodnik opisuje, jak zainstalować MyEMS na openEuler 23.03. Wymagania sprzętowe zależą od wybranej bazy danych oraz liczby urządzeń podłączonych do systemu. Aby uruchomić MyEMS i MySQL na jednej maszynie, potrzebujesz co najmniej 4 GB pamięci RAM.
Sklonuj kod źródłowy:
cd ~
git clone https://github.com/myems/myems
Krok 1 Baza danych
Zobacz Baza danych
Krok 2 myems-api
- Zainstaluj usługę myems-api:
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo pip install -r requirements.txt
Utwórz plik .env na podstawie example.env i edytuj go w razie potrzeby:
sudo cp /myems-api/example.env /myems-api/.env
sudo nano /myems-api/.env
Dodaj port do zapory:
sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --reload
Skonfiguruj pliki systemd:
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/
Następnie włącz usługi, aby uruchamiały się automatycznie przy starcie systemu:
sudo systemctl enable myems-api.socket
sudo systemctl enable myems-api.service
Uruchom usługi:
sudo systemctl start myems-api.socket
sudo systemctl start myems-api.service
Krok 3 myems-admin
- Zainstaluj serwer NGINX
zobacz: http://nginx.org/en/linux_packages.html#RHEL
Włącz usługę nginx:
sudo systemctl start nginx.service
- Skonfiguruj NGINX
sudo nano /etc/nginx/nginx.conf
W sekcji 'http' dodaj następujące dyrektywy:
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;
...
}
Dodaj nowy plik w katalogu /etc/nginx/conf.d/:
sudo nano /etc/nginx/conf.d/myems-admin.conf
Wypełnij plik poniższymi dyrektywami i zamień domyślny adres myems-api http://127.0.0.1:8000/ na właściwy, jeśli usługa myems-api jest uruchomiona na innym serwerze
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;
}
}
- Zainstaluj myems-admin: Jeśli serwer nie ma dostępu do internetu, skompresuj folder myems/myems-admin, prześlij go na serwer i rozpakuj do ~/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
Sprawdź plik konfiguracyjny i zmień go w razie potrzeby:
sudo nano /var/www/myems-admin/app/api.js
Folder 'upload' służy do przechowywania plików przesłanych przez użytkowników. NIE usuwaj/przenoś/nie nadpisuj folderu 'upload' podczas aktualizacji myems-admin.
/var/www/myems-admin/upload
Odblokuj port i dodaj go do zapory:
sudo firewall-cmd --zone=public --add-port=8001/tcp --permanent
sudo firewall-cmd --reload
Zrestartuj usługę nginx:
sudo systemctl restart nginx.service
Jeśli napotkasz błąd nginx '403 Forbidden', możesz go naprawić, zmieniając tryb SELinux poleceniem 'sudo setenforce 0'
Krok 4 myems-modbus-tcp
W tym kroku zainstalujesz usługę myems-modbus-tcp.
sudo cp -r ~/myems/myems-modbus-tcp /myems-modbus-tcp
cd /myems-modbus-tcp
sudo pip install -r requirements.txt
Skopiuj plik example.env do .env i zmodyfikuj plik .env:
sudo cp /myems-modbus-tcp/example.env /myems-modbus-tcp/.env
sudo nano /myems-modbus-tcp/.env
Skonfiguruj usługę systemd:
sudo cp myems-modbus-tcp.service /lib/systemd/system/
Włącz usługę:
sudo systemctl enable myems-modbus-tcp.service
Uruchom usługę:
sudo systemctl start myems-modbus-tcp.service
Monitoruj usługę:
sudo systemctl status myems-modbus-tcp.service
Wyświetl log:
cat /myems-modbus-tcp.log
Krok 5 myems-cleaning
W tym kroku zainstalujesz usługę myems-cleaning.
sudo cp -r ~/myems/myems-cleaning /myems-cleaning
cd /myems-cleaning
sudo pip install -r requirements.txt
Skopiuj plik example.env do .env i zmodyfikuj plik .env:
sudo cp /myems-cleaning/example.env /myems-cleaning/.env
sudo nano /myems-cleaning/.env
Skonfiguruj usługę systemd:
sudo cp /myems-cleaning/myems-cleaning.service /lib/systemd/system/
Włącz usługę:
sudo systemctl enable myems-cleaning.service
Uruchom usługę:
sudo systemctl start myems-cleaning.service
Monitoruj usługę:
sudo systemctl status myems-cleaning.service
Wyświetl log:
cat /myems-cleaning.log
Krok 6 myems-normalization
W tym kroku zainstalujesz usługę myems-normalization.
sudo cp -r ~/myems/myems-normalization /myems-normalization
cd /myems-normalization
sudo pip install -r requirements.txt
Skopiuj plik example.env do .env i zmodyfikuj plik .env:
sudo cp /myems-normalization/example.env /myems-normalization/.env
sudo nano /myems-normalization/.env
Skonfiguruj usługę systemd:
sudo cp /myems-normalization/myems-normalization.service /lib/systemd/system/
Włącz usługę:
sudo systemctl enable myems-normalization.service
Uruchom usługę:
sudo systemctl start myems-normalization.service
Monitoruj usługę:
sudo systemctl status myems-normalization.service
Wyświetl log:
cat /myems-normalization.log
Krok 7 myems-aggregation
W tym kroku zainstalujesz usługę myems-aggregation.
sudo cp -r ~/myems/myems-aggregation /myems-aggregation
cd /myems-aggregation
sudo pip install -r requirements.txt
Skopiuj plik example.env do .env i zmodyfikuj plik .env:
sudo cp /myems-aggregation/example.env /myems-aggregation/.env
nano /myems-aggregation/.env
Skonfiguruj usługę systemd:
sudo cp /myems-aggregation/myems-aggregation.service /lib/systemd/system/
Włącz usługę:
sudo systemctl enable myems-aggregation.service
Uruchom usługę:
sudo systemctl start myems-aggregation.service
Monitoruj usługę:
sudo systemctl status myems-aggregation.service
Wyświetl log:
cat /myems-aggregation.log
Krok 8 myems-web
W tym kroku zainstalujesz usługę interfejsu MyEMS Web UI.
- Zainstaluj serwer NGINX
zobacz: http://nginx.org/en/linux_packages.html#RHEL
- Skonfiguruj NGINX
sudo nano /etc/nginx/nginx.conf
Usuń domyślne pliki
sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/conf.d/default.conf
Dodaj nowy plik w katalogu /etc/nginx/conf.d/
sudo nano /etc/nginx/conf.d/myems-web.conf
Dodaj nową sekcję 'server' z poniższymi dyrektywami:
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;
}
}
- Zainstaluj MyEMS Web UI:
Skonfiguruj NodeJS:
sudo dnf install nodejs
Zmodyfikuj plik config.js:
Uzyskaj mapboxToken na stronie https://mapbox.com i ustaw showOnlineMap na true. Jeśli chcesz wyłączyć funkcję mapy online, ustaw showOnlineMap na false
cd ~/myems/myems-web
sudo nano src/config.js
Zbuduj i skompresuj
sudo npm i --unsafe-perm=true --allow-root --legacy-peer-deps
sudo npm run build
Instalacja Prześlij pliki na swój serwer WWW. Zwróć uwagę, że poniższa ścieżka powinna być taka sama, jak skonfigurowana w nginx.conf.
sudo mv build /var/www/myems-web
Odblokuj port i dodaj go do zapory:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
Zrestartuj usługę nginx:
sudo systemctl restart nginx.service
Jeśli napotkasz błąd nginx '500 Internal Server Error', możesz go naprawić, zmieniając tryb SELinux poleceniem 'sudo setenforce 0'
Po instalacji
Gratulacje! Możesz teraz zalogować się do MyEMS Admin UI i Web UI.
Domyślne porty
MyEMS Web UI: 80
MyEMS API: 8000
MyEMS Admin UI: 8001
Zakładając, że adres serwera to 192.168.1.8 (zamień na właściwy adres serwera) Uzyskaj dostęp do MyEMS Web UI pod adresem http://192.168.1.8 (80 można pominąć) Uzyskaj dostęp do MyEMS Admin UI pod adresem http://192.168.1.8:8001
Domyślne hasła
MyEMS Admin UI
Nazwa użytkownika:
administrator
Hasło:
!MyEMS1
MyEMS Web UI
Nazwa użytkownika:
administrator@myems.io
Hasło:
!MyEMS1