Ana İçeriğe Git

freebsd


FreeBSD

Bu kılavuzda, MyEMS'i FreeBSD sunucusunda dağıtacaksınız.

Önkoşullar

Bu kılavuz, MyEMS'in FreeBSD 13.2'ye 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.

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

pkg install git
pkg install python3
pkg install py39-pip-22.3.1
pkg install nginx
pkg install monit

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:
cp -r ~/myems/myems-api /myems-api
cd /myems-api
pip install -r requirements.txt
İpucu

Eğer 'Failed building wheel for pillow' hatası ile karşılaşırsanız, Pillow Yükleme Kılavuzuna başvurmanız gerekir.

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

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

monit izleme hizmetini kullanın ve monit yapılandırma dosyasını düzenleyin:

nano /etc/monit.d/myems-api
check process mymes-api with pidfile /var/run/myems-api/pid
start program = "/usr/local/bin/gunicorn -b 0.0.0.0:8000 --pid /var/run/myems-api/pid --timeout 600 --workers=4 app:api &"
stop program = "/bin/kill -s TERM $MAINPID"
if 3 restarts within 5 cycles then unmonitor

Hizmetleri başlatın:

monit restart

Adım 3 myems-admin

  • NGINX Sunucusunu yükleyin

http://nginx.org/en/docs/install.html adresine başvurunuz

nginx hizmetini etkinleştirin:

service nginx enable
  • NGINX'i yapılandırın
nano /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

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

Aşağıdaki yönergelerle yazın, ve 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
mkdir /var/www
cp -r ~/myems/myems-admin  /var/www/myems-admin
chmod 0755 /var/www/myems-admin

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

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ükselttiğinizde 'upload' klasörünü silme/hareket ettirme/üzerine yazma YAPMAYIN.

 /var/www/myems-admin/upload

nginx hizmetini yeniden başlatın:

service nginx restart

Adım 4 myems-modbus-tcp

Bu adımda, myems-modbus-tcp hizmetini yükleyeceksiniz.

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

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

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

monit izleme hizmetini kullanın ve monit yapılandırma dosyasını düzenleyin:

nano /etc/monit.d/myems-modbus-tcp
check file myems-modbus-tcp path /myems-modbus-tcp/main.py
start program = "/usr/local/bin/python3 /myems-modbus-tcp/main.py"
stop program = "/bin/kill -s TERM $MAINPID"
if 3 restarts within 5 cycles then unmonitor

Hizmeti başlatın:

monit restart

Adım 5 myems-cleaning

Bu adımda, myems-cleaning hizmetini yükleyeceksiniz.

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

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

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

monit izleme hizmetini kullanın ve monit yapılandırma dosyasını düzenleyin:

nano /etc/monit.d/myems-cleaning
check file myems-cleaning path /myems-cleaning/main.py
start program = "/usr/local/bin/python3 /myems-cleaning/main.py"
stop program = "/bin/kill -s TERM $MAINPID"
if 3 restarts within 5 cycles then unmonitor

Hizmeti başlatın:

monit restart

Adım 6 myems-normalization

Bu adımda, myems-normalization hizmetini yükleyeceksiniz.

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

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

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

monit izleme hizmetini kullanın ve monit yapılandırma dosyasını düzenleyin:

nano /etc/monit.d/myems-normalization
check file myems-normalization path /myems-normalization/main.py
start program = "/usr/local/bin/python3 /myems-normalization/main.py"
stop program = "/bin/kill -s TERM $MAINPID"
if 3 restarts within 5 cycles then unmonitor

Hizmeti başlatın:

monit restart

Adım 7 myems-aggregation

Bu adımda, myems-aggregation hizmetini yükleyeceksiniz.

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

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

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

monit izleme hizmetini kullanın ve monit yapılandırma dosyasını düzenleyin:

nano /etc/monit.d/myems-aggregation
check file myems-aggregation path /myems-aggregation/main.py
start program = "/usr/local/bin/python3 /myems-aggregation/main.py"
stop program = "/bin/kill -s TERM $MAINPID"
if 3 restarts within 5 cycles then unmonitor

Hizmeti başlatın:

monit restart

Adım 8 myems-web

Bu adımda, myems-web UI hizmetini yükleyeceksiniz.

  • NGINX Sunucusunu yükleyin

http://nginx.org/en/docs/install.html 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
## 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 Web UI'yı yükleyin:

NodeJS'yi kurun:

pkg install node-18.16.0

config.js dosyasını düzenleyin:

Not

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
nano src/config.js

Derleme (Build):

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

Yükleme: Lütfen aşağıdaki yolun nginx.conf'da yapılandırılan yol ile aynı olduğundan emin olun.

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

nginx hizmetini yeniden başlatın:

service nginx restart

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

Sorun Giderme