Windows 10 / 11 / Server
Bu kılavuzda, MyEMS'i Windows 10 / 11 / Server sunucularına dağıtacaksınız.
Ön Koşullar
Bu kılavuz, MyEMS'in Windows 10, Windows 11 ve Windows Server (2022) üzerine nasıl kurulacağını açıklamaktadır. Donanım gereksinimleri, seçilen veritabanına ve sisteme bağlanan cihaz sayısına bağlıdır. MyEMS, MySQL ve Python 3.10, 3.11 veya 3.12 sürümlerinden birini tek bir bilgisayarda çalıştırmak için en az 8GB RAM gereklidir.
Kaynak kodunu klonlayın:
Yönetici olarak çalıştırın, Windows PowerShell
cd C:\
git clone https://gitee.com/myems/myems
Python 3.10 yükleyin
https://www.python.org/downloads/windows/
Python 3.10.11 sürümü 64-bit sistemler içindir
Windows Installer'ı (64-bit) indirin
Python kurulum dosyasını çalıştırın ve kurun
Çift tıklayın: python-3.10.11-amd64.exe
"Add py... to PATH" seçeneğini işaretleyin ve "Özelleştirilmiş Kurulum (customize installation)" seçeneğine tıklayın
Tüm seçeneklerin işaretli olduğundan emin olun, özellikle pip (daha sonra kütüphane kurmak için gereklidir); "İleri"ye tıklayın
İlk seçeneği işaretleyin, Python kurulum konumunu değiştirmeniz önerilir, ardından "install"a tıklayın
Not: Varsayılan kurulum yolu: C:\Program Files\Python310 Lütfen C:\Python310 olarak değiştirin
Kurulum tamamlandıktan sonra "kapat"a tıklayın
Komut istemine python yazın, Enter'a basın ve Python sürüm numarası görünüyorsa kurulum başarılıdır
Adım 1 Veritabanı
Bkz. Database
Aşağıda MySQL veritabanının indirme ve kurulum adımları ayrıntılı olarak verilmiştir (MySQL 8.0 örnek olarak, topluluk sürümü ücretsizdir).
1.1 MySQL Kurulum Dosyasını İndirin
- Resmi web sitesini açın: https://dev.mysql.com/downloads/mysql/
- Windows platformunu seçin, genellikle iki seçenek mevcuttur:
- mysql-installer-web-community (çevrimiçi kurulum, küçük boyutlu)
- mysql-installer-community (çevrimdışı tam paket, önerilir)
- Downloada tıklayın, giriş yapmanız istenirse atlayın (No thanks, just start my download)
1.2 MySQL Kurulumu
- İndirilen kurulum programını çift tıklayın (yönetici izni gerekebilir)
- Kurulum türünü seçin (Developer Default veya Custom önerilir)
- Developer Default: MySQL Sunucusu, Workbench, Shell ve diğer sık kullanılan araçları kurar
- Custom: Bileşenleri özelleştirebilir
- Nexte tıklayın, kurulum programı bağımlılıkları otomatik olarak kontrol edecek ve eksik bileşenleri indirecektir
- Executea tıklayarak kuruluma başlayın, tamamlandıktan sonra Nexte tıklayın
1.3 MySQL Sunucusunu Yapılandırın
-
Type and Networking
- Config Type: Development Computer seçin
- Port: varsayılan 3306 (değiştirilmeyebilir)
- Next'e tıklayın
-
Authentication Method
- Use Strong Password Encryption önerilir (yeni şifreleme)
- Veya eski sürümlerle uyumlu ikinci seçeneği seçin
- Next'e tıklayın
-
Accounts and Roles
- root şifresini ayarlayın (mutlaka hatırlayın)
- İsteğe bağlı olarak normal kullanıcı ekleyin (atlanabilir)
- Next'e tıklayın
-
Windows Service
- Configure MySQL Server as a Windows Service seçeneğini işaretleyin
- Service Name: MySQL80 (varsayılan)
- Start the MySQL Server at System Startup seçeneğini işaretleyin
- Next'e tıklayın
-
Apply Configuration
- Yapılandırmayı uygulamak için Executea tıklayın
- Tüm adımlar yeşil onay işareti gösteriyorsa başarılıdır
- Finishe tıklayın
1.4 Kurulumu Tamamlayın
- Finish görünene kadar devam etmek için Next'e tıklayın
- Start MySQL Workbench after Setup seçeneğini işaretleyin (isteğe bağlı)
- Kurulum sihirbazından çıkmak için Finishe tıklayın
1.5 Kurulumu Doğrulayın
Yöntem 1: Komut satırı testi
Win + Rtuşlarına basın,cmdyazın ve Enter'a basın- Şunu girin:
mysql -u root -p - Ayarladığınız root şifresini girin
mysql>istemi görünüyorsa başarılıdır
Yöntem 2: Hizmeti kontrol edin
Win + Rtuşlarına basın,services.mscyazın ve Enter'a basınMySQL80hizmetini bulun, durumu "Çalışıyor" olmalıdır
1.6 Sık Kullanılan Başlangıç Ayarları (İsteğe Bağlı)
MySQL'e giriş yaptıktan sonra çalıştırın:
-- Veritabanlarını görüntüle
show databases;
-- Yeni veritabanı oluştur
create database mydb;
-- Uzaktan erişim kullanıcısı oluştur (isteğe bağlı)
create user 'myems'@'%' identified by 'şifre';
grant all privileges on *.* to 'myems'@'%';
flush privileges;
Sık Karşılaşılan Sorunlar
| Sorun | Çözüm Yöntemi |
|---|---|
| 3306 portu kullanılıyor | Kurulum sırasında başka porta değiştirin (örneğin 3307) |
| root şifresi unutuldu | Yetki tablosunu atlayarak MySQL başlatın, karmaşıktır |
| Hizmet başlatılamıyor | Portun kullanılıp kullanılmadığını kontrol edin veya Windows olay günlüğüne bakın |
Adım 2 myems-api
- myems-api hizmetini kurun:
# 1. Yeni bir CMD penceresini yönetici olarak açın
# 2. Ortam değişkenlerini ayarlayın
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Proje dizinine girin
cd C:\myems\myems-api
# 4. Tüm paketleri yeniden yükleyin
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
C:\Python310\python.exe -m pip install --no-cache-dir --no-user waitress
example.env dosyasından .env dosyasını oluşturun ve gerektiğinde .env dosyasını düzenleyin:
copy .\example.env .env
Metin düzenleyiciyle açın ve düzenleyin C:\myems\myems-api\.env
Veritabanı bilgilerini değiştirin
Windows Hizmeti olarak kurun:
Tam kurulum adımları (yönetici olarak CMD çalıştırın)
# 1. Tüm eski hizmetleri tamamen silin
sc delete MyEMSAPI
# 2. Günlük dizini oluşturun
mkdir C:\myems\myems-api\logs 2>nul
# 3. WinSW'yi indirin (henüz indirilmediyse)
https://github.com/winsw/winsw/releases
WinSW-x64.exe dosyasını MyEMSAPI.exe olarak yeniden adlandırın
cd C:\myems\myems-api
# 4. Yapılandırma dosyasını oluşturun
`C:\myems\myems-api\MyEMSAPI.xml` dosyasını oluşturun (notepad veya aşağıdaki komutla):
notepad C:\myems\myems-api\MyEMSAPI.xml
Aşağıdaki içeriği not defterine kopyalayın:
<service>
<id>MyEMSAPI</id>
<name>MyEMS API Service</name>
<description>MyEMS API Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>-m waitress --listen=0.0.0.0:8000 app:api</arguments>
<workingdirectory>C:\myems\myems-api</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-api\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
Kaydedin ve not defterini kapatın.
# 5. Hizmeti kurun
MyEMSAPI.exe install
# 6. Hizmeti başlatın
MyEMSAPI.exe start
# 7. Durumu kontrol edin
MyEMSAPI.exe status
# 8. Hizmeti test edin
curl http://localhost:8000
# 9. Sorun oluşursa günlüklere bakın
C:\myems\myems-api\logs
Adım 3 myems-admin
- NGINX sunucusunu kurun: https://nginx.org/en/download.html
Arka planda nginx hizmetini etkinleştirin:
start /b nginx.exe
- NGINX Yapılandırması
cd C:\Program Files\nginx-1.29.1\conf
Metin düzenleyiciyle açın ve nginx.conf dosyasını düzenleyin
'http' bölümünde bazı yönergeler 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;
...
}
Aşağıdaki yönergeleri yazın, myems-api hizmeti başka bir sunucuda çalışıyorsa varsayılan http://127.0.0.1:8000/ adresini gerçek adresle değiştirin
server {
listen 8001;
server_name myems-admin;
location / {
root C:\myems-admin;
index index.html index.htm;
}
## CORS sorununu önlemek için Nginx ile myems-api'yi /api yoluna yönlendirin
## 'server' içinde başka bir /api konumu ekleyin
## myems-api servisi farklı bir sunucuda barındırılıyorsa varsayılan myems-api adresi http://127.0.0.1:8000/ yerine gerçek adresi 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 kurulumu: Sunucu internete bağlanamıyorsa myems/myems-admin klasörünü sıkıştırın ve sunucuya yükleyin,
- Ardından c:\myems-admin dizinine çıkarın
Yapılandırma dosyasını kontrol edin, gerekirse değişiklik yapın:
c:\myems-admins\app\api.js
"upload" klasörü kullanıcıların yüklediği dosyalar içindir. myems-admin'i yükseltirken "upload" klasörünü silmeyin/taşımayın/üzerine yazmayın.
C:\myems-admin\upload
nginx hizmetini yeniden başlatın:
cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
Adım 4 myems-modbus-tcp
Bu adımda myems-modbus-tcp hizmetini kuracaksınız.
cd C:\myems\myems-modbus-tcp
# 1. Yeni bir CMD penceresini yönetici olarak açın
# 2. Ortam değişkenlerini ayarlayın
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Proje dizinine girin
cd C:\myems\myems-modbus-tcp
# 4. Tüm paketleri yeniden yükleyin
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
example.env dosyasından .env dosyasını oluşturun ve gerektiğinde .env dosyasını düzenleyin:
copy .\example.env .env
Metin düzenleyiciyle açın ve düzenleyin C:\myems\myems-modbus-tcp\.env
Windows Hizmeti olarak kurun:
# 1. Tüm eski hizmetleri tamamen silin
sc delete MyEMSModbusTCP
# 2. Günlük dizini oluşturun
mkdir C:\myems\myems-modbus-tcp\logs 2>nul
# 3. WinSW'yi indirin (henüz indirilmediyse)
https://github.com/winsw/winsw/releases
WinSW-x64.exe dosyasını MyEMSModbusTCP.exe olarak yeniden adlandırın
cd C:\myems\myems-modbus-tcp
# 4. Yapılandırma dosyasını oluşturun
`C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml` dosyasını oluşturun (notepad veya aşağıdaki komutla):
notepad C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml
Aşağıdaki içeriği not defterine kopyalayın:
<service>
<id>MyEMSModbusTCP</id>
<name>MyEMS Modbus TCP Service</name>
<description>MyEMS Modbus TCP Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>main.py</arguments>
<workingdirectory>C:\myems\myems-modbus-tcp</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-modbus-tcp\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
Kaydedin ve not defterini kapatın.
# 5. Hizmeti kurun
MyEMSModbusTCP.exe install
# 6. Hizmeti başlatın
MyEMSModbusTCP.exe start
# 7. Durumu kontrol edin
MyEMSModbusTCP.exe status
# 8. Sorun oluşursa günlüklere bakın
C:\myems\myems-modbus-tcp\logs
MyEMSModbusTCP.exe install ve MyEMSModbusTCP.exe start komutları başarıyla çalıştırılsa bile MyEMSModbusTCP.exe status durumu Durdurulmuş olarak gösteriliyorsa, muhtemelen vc++ yüklü değildir vc++ kurulum adresi: https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022
Adım 5 myems-cleaning
Bu adımda myems-cleaning hizmetini kuracaksınız.
cd C:\Program Files\myems\myems-cleaning
# 1. Yeni bir CMD penceresini yönetici olarak açın
# 2. Ortam değişkenlerini ayarlayın
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Proje dizinine girin
cd C:\myems\myems-cleaning
# 4. Tüm paketleri yeniden yükleyin
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
example.env dosyasından .env dosyasını oluşturun ve gerektiğinde .env dosyasını düzenleyin:
copy C:\myems\myems-cleaning\example.env \.env
Metin düzenleyiciyle açın ve düzenleyin C:\myems\myems-cleaning\.env
Windows Hizmeti olarak kurun:
# 1. Tüm eski hizmetleri tamamen silin
sc delete MyEMSCleaning
# 2. Günlük dizini oluşturun
mkdir C:\myems\myems-cleaning\logs 2>nul
# 3. WinSW'yi indirin (henüz indirilmediyse)
https://github.com/winsw/winsw/releases
WinSW-x64.exe dosyasını MyEMSCleaning.exe olarak yeniden adlandırın
cd C:\myems\myems-cleaning
# 4. Yapılandırma dosyasını oluşturun
`C:\myems\myems-cleaning\MyEMSCleaning.xml` dosyasını oluşturun (notepad veya aşağıdaki komutla):
notepad C:\myems\myems-cleaning\MyEMSCleaning.xml
Aşağıdaki içeriği not defterine kopyalayın:
<service>
<id>MyEMSCleaning</id>
<name>MyEMS Cleaning Service</name>
<description>MyEMS Cleaning Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>main.py</arguments>
<workingdirectory>C:\myems\myems-cleaning</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-cleaning\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
Kaydedin ve not defterini kapatın.
# 5. Hizmeti kurun
MyEMSCleaning.exe install
# 6. Hizmeti başlatın
MyEMSCleaning.exe start
# 7. Durumu kontrol edin
MyEMSCleaning.exe status
# 8. Sorun oluşursa günlüklere bakın
C:\myems\myems-cleaning\logs
Adım 6 myems-normalization
Bu adımda myems-normalization hizmetini kuracaksınız.
cd C:\myems\myems-normalization
# 1. Yeni bir CMD penceresini yönetici olarak açın
# 2. Ortam değişkenlerini ayarlayın
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Proje dizinine girin
cd C:\myems\myems-normalization
# 4. Tüm paketleri yeniden yükleyin
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
example.env dosyasından .env dosyasını oluşturun ve gerektiğinde .env dosyasını düzenleyin:
copy C:\myems\myems-normalization\example.env \.env
Metin düzenleyiciyle açın ve düzenleyin C:\myems\myems-normalization\.env
Windows Hizmeti olarak kurun:
# 1. Tüm eski hizmetleri tamamen silin
sc delete MyEMSNormalization
# 2. Günlük dizini oluşturun
mkdir C:\myems\myems-normalization\logs 2>nul
# 3. WinSW'yi indirin (henüz indirilmediyse)
https://github.com/winsw/winsw/releases
WinSW-x64.exe dosyasını MyEMSNormalization.exe olarak yeniden adlandırın
cd C:\myems\myems-normalization
# 4. Yapılandırma dosyasını oluşturun
`C:\myems\myems-normalization\MyEMSCleaning.xml` dosyasını oluşturun (notepad veya aşağıdaki komutla):
notepad C:\myems\myems-normalization\MyEMSCleaning.xml
Aşağıdaki içeriği not defterine kopyalayın:
<service>
<id>MyEMSNormalization</id>
<name>MyEMS Normalization Service</name>
<description>MyEMS Normalization Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>main.py</arguments>
<workingdirectory>C:\myems\myems-normalization</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-normalization\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
Kaydedin ve not defterini kapatın.
# 5. Hizmeti kurun
MyEMSNormalization.exe install
# 6. Hizmeti başlatın
MyEMSNormalization.exe start
# 7. Durumu kontrol edin
MyEMSNormalization.exe status
# 8. Sorun oluşursa günlüklere bakın
C:\myems\myems-normalization\logs
Adım 7 myems-aggregation
Bu adımda myems-aggregation hizmetini kuracaksınız.
cd C:\myems\myems-aggregation
# 1. Yeni bir CMD penceresini yönetici olarak açın
# 2. Ortam değişkenlerini ayarlayın
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Proje dizinine girin
cd C:\myems\myems-aggregation
# 4. Tüm paketleri yeniden yükleyin
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
example.env dosyasından .env dosyasını oluşturun ve gerektiğinde .env dosyasını düzenleyin:
copy C:\myems\myems-aggregation\example.env \.env
Metin düzenleyiciyle açın ve düzenleyin C:\myems\myems-aggregation\.env
Windows Hizmeti olarak kurun:
# 1. Tüm eski hizmetleri tamamen silin
sc delete MyEMSAggregation
# 2. Günlük dizini oluşturun
mkdir C:\myems\myems-aggregation\logs 2>nul
# 3. WinSW'yi indirin (henüz indirilmediyse)
https://github.com/winsw/winsw/releases
WinSW-x64.exe dosyasını MyEMSAggregation.exe olarak yeniden adlandırın
cd C:\myems\myems-normalization
# 4. Yapılandırma dosyasını oluşturun
`C:\myems\myems-aggregation\MyEMSAggregation.xml` dosyasını oluşturun (notepad veya aşağıdaki komutla):
notepad C:\myems\myems-aggregation\MyEMSAggregation.xml
Aşağıdaki içeriği not defterine kopyalayın:
<service>
<id>MyEMSAggregation</id>
<name>MyEMS Aggregation Service</name>
<description>MyEMS Aggregation Service</description>
<executable>C:\Python310\python.exe</executable>
<arguments>main.py</arguments>
<workingdirectory>C:\myems\myems-aggregation</workingdirectory>
<logmode>rotate</logmode>
<logpath>C:\myems\myems-aggregation\logs</logpath>
<onfailure action="restart" delay="10 sec"/>
<stoptimeout>15 sec</stoptimeout>
<startmode>Automatic</startmode>
</service>
Kaydedin ve not defterini kapatın.
# 5. Hizmeti kurun
MyEMSAggregation.exe install
# 6. Hizmeti başlatın
MyEMSAggregation.exe start
# 7. Durumu kontrol edin
MyEMSAggregation.exe status
# 8. Sorun oluşursa günlüklere bakın
C:\myems\myems-aggregation\logs
Adım 8 myems-web
Bu adımda myems-web hizmetini kuracaksınız.
nginx hizmetini etkinleştirin:
start /b nginx.exe
- NGINX Yapılandırması
cd C:\Program Files\nginx-1.29.1\conf
Metin düzenleyiciyle açın ve nginx.conf dosyasını düzenleyin
Aşağıdaki yönergeleri yazın, myems-api hizmeti farklı bir sunucuda barındırılıyorsa varsayılan http://127.0.0.1:8000/ adresini gerçek adresle değiştirin
server {
listen 80;
server_name myems-web;
location / {
root C:\myems-web\build;
index index.html index.htm;
# sayfaları yenilerken 404 hatasını önlemek için try_files yönergesini ekleyin
try_files $uri /index.html;
}
## CORS sorununu önlemek için Nginx ile myems-api'yi /api yoluna yönlendirin
## 'server' içinde başka bir /api konumu ekleyin
## myems-api servisi farklı bir sunucuda barındırılıyorsa varsayılan myems-api adresi http://127.0.0.1:8000/ yerine gerçek adresi 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
cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
- MyEMS Web Arayüzü Kurulumu:
NodeJS yükleyin: https://nodejs.org/zh-cn Sürüm gereksinimleri:
- Node.js 22.22.2, 24.5.0 veya üzeri
- npm 10.9.7, 11.5.1 veya üzeri
Örnek: C:\Program Files\nodejs
Ortam değişkenlerini yapılandırın
Yapılandırma dosyasını değiştirin:
cd C:\myems\myems-web
Metin düzenleyiciyle açın ve src/config.js dosyasını düzenleyin
Derleme:
npm i
npm run build
C:\myems\myems-web altında build dizini oluşturulur
mkdir C:\myems-web
move "C:\myems\myems-web\build" "C:\myems-web"
Derleme başarısız olursa ve aşağıdaki zaman aşımı hatası görünürse:
npm error code EIDLETIMEOUT
npm error Idle timeout reached for host `registry.npmjs.org:443`
npm error Hatanın tam günlüğü şurada bulunabilirAşağıdaki komutu çalıştırarak yerel Çin yansıma kaynağına geçin:
npm config set registry https://registry.npmmirror.com/
Kurulum Sonrası
Tebrikler, artık MyEMS Yönetici Arayüzü ve Web Arayüzü'ne giriş yapabilirsiniz.
Varsayılan Portlar
MyEMS Web Arayüzü: 80
MyEMS API: 8000
MyEMS Yönetici Arayüzü: 8001
Sunucu adresinin 192.168.1.8 olduğunu varsayalım (sunucunun gerçek adresiyle değiştirin) MyEMS Web Arayüzü adresi: http://192.168.1.8 (80 portu yazılmayabilir) MyEMS Yönetici Arayüzü adresi: http://192.168.1.8:8001
Varsayılan Şifreler
MyEMS Yönetici Arayüzü
Kullanıcı adı:
administrator
Şifre:
!MyEMS1
MyEMS Web Arayüzü
Kullanıcı adı:
administrator
Şifre:
!MyEMS1