Pergi ke kandungan utama

Windows 10 / 11 / Server

Dalam panduan ini, anda akan menggunakan MyEMS pada pelayan Windows 10, Windows 11 dan Windows Server.

Pra-syarat

Panduan ini menerangkan cara memasang MyEMS pada Windows 10, Windows 11 dan Windows Server 2022. Keperluan perkakasan bergantung kepada pangkalan data yang dipilih dan bilangan peranti yang disambungkan ke sistem. Untuk menjalankan MyEMS, MySQL dan mana-mana versi Python 3.10, 3.11 atau 3.12 pada satu komputer, sekurang-kurangnya 8GB RAM diperlukan.

Klon kod sumber:

Jalankan Windows PowerShell sebagai Pentadbir
cd C:\
git clone https://gitee.com/myems/myems

Pasang Python 3.10:

https://www.python.org/downloads/windows/
Pakej pemasangan Python versi 3.10.11 64-bit untuk sistem 64-bit
Muat turun Windows installer (64-bit)
Jalankan pakej pemasangan Python
Klik dua kali: python-3.10.11-amd64.exe
Tandakan “Add Python to PATH” dan klik “Customize installation”
Pastikan semua pilihan ditandakan, terutamanya pip, diperlukan untuk memasang pustaka kemudian; klik Next
Tandakan pilihan pertama, tukar laluan pemasangan Python, kemudian klik install
Nota: Laluan lalai ialah C:\Program Files\Python310 Sila tukar kepada C:\Python310
Setelah pemasangan selesai, klik close
Dalam Command Prompt taip python, tekan Enter jika versi Python dipaparkan bermakna pemasangan berjaya

Langkah 1 Pangkalan Data

Rujuk Database

Berikut adalah langkah terperinci untuk memuat turun dan memasang pangkalan data MySQL (contoh MySQL 8.0, versi Community percuma).

1.1 Muat turun pakej pemasangan MySQL

  1. Buka laman rasmi: https://dev.mysql.com/downloads/mysql/
  2. Pilih platform Windows, biasanya terdapat dua pilihan:
    • mysql-installer-web-community (pemasangan dalam talian, saiz kecil)
    • mysql-installer-community (pakej luar talian penuh, disyorkan)
  3. Klik Download, jika diminta log masuk boleh langkau (No thanks, just start my download)

1.2 Pasang MySQL

  1. Klik dua kali jalankan pemasang yang telah dimuat turun (mungkin memerlukan kebenaran pentadbir)
  2. Pilih jenis pemasangan (disyorkan Developer Default atau Custom)
    • Developer Default: Pasang MySQL Server, Workbench, Shell dan alat-alat biasa lain
    • Custom: Sesuaikan komponen pemasangan
  3. Klik Next, pemasang akan menyemak kebergantungan secara automatik dan memuat turun komponen yang hilang
  4. Klik Execute untuk mula memasang, setelah selesai klik Next

1.3 Konfigurasi MySQL Server

  1. Type and Networking

    • Config Type: Pilih Development Computer
    • Port: Lalai 3306 (tidak perlu tukar)
    • Klik Next
  2. Authentication Method

    • Disyorkan pilih Use Strong Password Encryption (penyulitan baharu)
    • Atau pilih pilihan kedua (serasi versi lama)
    • Klik Next
  3. Accounts and Roles

    • Tetapkan kata laluan root (ingat dengan jelas)
    • Pilihan tambah pengguna biasa (boleh langkau)
    • Klik Next
  4. Windows Service

    • Tandakan Configure MySQL Server as a Windows Service
    • Service Name: MySQL80 (lalai)
    • Tandakan Start the MySQL Server at System Startup
    • Klik Next
  5. Apply Configuration

    • Klik Execute untuk gunakan konfigurasi
    • Semua langkah dengan tanda hijau bermakna berjaya
    • Klik Finish

1.4 Selesai pemasangan

  1. Terus klik Next sehingga Finish dipaparkan
  2. Tandakan Start MySQL Workbench after Setup (pilihan)
  3. Klik Finish untuk keluar dari wizard pemasangan

1.5 Semak pemasangan

Kaedah 1: Ujian baris perintah

  1. Tekan Win + R, taip cmd tekan Enter
  2. Masukkan:
    mysql -u root -p
  3. Masukkan kata laluan root yang telah ditetapkan
  4. Paparan prompt mysql> bermakna berjaya

Kaedah 2: Semak perkhidmatan

  1. Tekan Win + R, taip services.msc
  2. Cari MySQL80, status hendaklah “Sedang berjalan”

1.6 Tetapan awal biasa (pilihan)

Selepas log masuk MySQL, jalankan:

-- Lihat pangkalan data
show databases;

-- Buat pangkalan data baharu
create database mydb;

-- Buat pengguna akses jauh (pilihan)
create user 'myems'@'%' identified by 'kata_laluan';
grant all privileges on *.* to 'myems'@'%';
flush privileges;

Masalah biasa

MasalahPenyelesaian
Port 3306 digunakanTukar port lain semasa pemasangan (contoh 3307)
Lupa kata laluan rootPerlu mulakan MySQL langkau jadual kebenaran, agak rumit
Tidak dapat mulakan perkhidmatanSemak port yang digunakan atau lihat Log Peristiwa Windows

Langkah 2 myems-api

  • Pasang perkhidmatan myems-api:
# 1. Buka tetingkap CMD baharu sebagai Pentadbir

# 2. Tetapkan pembolehubah persekitaran
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Masuk ke direktori projek
cd C:\myems\myems-api

# 4. Pasang semula semua pakej
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

Cipta fail .env berdasarkan example.env dan edit .env mengikut keperluan:

copy .\example.env .env
Buka dan edit C:\myems\myems-api\.env dengan editor teks
Ubah maklumat pangkalan data

Pasang sebagai Perkhidmatan Windows: Langkah penuh pemasangan (jalankan CMD sebagai Pentadbir)

# 1. Padam sepenuhnya perkhidmatan lama
sc delete MyEMSAPI

# 2. Cipta direktori log
mkdir C:\myems\myems-api\logs 2>nul

# 3. Muat turun WinSW (jika belum)
https://github.com/winsw/winsw/releases
Tukar nama WinSW-x64.exe kepada MyEMSAPI.exe

cd C:\myems\myems-api

# 4. Cipta fail konfigurasi
Cipta `C:\myems\myems-api\MyEMSAPI.xml` (gunakan notepad atau arahan di bawah):
notepad C:\myems\myems-api\MyEMSAPI.xml
Salin kandungan berikut ke notepad:
<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>
Simpan dan tutup notepad.

# 5. Pasang perkhidmatan
MyEMSAPI.exe install

# 6. Mulakan perkhidmatan
MyEMSAPI.exe start

# 7. Lihat status
MyEMSAPI.exe status

# 8. Ujian perkhidmatan
curl http://localhost:8000

# 9. Jika masalah lihat log
C:\myems\myems-api\logs

Langkah 3 myems-admin

Mulakan perkhidmatan nginx di latar belakang:

start /b nginx.exe
  • Konfigurasi NGINX
cd C:\Program Files\nginx-1.29.1\conf
Buka dan edit nginx.conf dengan editor teks

Dalam bahagian 'http', tambah beberapa arahan:

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;
...

}

Tulis arahan berikut, jika perkhidmatan myems-api berjalan pada pelayan lain ganti alamat lalai http://127.0.0.1:8000/ dengan alamat sebenar

  server {
listen 8001;
server_name myems-admin;
location / {
root C:\myems-admin;
index index.html index.htm;
}
## Untuk elak masalah CORS, guna Nginx untuk proksi myems-api ke laluan /api
## Tambah satu lagi location /api dalam 'server'
## Ganti url myems-api lalai http://127.0.0.1:8000/ dengan url sebenar jika perkhidmatan myems-api dihoskan pada pelayan lain
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • Pasang myems-admin: Jika pelayan tidak boleh sambung internet, zip folder myems/myems-admin dan muat naik ke pelayan,
  • kemudian unzip ke c:\myems-admin

Semak fail konfigurasi, buat perubahan jika perlu:

c:\myems-admin\app\api.js
Amaran

Folder “upload” untuk fail yang dimuat naik pengguna. Semasa naik taraf myems-admin, jangan padam/pindah/tulis ganti folder “upload”.

  C:\myems-admin\upload

Mulakan semula perkhidmatan nginx:

cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe

Langkah 4 myems-modbus-tcp

Dalam langkah ini, anda akan memasang perkhidmatan myems-modbus-tcp.

cd C:\myems\myems-modbus-tcp
# 1. Buka tetingkap CMD baharu sebagai Pentadbir

# 2. Tetapkan pembolehubah persekitaran
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Masuk ke direktori projek
cd C:\myems\myems-modbus-tcp

# 4. Pasang semula semua pakej
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Cipta fail .env berdasarkan example.env dan edit .env mengikut keperluan:

copy .\example.env .env
Buka dan edit C:\myems\myems-modbus-tcp\.env dengan editor teks

Pasang sebagai Perkhidmatan Windows:

# 1. Padam sepenuhnya perkhidmatan lama
sc delete MyEMSModbusTCP

# 2. Cipta direktori log
mkdir C:\myems\myems-modbus-tcp\logs 2>nul

# 3. Muat turun WinSW (jika belum)
https://github.com/winsw/winsw/releases
Tukar nama WinSW-x64.exe kepada MyEMSModbusTCP.exe

cd C:\myems\myems-modbus-tcp

# 4. Cipta fail konfigurasi
Cipta `C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml` (gunakan notepad atau arahan di bawah):
notepad C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml
Salin kandungan berikut ke notepad:
<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>
Simpan dan tutup notepad.

# 5. Pasang perkhidmatan
MyEMSModbusTCP.exe install

# 6. Mulakan perkhidmatan
MyEMSModbusTCP.exe start

# 7. Lihat status
MyEMSModbusTCP.exe status

# 8. Jika masalah lihat log
C:\myems\myems-modbus-tcp\logs

Jika MyEMSModbusTCP.exe install dan MyEMSModbusTCP.exe start berjaya dijalankan tetapi MyEMSModbusTCP.exe status masih Stopped, mungkin vc++ belum dipasang. Alamat pasang vc++: https://learn.microsoft.com/ms-id/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022

Langkah 5 myems-cleaning

Dalam langkah ini, anda akan memasang perkhidmatan myems-cleaning.

cd C:\myems\myems-cleaning
# 1. Buka tetingkap CMD baharu sebagai Pentadbir

# 2. Tetapkan pembolehubah persekitaran
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Masuk ke direktori projek
cd C:\myems\myems-cleaning

# 4. Pasang semula semua pakej
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Cipta fail .env berdasarkan example.env dan edit .env mengikut keperluan:

copy C:\myems\myems-cleaning\example.env .env
Buka dan edit C:\myems\myems-cleaning\.env dengan editor teks

Pasang sebagai Perkhidmatan Windows:

# 1. Padam sepenuhnya perkhidmatan lama
sc delete MyEMSCleaning


# 2. Cipta direktori log
mkdir C:\myems\myems-cleaning\logs 2>nul

# 3. Muat turun WinSW (jika belum)
https://github.com/winsw/winsw/releases
Tukar nama WinSW-x64.exe kepada MyEMSCleaning.exe

cd C:\myems\myems-cleaning

# 4. Cipta fail konfigurasi
Cipta `C:\myems\myems-cleaning\MyEMSCleaning.xml` (gunakan notepad atau arahan di bawah):
notepad C:\myems\myems-cleaning\MyEMSCleaning.xml
Salin kandungan berikut ke notepad:
<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>
Simpan dan tutup notepad.

# 5. Pasang perkhidmatan
MyEMSCleaning.exe install

# 6. Mulakan perkhidmatan
MyEMSCleaning.exe start

# 7. Lihat status
MyEMSCleaning.exe status

# 8. Jika masalah lihat log
C:\myems\myems-cleaning\logs

Langkah 6 myems-normalization

Dalam langkah ini, anda akan memasang perkhidmatan myems-normalization.

cd C:\myems\myems-normalization
# 1. Buka tetingkap CMD baharu sebagai Pentadbir

# 2. Tetapkan pembolehubah persekitaran
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Masuk ke direktori projek
cd C:\myems\myems-normalization

# 4. Pasang semula semua pakej
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Cipta fail .env berdasarkan example.env dan edit .env mengikut keperluan:

copy C:\myems\myems-normalization\example.env .env
Buka dan edit C:\myems\myems-normalization\.env dengan editor teks

Pasang sebagai Perkhidmatan Windows:

# 1. Padam sepenuhnya perkhidmatan lama
sc delete MyEMSNormalization


# 2. Cipta direktori log
mkdir C:\myems\myems-normalization\logs 2>nul

# 3. Muat turun WinSW (jika belum)
https://github.com/winsw/winsw/releases
Tukar nama WinSW-x64.exe kepada MyEMSNormalization.exe

cd C:\myems\myems-normalization

# 4. Cipta fail konfigurasi
Cipta `C:\myems\myems-normalization\MyEMSNormalization.xml` (gunakan notepad atau arahan di bawah):
notepad C:\myems\myems-normalization\MyEMSNormalization.xml
Salin kandungan berikut ke notepad:
<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>
Simpan dan tutup notepad.

# 5. Pasang perkhidmatan
MyEMSNormalization.exe install

# 6. Mulakan perkhidmatan
MyEMSNormalization.exe start

# 7. Lihat status
MyEMSNormalization.exe status

# 8. Jika masalah lihat log
C:\myems\myems-normalization\logs

Langkah 7 myems-aggregation

Dalam langkah ini, anda akan memasang perkhidmatan myems-aggregation.

cd C:\myems\myems-aggregation
# 1. Buka tetingkap CMD baharu sebagai Pentadbir

# 2. Tetapkan pembolehubah persekitaran
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

# 3. Masuk ke direktori projek
cd C:\myems\myems-aggregation

# 4. Pasang semula semua pakej
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Cipta fail .env berdasarkan example.env dan edit .env mengikut keperluan:

copy C:\myems\myems-aggregation\example.env .env
Buka dan edit C:\myems\myems-aggregation\.env dengan editor teks

Pasang sebagai Perkhidmatan Windows:

# 1. Padam sepenuhnya perkhidmatan lama
sc delete MyEMSAggregation

# 2. Cipta direktori log
mkdir C:\myems\myems-aggregation\logs 2>nul

# 3. Muat turun WinSW (jika belum)
https://github.com/winsw/winsw/releases
Tukar nama WinSW-x64.exe kepada MyEMSAggregation.exe

cd C:\myems\myems-aggregation

# 4. Cipta fail konfigurasi
Cipta `C:\myems\myems-aggregation\MyEMSAggregation.xml` (gunakan notepad atau arahan di bawah):
notepad C:\myems\myems-aggregation\MyEMSAggregation.xml
Salin kandungan berikut ke notepad:
<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>
Simpan dan tutup notepad.

# 5. Pasang perkhidmatan
MyEMSAggregation.exe install

# 6. Mulakan perkhidmatan
MyEMSAggregation.exe start

# 7. Lihat status
MyEMSAggregation.exe status

# 8. Jika masalah lihat log
C:\myems\myems-aggregation\logs

Langkah 8 myems-web

Dalam langkah ini, anda akan memasang perkhidmatan myems-web.

Mulakan perkhidmatan nginx:

start /b nginx.exe
  • Konfigurasi NGINX
cd C:\Program Files\nginx-1.29.1\conf
Buka dan edit nginx.conf dengan editor teks

Tulis arahan berikut, jika perkhidmatan myems-api dihoskan pada pelayan lain ganti alamat myems-api lalai http://127.0.0.1:8000/ dengan alamat sebenar

server {
listen 80;
server_name myems-web;
location / {
root C:\myems-web\build;
index index.html index.htm;
# tambah arahan try_files untuk elak ralat 404 semasa muat semula halaman
try_files $uri /index.html;
}
## Untuk elak masalah CORS, guna Nginx untuk proksi myems-api ke laluan /api
## Tambah satu lagi location /api dalam 'server'
## ganti url myems-api lalai http://127.0.0.1:8000/ dengan url sebenar jika perkhidmatan myems-api dihoskan pada pelayan lain
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}

Mulakan semula Nginx

cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
  • Pasang Antara Muka Web MyEMS:

Pasang NodeJS: https://nodejs.org/ms Keperluan versi:

  • Node.js 22.22.2, 24.5.0 atau yang lebih baru
  • npm 10.9.7, 11.5.1 atau yang lebih baru
Contoh: C:\Program Files\nodejs
Konfigurasi pembolehubah persekitaran

Edit fail konfigurasi:

cd C:\myems\myems-web
Buka dan edit src/config.js dengan editor teks

Bina projek:

npm i
npm run build
Folder build dicipta dalam C:\myems\myems-web
mkdir C:\myems-web
move "C:\myems\myems-web\build" "C:\myems-web"

Jika pembinaan gagal, muncul ralat timeout seperti berikut:

npm error code EIDLETIMEOUT
npm error Idle timeout reached for host `registry.npmjs.org:443`

Jalankan arahan berikut untuk tukar sumber cermin tempatan:

npm config set registry https://registry.npmmirror.com/

Selepas Pemasangan

Tahniah anda kini boleh log masuk ke Antara Muka Pentadbiran MyEMS dan Antara Muka Web MyEMS.

Port Lalai

Antara Muka Web MyEMS: 80

API MyEMS: 8000

Antara Muka Pentadbiran MyEMS: 8001

Andaikan alamat pelayan ialah 192.168.1.8 (ganti dengan alamat sebenar pelayan) Alamat akses Antara Muka Web MyEMS ialah http://192.168.1.8 (port 80 boleh diabaikan) Alamat akses Antara Muka Pentadbiran MyEMS ialah http://192.168.1.8:8001

Kata Laluan Lalai

Antara Muka Pentadbiran MyEMS

Nama pengguna:

administrator

Kata laluan:

!MyEMS1

Antara Muka Web MyEMS

Nama pengguna:

administrator

Kata laluan:

!MyEMS1