suse
sidebar_position: 9
SUSE
Bu kılavuzda, MyEMS'i SUSE Linux Enterprise Server üzerinde dağıtacaksınız.
Önkoşullar
Bu kılavuz, MyEMS'in SUSE Linux Enterprise Server 15'e nasıl yükleneceğini açıklar. Donanım gereksinimleri, seçilen veritabanına ve sisteme bağlı cihaz miktarına bağlıdır. MyEMS ve MySQL'i tek bir makinede çalıştırmak için en az 4GB RAM gerekir.
Kaynak kodunu kopyalayın (clone):
cd ~
git clone https://github.com/myems/myems
Adım 1 Veritabanı
Veritabanı bölümüne bakın
Adım 2 myems-api
- myems-api hizmetini yükleyin:
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo pip install -r requirements.txt
example.env dosyasına dayanarak .env dosyası oluşturun ve gerekirse .env dosyasını düzenleyin:
sudo cp /myems-api/example.env /myems-api/.env
sudo vi /myems-api/.env
Firewall'a port ekleyin:
sudo firewall-cmd --zone=public --add-port=8000/tcp --permanent
sudo firewall-cmd --reload
systemd yapılandırma dosyalarını kurun:
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/
Sonra hizmetleri etkinleştirin ki önyükleme sırasında otomatik olarak başlasınlar:
sudo systemctl enable myems-api.socket
sudo systemctl enable myems-api.service
Hizmetleri başlatın:
sudo systemctl start myems-api.socket
sudo systemctl start myems-api.service
Adım 3 myems-admin
- NGINX Sunucusunu yükleyin
http://nginx.org/en/linux_packages.html#Debian adresine başvurunuz
nginx hizmetini etkinleştirin:
sudo systemctl start nginx.service
- NGINX'i yapılandırın
sudo vi /etc/nginx/nginx.conf
'http' bölümünde, birkaç yönerge 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 ekleyin
sudo vi /etc/nginx/conf.d/myems-admin.conf
Aşağıdaki yönergelerle yazın, myems-api hizmeti farklı bir sunucuda barındırılıyorsa varsay ılan myems-api url'si http://127.0.0.1:8000/ yerine gerçek url'yi yazın
server {
listen 8001;
server_name myems-admin;
location / {
root /var/www/myems-admin;
index index.html index.htm;
}
## CORS sorunu önlemek için, Nginx'i kullanarak myems-api'yi /api yoluna proxy edin
## 'server' içine başka bir /api konumu ekleyin
## myems-api hizmeti farklı bir sunucuda barındırılıyorsa varsayılan myems-api url'si http://127.0.0.1:8000/ yerine gerçek url'yi yazın
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
- myems-admin'i yükleyin: Eğer sunucu internete bağlanamıyorsa, lütfen myems/myems-admin klasörünü sıkıştırın ve sunucuya yükleyin ve ~/myems/myems-admin dizinine ayıklayı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 vi /var/www/myems-admin/app/api.js
'upload' klasörü, kullanıcı tarafından yüklenen dosyalar içindir. myems-admin'i yükselttiğinizde 'upload' klasörünü silme/hareket ettirme/üzerine yazma YAPMAYIN.
/var/www/myems-admin/upload
Firewall'a port ekleyin:
sudo firewall-cmd --zone=public --add-port=8001/tcp --permanent
sudo firewall-cmd --reload
Adım 4 myems-modbus-tcp
Bu adımda, myems-modbus-tcp hizmetini yükleyeceksiniz.
sudo cp -r ~/myems/myems-modbus-tcp /myems-modbus-tcp
cd /myems-modbus-tcp
sudo pip install -r requirements.txt
exmaple.env dosyasını .env'ye kopyalayın ve .env dosyasını düzenleyin:
sudo cp /myems-modbus-tcp/example.env /myems-modbus-tcp/.env
sudo vi /myems-modbus-tcp/.env
systemd hizmetini kurun:
sudo cp myems-modbus-tcp.service /lib/systemd/system/
Hizmeti etkinleştirin:
sudo systemctl enable myems-modbus-tcp.service
Hizmeti başlatın:
sudo systemctl start myems-modbus-tcp.service
Hizmeti izleyin:
sudo systemctl status myems-modbus-tcp.service
Log'u görüntüleyin:
cat /myems-modbus-tcp.log
Adım 5 myems-cleaning
Bu adımda, myems-cleaning hizmetini yükleyeceksiniz.
sudo cp -r ~/myems/myems-cleaning /myems-cleaning
cd /myems-cleaning
sudo pip install -r requirements.txt
exmaple.env dosyasını .env'ye kopyalayın ve .env dosyasını düzenleyin:
sudo cp /myems-cleaning/example.env /myems-cleaning/.env
sudo vi /myems-cleaning/.env
systemd hizmetini kurun:
sudo cp /myems-cleaning/myems-cleaning.service /lib/systemd/system/
Hizmeti etkinleştirin:
sudo systemctl enable myems-cleaning.service
Hizmeti başlatın:
sudo systemctl start myems-cleaning.service
Hizmeti izleyin:
sudo systemctl status myems-cleaning.service
Log'u görüntüleyin:
cat /myems-cleaning.log
Adım 6 myems-normalization
Bu adımda, myems-normalization hizmetini yükleyeceksiniz.
sudo cp -r ~/myems/myems-normalization /myems-normalization
cd /myems-normalization
sudo pip install -r requirements.txt
exmaple.env dosyasını .env'ye kopyalayın ve .env dosyasını düzenleyin:
sudo cp /myems-normalization/example.env /myems-normalization/.env
sudo vi /myems-normalization/.env
systemd hizmetini kurun:
sudo cp /myems-normalization/myems-normalization.service /lib/systemd/system/
Hizmeti etkinleştirin:
sudo systemctl enable myems-normalization.service
Hizmeti başlatın:
sudo systemctl start myems-normalization.service
Hizmeti izleyin:
sudo systemctl status myems-normalization.service
Log'u görüntüleyin:
cat /myems-normalization.log
Adım 7 myems-aggregation
Bu adımda, myems-aggregation hizmetini yükleyeceksiniz.
sudo cp -r ~/myems/myems-aggregation /myems-aggregation
cd /myems-aggregation
pip install -r requirements.txt
exmaple.env dosyasını .env'ye kopyalayın ve .env dosyasını düzenleyin:
sudo cp /myems-aggregation/example.env /myems-aggregation/.env
vi /myems-aggregation/.env
systemd hizmetini kurun:
sudo cp /myems-aggregation/myems-aggregation.service /lib/systemd/system/
Hizmeti etkinleştirin:
sudo systemctl enable myems-aggregation.service
Hizmeti başlatın:
sudo systemctl start myems-aggregation.service
Hizmeti izleyin:
sudo systemctl status myems-aggregation.service
Log'u görüntüleyin:
cat /myems-aggregation.log
Adım 8 myems-web
Bu adımda, myems-web UI hizmetini yükleyeceksiniz.
-
NGINX Sunucusunu yükleyin http://nginx.org/en/linux_packages.html#Debian adresine başvurunuz
-
NGINX'i yapılandırın
Varsayılan dosyaları silin
sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/conf.d/default.conf
/etc/nginx/conf.d/ altında yeni bir dosya ekleyin
sudo nano /etc/nginx/conf.d/myems-web.conf
Aşağıdaki yönergelerle yeni bir 'server' bölümü ekleyin:
server {
listen 80;
server_name myems-web;
location / {
root /var/www/myems-web;
index index.html index.htm;
# Sayfaları yenilediğinde 404 hatasını önlemek için try_files yönergesini ekleyin
try_files $uri /index.html;
}
## CORS sorunu önlemek için, Nginx'i kullanarak myems-api'yi /api yoluna proxy edin
## 'server' içine başka bir /api konumu ekleyin ve demo adresi http://127.0.0.1:8000/ yerine gerçek url'yi yazın
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'yı yükleyin:
NodeJS'yi kurun:
sudo zypper install -y nodejs
- config.js dosyasını düzenleyin:
mapboxToken'ı https://mapbox.com adresinden alın ve ardından showOnlineMap'i true olarak ayarlayın. Çevrimiçi harita özelliğini kapatmak istiyorsanız, showOnlineMap'i false olarak ayarlayın
cd myems/myems-web
sudo vi 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
Yükleyin Dosyaları web sunucunuza yükleyin. Lütfen aşağıdaki yolun nginx.conf'da yapılandırılan yol ile aynı olduğundan emin olun.
sudo mv build /var/www/myems-web
Firewall'a port ekleyin:
sudo firewall-cmd --zone=public --add-port=80/tcp --permanent
sudo firewall-cmd --reload
Yükleme 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 varsayalım (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 Parolalar
MyEMS Admin UI
Kullanıcı adı:
administrator
Parola:
!MyEMS1
MyEMS Web UI
Kullanıcı adı:
administrator@myems.io
Parola:
!MyEMS1