Ana İçeriğe Git

CentOS/RHEL/Rocky/AlmaLinux/Oracle Linux

Bu kılavuzda, MyEMS'i CentOS veya RHEL sunucusunda dağıtacaksınız.

Önkoşullar

Bu kılavuz, MyEMS'in CentOS Stream 9 / Red Hat Enterprise Linux 9 (RHEL 9) / Rocky 9 / AlmaLinux 9.1 / Oracle Linux 9.1 üzerine nasıl kurulacağını açıklar. Donanım gereksinimleri, seçilen veritabanına ve sisteme bağlı cihaz sayısına göre değişir. MyEMS ve MySQL'i tek bir makinede çalıştırmak için en az 4GB RAM'e ihtiyacınız olacak.

Sistemi güncelleyin ve araçları yükleyin

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

Kaynak kodu klonlayın:

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

1. Adım Veritabanı

Veritabanı bölümüne bakın

2. Adım myems-api

  • myems-api servisini kurun:
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo pip install -r requirements.txt
Not

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1)If the code does not work, you can use the following code: sudo pip install -r requirements.txt --break-system-packages

example.env dosyasına göre .env dosyasını oluşturun ve gerekirse düzenleyin:

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

Portu güvenlik duvarına ekleyin:

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

systemd yapılandırma dosyalarını ayarlayın:

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/

Ardından, servislerin sistem açılışında otomatik başlamasını sağlayın:

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

Servisleri başlatın:

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

3. Adım myems-admin

  • NGINX Sunucusunu Kurun

http://nginx.org/en/linux_packages.html#RHEL adresine bakın

nginx servisini etkinleştirin:

sudo systemctl start nginx.service
  • NGINX'i Yapılandırın
sudo nano /etc/nginx/nginx.conf

'http' bölümüne aşağıdaki yönergeleri ekleyin:

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

}

/etc/nginx/conf.d/ altında yeni bir dosya oluşturun

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

Aşağıdaki yönergelerle yazın ve eğer myems-api servisi farklı bir sunucuda barındırılıyorsa, varsayılan myems-api url'si http://127.0.0.1:8000/ adresini gerçek url ile değiştirin

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'i kurun: Sunucu internete bağlanamıyorsa, myems/myems-admin klasörünü sıkıştırıp sunucuya yükleyin ve ~/myems/myems-admin dizinine çıkarın
sudo mkdir /var/www
sudo cp -r ~/myems/myems-admin  /var/www/myems-admin
sudo chmod 0755 -R /var/www/myems-admin

Yapılandırma dosyasını kontrol edin ve gerekirse değiştirin:

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

'upload' klasörü, kullanıcı tarafından yüklenen dosyalar içindir. myems-admin'i yükseltirken 'upload' klasörünü silmeyin/taşımayın/üzerine yazmayın.

 /var/www/myems-admin/upload

Portu açın ve güvenlik duvarına ekleyin:

sudo semanage port -a -t http_port_t  -p tcp 8001
sudo firewall-cmd --zone=public --add-port=8001/tcp --permanent
sudo firewall-cmd --reload

nginx servisini yeniden başlatın:

sudo systemctl restart nginx.service
İpucu

'403 Forbidden' nginx hatasıyla karşılaşırsanız, 'sudo setenforce 0' komutuyla SELinux modunu değiştirerek sorunu çözebilirsiniz.

4. Adım myems-modbus-tcp

Bu adımda, myems-modbus-tcp servisini kuracaksınız.

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

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1)If the code does not work, you can use the following code: sudo pip install -r requirements.txt --break-system-packages

exmaple.env dosyasını .env olarak kopyalayın ve .env dosyasını düzenleyin:

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

systemd servisini ayarlayın:

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

Servisi etkinleştirin:

sudo systemctl enable myems-modbus-tcp.service

Servisi başlatın:

sudo systemctl start myems-modbus-tcp.service

Servisi izleyin:

sudo systemctl status myems-modbus-tcp.service

Log dosyasını görüntüleyin:

cat /myems-modbus-tcp.log

5. Adım myems-cleaning

Bu adımda, myems-cleaning servisini kuracaksınız.

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

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1)If the code does not work, you can use the following code: sudo pip install -r requirements.txt --break-system-packages

exmaple.env dosyasını .env olarak kopyalayın ve .env dosyasını düzenleyin:

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

systemd servisini ayarlayın:

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

Servisi etkinleştirin:

sudo systemctl enable myems-cleaning.service

Servisi başlatın:

sudo systemctl start myems-cleaning.service

Servisi izleyin:

sudo systemctl status myems-cleaning.service

Log dosyasını görüntüleyin:

cat /myems-cleaning.log

6. Adım myems-normalization

Bu adımda, myems-normalization servisini kuracaksınız.

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

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1)If the code does not work, you can use the following code: sudo pip install -r requirements.txt --break-system-packages

exmaple.env dosyasını .env olarak kopyalayın ve .env dosyasını düzenleyin:

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

systemd servisini ayarlayın:

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

Servisi etkinleştirin:

sudo systemctl enable myems-normalization.service

Servisi başlatın:

sudo systemctl start myems-normalization.service

Servisi izleyin:

sudo systemctl status myems-normalization.service

Log dosyasını görüntüleyin:

cat /myems-normalization.log

7. Adım myems-aggregation

Bu adımda, myems-aggregation servisini kuracaksınız.

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

(CentOS Stream 9/RHEL 9/Rocky 9/AlmaLinux 9.1/Oracle Linux 9.1)If the code does not work, you can use the following code: sudo pip install -r requirements.txt --break-system-packages

exmaple.env dosyasını .env olarak kopyalayın ve .env dosyasını düzenleyin:

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

systemd servisini ayarlayın:

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

Servisi etkinleştirin:

sudo systemctl enable myems-aggregation.service

Servisi başlatın:

sudo systemctl start myems-aggregation.service

Servisi izleyin:

sudo systemctl status myems-aggregation.service

Log dosyasını görüntüleyin:

cat /myems-aggregation.log

8. Adım myems-web

Bu adımda, myems-web UI servisini kuracaksınız.

  • NGINX Sunucusunu Kurun

http://nginx.org/en/linux_packages.html#RHEL adresine bakın

  • NGINX'i Yapılandırın

Varsayılan dosyaları kaldırın

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

/etc/nginx/conf.d/ altında yeni bir dosya oluşturun

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

'server' bölümünü aşağıdaki yönergelerle ekleyin:

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'yi Kurun:

NodeJS'i Kurun:

sudo dnf install nodejs
  • config.js dosyasını düzenleyin:
Not

https://mapbox.com adresinden mapboxToken alın ve showOnlineMap değerini true olarak ayarlayın. Çevrimiçi harita özelliğini kapatmak isterseniz, showOnlineMap değerini false olarak ayarlayın

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

Derleyin ve Sıkıştırın

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

Kurulum Dosyaları web sunucunuza yükleyin. Aşağıdaki yolun nginx.conf dosyasında yapılandırılan yol ile aynı olduğundan emin olun.

sudo mv build  /var/www/myems-web

Portu açın ve güvenlik duvarına ekleyin:

sudo semanage port -a -t http_port_t  -p tcp 80
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload

nginx servisini yeniden başlatın:

sudo systemctl restart nginx.service
İpucu

'500 Internal Server Error' nginx hatasıyla karşılaşırsanız, 'sudo setenforce 0' komutuyla SELinux modunu değiştirerek sorunu çözebilirsiniz.

Kurulum Sonrası

Tebrikler! Artık MyEMS Admin UI ve Web UI'ye giriş yapabilirsiniz.

Varsayılan Portlar

MyEMS Web UI: 80

MyEMS API: 8000

MyEMS Admin UI: 8001

Varsayılan Şifreler

Admin UI
administrator

!MyEMS1
Web UI
administrator@myems.io

!MyEMS1

Sorun Giderme