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
- Buka situs resmi: https://dev.mysql.com/downloads/mysql/
- Pilih platform Windows, biasanya ada dua opsi:
- mysql-installer-web-community (instalasi online, ukuran kecil)
- mysql-installer-community (program lengkap offline, direkomendasikan)
- Klik Download, jika diminta login, pilih "No thanks, just start my download"
1.2 Instal MySQL
- Klik dua kali untuk menjalankan installer yang diunduh (perlu hak administrator)
- Pilih tipe instalasi (direkomendasikan: Developer Default atau Custom)
- Developer Default: menginstal MySQL Server, Workbench, Shell, dan alat umum lainnya
- Custom: dapat menyesuaikan komponen
- Klik Next; installer akan memeriksa dependensi secara otomatis dan mengunduh komponen yang hilang
- Klik Execute untuk memulai instalasi, klik Next setelah selesai
1.3 Konfigurasi MySQL Server
-
Type and Networking
- Config Type: pilih Development Computer
- Port: default 3306 (dapat diubah)
- Klik Next
-
Authentication Method
- Direkomendasikan: pilih Use Strong Password Encryption (enkripsi lebih baru)
- Atau pilih opsi kedua (kompatibilitas dengan versi lama)
- Klik Next
-
Accounts and Roles
- Atur kata sandi root (jangan lupa)
- Opsional: tambahkan pengguna biasa (dapat dilewati)
- Klik Next
-
Windows Service
- Centang Configure MySQL Server as a Windows Service
- Service Name: MySQL80 (default)
- Centang Start the MySQL Server at System Startup
- Klik Next
-
Apply Configuration
- Klik Execute untuk menerapkan konfigurasi
- Semua langkah akan menampilkan centang hijau jika berhasil
- Klik Finish
1.4 Selesaikan Instalasi
- Terus klik Next hingga muncul Finish
- Centang Start MySQL Workbench after Setup (opsional)
- Klik Finish untuk keluar dari wizard instalasi
1.5 Verifikasi Instalasi
Metode 1: Uji dengan command line
- Tekan
Win + R, ketikcmdlalu Enter - Ketik:
mysql -u root -p - Masukkan kata sandi root yang telah Anda atur
- Munculnya prompt
mysql>menandakan keberhasilan
Metode 2: Periksa layanan
- Tekan
Win + R, ketikservices.msc - 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
| Masalah | Solusi |
|---|---|
| Port 3306 sedang digunakan | Ganti port saat instalasi (misal 3307) |
| Lupa kata sandi root | Perlu memulai MySQL tanpa tabel hak istimewa (prosedur rumit) |
| Tidak dapat memulai layanan | Periksa 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
- Instal server NGINX: https://nginx.org/en/download.html
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 installdanMyEMSModbusTCP.exe startberhasil tetapiMyEMSModbusTCP.exe statusmasih 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 inJalankan 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