Pergi ke konten utama

Windows 10 / 11 / Server

Dalam panduan ini, Anda akan men-deploy MyEMS pada server Windows 10 / 11 / Server.

Prasyarat

Panduan ini menjelaskan cara menginstal MyEMS pada Windows 10, Windows 11, dan Windows Server (2022). Kebutuhan hardware tergantung pada basis data yang dipilih dan jumlah perangkat yang terhubung ke sistem. Untuk menjalankan MyEMS, MySQL, dan Python 3.10, 3.11, atau 3.12 pada satu komputer, diperlukan setidaknya 8 GB RAM.

Klon kode sumber:

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

Instal Python 3.10

https://www.python.org/downloads/windows/
Paket Python 3.10.11 versi 64-bit untuk sistem 64-bit
Unduh Windows installer (64-bit)
Jalankan installer Python
Klik dua kali: python-3.10.11-amd64.exe
Centang "Add py... to PATH", lalu klik "Customize installation"
Pastikan semua opsi dicentang, terutama pip; klik "Next"
Centang opsi pertama, disarankan untuk mengubah lokasi instalasi Python, lalu klik "install"
Catatan: Instalasi default berada di: C:\Program Files\Python310. Ubah menjadi C:\Python310
Setelah instalasi selesai, klik "close"
Di command prompt, ketik python, tekan Enter; jika muncul nomor versi Python maka instalasi berhasil

Langkah 1 Basis Data

Lihat Database

Berikut adalah langkah-langkah detail untuk mengunduh dan menginstal MySQL (contoh dengan MySQL 8.0, edisi Community gratis).

1.1 Unduh installer MySQL

  1. Buka situs resmi: https://dev.mysql.com/downloads/mysql/
  2. Pilih platform Windows, biasanya ada dua opsi:
    • mysql-installer-web-community (instalasi online, ukuran kecil)
    • mysql-installer-community (program lengkap offline, direkomendasikan)
  3. Klik Download, jika diminta login, pilih "No thanks, just start my download"

1.2 Instal MySQL

  1. Klik dua kali untuk menjalankan installer yang diunduh (perlu hak administrator)
  2. Pilih tipe instalasi (direkomendasikan: Developer Default atau Custom)
    • Developer Default: menginstal MySQL Server, Workbench, Shell, dan alat umum lainnya
    • Custom: dapat menyesuaikan komponen
  3. Klik Next; installer akan memeriksa dependensi secara otomatis dan mengunduh komponen yang hilang
  4. Klik Execute untuk memulai instalasi, klik Next setelah selesai

1.3 Konfigurasi MySQL Server

  1. Type and Networking

    • Config Type: pilih Development Computer
    • Port: default 3306 (dapat diubah)
    • Klik Next
  2. Authentication Method

    • Direkomendasikan: pilih Use Strong Password Encryption (enkripsi lebih baru)
    • Atau pilih opsi kedua (kompatibilitas dengan versi lama)
    • Klik Next
  3. Accounts and Roles

    • Atur kata sandi root (jangan lupa)
    • Opsional: tambahkan pengguna biasa (dapat dilewati)
    • Klik Next
  4. Windows Service

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

    • Klik Execute untuk menerapkan konfigurasi
    • Semua langkah akan menampilkan centang hijau jika berhasil
    • Klik Finish

1.4 Selesaikan Instalasi

  1. Terus klik Next hingga muncul Finish
  2. Centang Start MySQL Workbench after Setup (opsional)
  3. Klik Finish untuk keluar dari wizard instalasi

1.5 Verifikasi Instalasi

Metode 1: Uji dengan command line

  1. Tekan Win + R, ketik cmd lalu Enter
  2. Ketik:
    mysql -u root -p
  3. Masukkan kata sandi root yang telah Anda atur
  4. Munculnya prompt mysql> menandakan keberhasilan

Metode 2: Periksa layanan

  1. Tekan Win + R, ketik services.msc
  2. Temukan MySQL80, statusnya harus "Berjalan"

1.6 Pengaturan awal yang umum (opsional)

Setelah terhubung ke MySQL, jalankan:

-- Tampilkan basis data
show databases;

-- Buat basis data baru
create database mydb;

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

Masalah Umum

MasalahSolusi
Port 3306 sedang digunakanGanti port saat instalasi (misal 3307)
Lupa kata sandi rootPerlu memulai MySQL tanpa tabel hak istimewa (prosedur rumit)
Tidak dapat memulai layananPeriksa apakah port sedang digunakan atau lihat log event Windows

Apakah Anda perlu bantuan dengan masalah spesifik yang ditemui selama instalasi?

Langkah 2 myems-api

  • Instal layanan myems-api:
# 1. Buka jendela CMD baru sebagai administrator

# 2. Atur variabel lingkungan
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

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

# 4. Instal ulang semua paket
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

Buat file .env dari example.env dan edit sesuai kebutuhan:

copy .\example.env .env
Buka dan edit dengan editor teks: C:\myems\myems-api\.env
Ubah informasi koneksi basis data

Instal layanan Windows:

cmd

# 1. Hapus sepenuhnya layanan lama
sc delete MyEMSAPI

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

# 3. Unduh WinSW (jika belum diunduh)
https://github.com/winsw/winsw/releases
Ubah nama WinSW-x64.exe menjadi MyEMSAPI.exe

cd C:\myems\myems-api

# 4. Buat file konfigurasi
Buat `C:\myems\myems-api\MyEMSAPI.xml` (dengan notepad atau perintah berikut):
notepad C:\myems\myems-api\MyEMSAPI.xml
Salin konten 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. Instal layanan
MyEMSAPI.exe install

# 6. Mulai layanan
MyEMSAPI.exe start

# 7. Periksa status
MyEMSAPI.exe status

# 8. Uji layanan
curl http://localhost:8000

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

Langkah 3 myems-admin

Mulai layanan 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

Di bagian 'http', tambahkan beberapa direktif:

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 direktif berikut; jika layanan myems-api berjalan di server lain, ganti alamat default http://127.0.0.1:8000/ dengan alamat sebenarnya.

  server {
listen 8001;
server_name myems-admin;
location / {
root C:\myems-admin;
index index.html index.htm;
}
## Untuk menghindari masalah CORS, gunakan Nginx sebagai proxy untuk myems-api ke path /api
## Tambahkan location /api lain di 'server'
## Ganti URL default myems-api http://127.0.0.1:8000/ dengan URL sebenarnya jika layanan myems-api dihosting di server yang berbeda
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
  • Instal myems-admin: Jika server tidak dapat terhubung ke internet, kompres folder myems/myems-admin dan unggah ke server,
  • Kemudian ekstrak ke c:\myems-admin

Periksa file konfigurasi dan ubah jika perlu:

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

Folder "upload" digunakan untuk file yang diunggah pengguna. Saat meningkatkan myems-admin, jangan hapus/pindahkan/timpa folder "upload".

  C:\myems-admin\upload

Mulai ulang layanan 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 menginstal layanan myems-modbus-tcp.

```bash
cd C:\myems\myems-modbus-tcp
# 1. Buka jendela CMD baru sebagai administrator

# 2. Atur variabel lingkungan
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

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

# 4. Instal ulang semua paket
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Buat file .env dari example.env dan edit sesuai kebutuhan:

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

Instal layanan Windows:

# 1. Hapus sepenuhnya layanan lama
sc delete MyEMSModbusTCP

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

# 3. Unduh WinSW (jika belum diunduh)
https://github.com/winsw/winsw/releases
Ubah nama WinSW-x64.exe menjadi MyEMSModbusTCP.exe

cd C:\myems\myems-modbus-tcp

# 4. Buat file konfigurasi
Buat `C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml` (dengan notepad atau perintah berikut):
notepad C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml
Salin konten 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. Instal layanan
MyEMSModbusTCP.exe install

# 6. Mulai layanan
MyEMSModbusTCP.exe start

# 7. Periksa status
MyEMSModbusTCP.exe status

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

Jika eksekusi MyEMSModbusTCP.exe install dan MyEMSModbusTCP.exe start berhasil tetapi MyEMSModbusTCP.exe status masih menunjukkan "Stopped", kemungkinan VC++ redistributable belum terinstal. Alamat unduh VC++: https://learn.microsoft.com/zh-cn/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 menginstal layanan myems-cleaning.

cd C:\myems\myems-cleaning
# 1. Buka jendela CMD baru sebagai administrator

# 2. Atur variabel lingkungan
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

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

# 4. Instal ulang semua paket
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Buat file .env dari example.env dan edit sesuai kebutuhan:

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

Instal layanan Windows:

# 1. Hapus sepenuhnya layanan lama
sc delete MyEMSCleaning

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

# 3. Unduh WinSW (jika belum diunduh)
https://github.com/winsw/winsw/releases
Ubah nama WinSW-x64.exe menjadi MyEMSCleaning.exe

cd C:\myems\myems-cleaning

# 4. Buat file konfigurasi
Buat `C:\myems\myems-cleaning\MyEMSCleaning.xml` (dengan notepad atau perintah berikut):
notepad C:\myems\myems-cleaning\MyEMSCleaning.xml
Salin konten 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. Instal layanan
MyEMSCleaning.exe install

# 6. Mulai layanan
MyEMSCleaning.exe start

# 7. Periksa status
MyEMSCleaning.exe status

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

Langkah 6 myems-normalization

Dalam langkah ini, Anda akan menginstal layanan myems-normalization.

cd C:\myems\myems-normalization
# 1. Buka jendela CMD baru sebagai administrator

# 2. Atur variabel lingkungan
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

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

# 4. Instal ulang semua paket
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Buat file .env dari example.env dan edit sesuai kebutuhan:

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

Instal layanan Windows:

# 1. Hapus sepenuhnya layanan lama
sc delete MyEMSNormalization

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

# 3. Unduh WinSW (jika belum diunduh)
https://github.com/winsw/winsw/releases
Ubah nama WinSW-x64.exe menjadi MyEMSNormalization.exe

cd C:\myems\myems-normalization

# 4. Buat file konfigurasi
Buat `C:\myems\myems-normalization\MyEMSNormalization.xml` (dengan notepad atau perintah berikut):
notepad C:\myems\myems-normalization\MyEMSNormalization.xml
Salin konten 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. Instal layanan
MyEMSNormalization.exe install

# 6. Mulai layanan
MyEMSNormalization.exe start

# 7. Periksa status
MyEMSNormalization.exe status

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

Langkah 7 myems-aggregation

Dalam langkah ini, Anda akan menginstal layanan myems-aggregation.

cd C:\myems\myems-aggregation
# 1. Buka jendela CMD baru sebagai administrator

# 2. Atur variabel lingkungan
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1

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

# 4. Instal ulang semua paket
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt

Buat file .env dari example.env dan edit sesuai kebutuhan:

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

Instal layanan Windows:

# 1. Hapus sepenuhnya layanan lama
sc delete MyEMSAggregation

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

# 3. Unduh WinSW (jika belum diunduh)
https://github.com/winsw/winsw/releases
Ubah nama WinSW-x64.exe menjadi MyEMSAggregation.exe

cd C:\myems\myems-aggregation

# 4. Buat file konfigurasi
Buat `C:\myems\myems-aggregation\MyEMSAggregation.xml` (dengan notepad atau perintah berikut):
notepad C:\myems\myems-aggregation\MyEMSAggregation.xml
Salin konten 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. Instal layanan
MyEMSAggregation.exe install

# 6. Mulai layanan
MyEMSAggregation.exe start

# 7. Periksa status
MyEMSAggregation.exe status

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

Langkah 8 myems-web

Dalam langkah ini, Anda akan menginstal layanan myems-web.

Mulai layanan nginx:

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

Gunakan direktif berikut; jika layanan myems-api dihosting di server yang berbeda, ganti URL default myems-api http://127.0.0.1:8000/ dengan URL sebenarnya.

server {
listen 80;
server_name myems-web;
location / {
root C:\myems-web\build;
index index.html index.htm;
# tambahkan direktif try_files untuk menghindari error 404 saat me-refresh halaman
try_files $uri /index.html;
}
## Untuk menghindari masalah CORS, gunakan Nginx sebagai proxy untuk myems-api ke path /api
## Tambahkan location /api lain di 'server'
## Ganti URL default myems-api http://127.0.0.1:8000/ dengan URL sebenarnya jika layanan myems-api dihosting di server yang berbeda
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}

Mulai ulang Nginx

cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
  • Instal Antarmuka Web MyEMS:

Instal NodeJS: https://nodejs.org/zh-cn Persyaratan versi:

  • Node.js 22.22.2, 24.5.0 atau lebih baru
  • npm 10.9.7, 11.5.1 atau lebih baru
Contoh: C:\Program Files\nodejs
Persyaratan versi:
- Node.js 22.22.2, 24.5.0 atau lebih baru
- npm 10.9.7, 11.5.1 atau lebih baru
Konfigurasi variabel lingkungan

Ubah file konfigurasi:

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

Kompilasi:

npm i
npm run build
Direktori build akan dibuat di C:\myems\myems-web
mkdir C:\myems-web
move "C:\myems\myems-web\build" "C:\myems-web"

Jika kompilasi gagal dengan error timeout:

npm error code EIDLETIMEOUT
npm error Idle timeout reached for host `registry.npmjs.org:443`
npm error A complete log of this run can be found in

Jalankan perintah berikut untuk beralih ke mirror domestik:

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

Setelah Instalasi

Selamat! Anda sekarang dapat masuk ke MyEMS Admin UI dan Web UI.

Port Default

MyEMS Web UI: 80

MyEMS API: 8000

MyEMS Admin UI: 8001

Asumsikan alamat server adalah 192.168.1.8 (ganti dengan alamat server sebenarnya) Alamat MyEMS Web UI adalah http://192.168.1.8 (80 dapat diabaikan) Alamat MyEMS Admin UI adalah http://192.168.1.8:8001

Kata Sandi Default

MyEMS Admin UI

Nama pengguna:

administrator

Kata sandi:

!MyEMS1

MyEMS Web UI

Nama pengguna:

administrator

Kata sandi:

!MyEMS1