Ana İçeriğe Git

Debian/Ubuntu

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

Önkoşullar

Bu kılavuz, MyEMS'in Ubuntu 24.04 LTS / Ubuntu 22.04 LTS / Ubuntu 20.04 LTS / Ubuntu 18.04 LTS / Debian 12 Bookworm / Debian 11 Bullseye / Debian 10 Buster ü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.

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 apt install python3-pip
sudo pip install -r requirements.txt
Not

(Ubuntu 24.04 LTS)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 ufw allow 8000

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#Debian 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, 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 a 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 güvenlik duvarına ekleyin:

sudo ufw allow 8001

nginx servisini yeniden başlatın:

sudo systemctl restart nginx.service

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

(Ubuntu 24.04 LTS)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

(Ubuntu 24.04 LTS)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

(Ubuntu 24.04 LTS)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

(Ubuntu 24.04 LTS)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.

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' and replace demo address http://127.0.0.1:8000/ with actual url
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}

NGINX'i yeniden başlatın

sudo systemctl restart nginx
  • MyEMS Web UI'yi Kurun:

NodeJS'i Kurun:

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt-get install -y 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

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

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

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

Portu güvenlik duvarına ekleyin:

sudo ufw allow 80

NGINX'i yeniden başlatın

sudo systemctl restart nginx

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

Sunucu adresinin 192.168.1.8 olduğunu varsayarsak (gerçek sunucu adresiyle değiştirin) MyEMS Web UI'ye http://192.168.1.8 adresinden erişin (80 portu atlanabilir) MyEMS Admin UI'ye http://192.168.1.8:8001 adresinden erişin

Varsayılan Şifreler

MyEMS Admin UI

Kullanıcı Adı:

administrator

Şifre:

!MyEMS1

MyEMS Web UI

Kullanıcı Adı:

administrator@myems.io

Şifre:

!MyEMS1

Sorun Giderme

If 'error: externally-managed-environment' occurs when executing 'sudo pip install -r requirements.txt'

Create a virtual environment configuration directory:

sudo python -m venv venv

Start using the virtual environment

source venv/bin/activate

Install the requirements

sudo venv/bin/pip install -r requirements.txt

Deactivate the virtual environment

deactivate