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
(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
'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
'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
(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
(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
(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
(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:
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
'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