Windows 10 / 11 / Server
W tym przewodniku wdrożysz MyEMS na serwerach Windows 10, Windows 11 i Windows Server.
Wymagania wstępne
Ten przewodnik wyjaśnia, jak zainstalować MyEMS na Windows 10, Windows 11 i Windows Server 2022. Wymagania sprzętowe zależą od wybranej bazy danych i liczby urządzeń podłączonych do systemu. Do uruchomienia MyEMS, MySQL i dowolnej wersji Pythona 3.10, 3.11 lub 3.12 na jednym komputerze wymagane jest co najmniej 8 GB pamięci RAM.
Sklonuj kod źródłowy:
Uruchom Windows PowerShell jako Administrator
cd C:\
git clone https://gitee.com/myems/myems
Zainstaluj Pythona 3.10:
https://www.python.org/downloads/windows/
Pakiet instalacyjny Pythona w wersji 3.10.11 64-bit dla systemów 64-bit
Pobierz instalator Windows (64-bit)
Uruchom pakiet instalacyjny Pythona
Kliknij dwukrotnie: python-3.10.11-amd64.exe
Zaznacz „Add Python to PATH” i kliknij „Customize installation”
Upewnij się, że wszystkie opcje są zaznaczone, w szczególności pip, wymagane do zainstalowania bibliotek później; kliknij Next
Zaznacz pierwszą opcję, zmień ścieżkę instalacji Pythona, a następnie kliknij install
Uwaga: Domyślna ścieżka to C:\Program Files\Python310. Zmień ją na C:\Python310
Po zakończeniu instalacji kliknij close
W wierszu poleceń wpisz python, naciśnij Enter – jeśli wyświetli się wersja Pythona, instalacja zakończyła się powodzeniem
Krok 1 Baza danych
Zobacz Baza danych
Poniżej znajdują się szczegółowe kroki pobrania i zainstalowania bazy danych MySQL (np. MySQL 8.0, wersja Community, darmowa).
1.1 Pobranie pakietu instalacyjnego MySQL
- Otwórz oficjalną stronę: https://dev.mysql.com/downloads/mysql/
- Wybierz platformę Windows, zazwyczaj dostępne są dwie opcje:
- mysql-installer-web-community (instalacja online, mały rozmiar)
- mysql-installer-community (pełny pakiet offline, zalecany)
- Kliknij Download, jeśli wymagane jest logowanie, możesz pominąć (No thanks, just start my download)
1.2 Instalacja MySQL
- Kliknij dwukrotnie, aby uruchomić pobrany instalator (może wymagać uprawnień administratora)
- Wybierz typ instalacji (zalecane Developer Default lub Custom)
- Developer Default: Instaluje MySQL Server, Workbench, Shell i inne popularne narzędzia
- Custom: Dostosowuje składniki instalacji
- Kliknij Next, instalator automatycznie sprawdzi zależności i pobierze brakujące składniki
- Kliknij Execute, aby rozpocząć instalację, po zakończeniu kliknij Next
1.3 Konfiguracja MySQL Server
-
Type and Networking
- Config Type: Wybierz Development Computer
- Port: Domyślny 3306 (nie trzeba zmieniać)
- Kliknij Next
-
Authentication Method
- Zalecane jest wybranie Use Strong Password Encryption (nowe szyfrowanie)
- Lub wybierz drugą opcję (kompatybilność ze starszymi wersjami)
- Kliknij Next
-
Accounts and Roles
- Ustaw hasło root (zapamiętaj je dokładnie)
- Opcja dodania zwykłego użytkownika (możesz pominąć)
- Kliknij Next
-
Windows Service
- Zaznacz Configure MySQL Server as a Windows Service
- Nazwa usługi: MySQL80 (domyślna)
- Zaznacz Start the MySQL Server at System Startup
- Kliknij Next
-
Apply Configuration
- Kliknij Execute, aby zastosować konfigurację
- Wszystkie kroki z zielonym znacznikiem oznaczają powodzenie
- Kliknij Finish
1.4 Zakończenie instalacji
- Kontynuuj klikanie Next, aż pojawi się Finish
- Zaznacz Start MySQL Workbench after Setup (opcjonalnie)
- Kliknij Finish, aby zamknąć kreator instalacji
1.5 Sprawdzenie instalacji
Metoda 1: Test wiersza poleceń
- Naciśnij
Win + R, wpiszcmd, naciśnij Enter - Wpisz:
mysql -u root -p - Wpisz ustawione hasło root
- Wyświetlenie zachęty
mysql>oznacza powodzenie
Metoda 2: Sprawdzenie usługi
- Naciśnij
Win + R, wpiszservices.msc - Znajdź
MySQL80, stan powinien być „Uruchomiona”
1.6 Podstawowe ustawienia początkowe (opcjonalnie)
Po zalogowaniu do MySQL uruchom:
-- Wyświetl bazy danych
show databases;
-- Utwórz nową bazę danych
create database mydb;
-- Utwórz użytkownika do zdalnego dostępu (opcjonalnie)
create user 'myems'@'%' identified by 'hasło';
grant all privileges on *.* to 'myems'@'%';
flush privileges;
Częste problemy
| Problem | Rozwiązanie |
|---|---|
| Port 3306 jest zajęty | Zmień port na inny podczas instalacji (np. 3307) |
| Zapomniane hasło root | Konieczne jest uruchomienie MySQL z pominięciem tabeli uprawnień, dość skomplikowana procedura |
| Nie można uruchomić usługi | Sprawdź zajętość portu lub przejrzyj Dziennik zdarzeń Windows |
Krok 2 myems-api
Zainstaluj usługę myems-api:
# 1. Otwórz nowe okno CMD jako Administrator
# 2. Ustaw zmienne środowiskowe
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Przejdź do katalogu projektu
cd C:\myems\myems-api
# 4. Zainstaluj ponownie wszystkie pakiety
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
Utwórz plik .env na podstawie example.env i edytuj .env zgodnie z potrzebami:
copy .\example.env .env
Otwórz i edytuj C:\myems\myems-api\.env za pomocą edytora tekstu
Zmień dane bazy danych
Zainstaluj jako usługę Windows (uruchom CMD jako Administrator):
# 1. Całkowicie usuń starą usługę
sc delete MyEMSAPI
# 2. Utwórz katalog logów
mkdir C:\myems\myems-api\logs 2>nul
# 3. Pobierz WinSW (jeśli jeszcze nie pobrano)
https://github.com/winsw/winsw/releases
Zmień nazwę WinSW-x64.exe na MyEMSAPI.exe
cd C:\myems\myems-api
# 4. Utwórz plik konfiguracyjny
Utwórz `C:\myems\myems-api\MyEMSAPI.xml` (użyj notatnika lub poniższego polecenia):
notepad C:\myems\myems-api\MyEMSAPI.xml
Wklej poniższą zawartość do notatnika:
<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>
Zapisz i zamknij notatnik.
# 5. Zainstaluj usługę
MyEMSAPI.exe install
# 6. Uruchom usługę
MyEMSAPI.exe start
# 7. Sprawdź stan
MyEMSAPI.exe status
# 8. Testuj usługę
curl http://localhost:8000
# 9. W przypadku problemów sprawdź logi
C:\myems\myems-api\logs
Krok 3 myems-admin
Zainstaluj serwer NGINX: https://nginx.org/en/download.html
Uruchom usługę nginx w tle:
start /b nginx.exe
Konfiguracja NGINX:
cd C:\Program Files\nginx-1.29.1\conf
Otwórz i edytuj nginx.conf za pomocą edytora tekstu
W sekcji „http” dodaj kilka dyrektyw:
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;
...
}
Wpisz poniższe dyrektywy; jeśli usługa myems-api działa na innym serwerze, zamień domyślny adres http://127.0.0.1:8000/ na rzeczywisty adres
server {
listen 8001;
server_name myems-admin;
location / {
root C:\myems-admin;
index index.html index.htm;
}
## Aby uniknąć problemów CORS, użyj Nginx do przekierowania myems-api na ścieżkę /api
## Dodaj kolejną lokalizację /api w sekcji „server”
## Zamień domyślny adres URL myems-api http://127.0.0.1:8000/ na rzeczywisty adres URL, jeśli usługa myems-api jest hostowana na innym serwerze
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
Zainstaluj myems-admin: Jeśli serwer nie może połączyć się z internetem, spakuj folder myems/myems-admin i prześlij go na serwer, następnie rozpakuj do c:\myems-admin
Sprawdź plik konfiguracyjny, wprowadź zmiany w razie potrzeby:
c:\myems-admin\app\api.js
Folder „upload” przeznaczony jest dla plików przesyłanych przez użytkowników. Podczas aktualizacji myems-admin nie usuwaj/przenoś/nadpisuj folderu „upload”.
C:\myems-admin\upload
Uruchom ponownie usługę nginx:
cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
Krok 4 myems-modbus-tcp
W tym kroku zainstalujesz usługę myems-modbus-tcp.
cd C:\myems\myems-modbus-tcp
# 1. Otwórz nowe okno CMD jako Administrator
# 2. Ustaw zmienne środowiskowe
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Przejdź do katalogu projektu
cd C:\myems\myems-modbus-tcp
# 4. Zainstaluj ponownie wszystkie pakiety
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
Utwórz plik .env na podstawie example.env i edytuj .env zgodnie z potrzebami:
copy .\example.env .env
Otwórz i edytuj C:\myems\myems-modbus-tcp\.env za pomocą edytora tekstu
Zainstaluj jako usługę Windows:
# 1. Całkowicie usuń starą usługę
sc delete MyEMSModbusTCP
# 2. Utwórz katalog logów
mkdir C:\myems\myems-modbus-tcp\logs 2>nul
# 3. Pobierz WinSW (jeśli jeszcze nie pobrano)
https://github.com/winsw/winsw/releases
Zmień nazwę WinSW-x64.exe na MyEMSModbusTCP.exe
cd C:\myems\myems-modbus-tcp
# 4. Utwórz plik konfiguracyjny
Utwórz `C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml` (użyj notatnika lub poniższego polecenia):
notepad C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml
Wklej poniższą zawartość do notatnika:
<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>
Zapisz i zamknij notatnik.
# 5. Zainstaluj usługę
MyEMSModbusTCP.exe install
# 6. Uruchom usługę
MyEMSModbusTCP.exe start
# 7. Sprawdź stan
MyEMSModbusTCP.exe status
# 8. W przypadku problemów sprawdź logi
C:\myems\myems-modbus-tcp\logs
Jeśli MyEMSModbusTCP.exe install i MyEMSModbusTCP.exe start zostaną pomyślnie uruchomione, ale MyEMSModbusTCP.exe status nadal wyświetla Stopped, może brakować biblioteki vc++. Adres do pobrania vc++: https://learn.microsoft.com/pl-pl/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022
Krok 5 myems-cleaning
W tym kroku zainstalujesz usługę myems-cleaning.
cd C:\myems\myems-cleaning
# 1. Otwórz nowe okno CMD jako Administrator
# 2. Ustaw zmienne środowiskowe
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Przejdź do katalogu projektu
cd C:\myems\myems-cleaning
# 4. Zainstaluj ponownie wszystkie pakiety
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
Utwórz plik .env na podstawie example.env i edytuj .env zgodnie z potrzebami:
copy C:\myems\myems-cleaning\example.env .env
Otwórz i edytuj C:\myems\myems-cleaning\.env za pomocą edytora tekstu
Zainstaluj jako usługę Windows:
# 1. Całkowicie usuń starą usługę
sc delete MyEMSCleaning
# 2. Utwórz katalog logów
mkdir C:\myems\myems-cleaning\logs 2>nul
# 3. Pobierz WinSW (jeśli jeszcze nie pobrano)
https://github.com/winsw/winsw/releases
Zmień nazwę WinSW-x64.exe na MyEMSCleaning.exe
cd C:\myems\myems-cleaning
# 4. Utwórz plik konfiguracyjny
Utwórz `C:\myems\myems-cleaning\MyEMSCleaning.xml` (użyj notatnika lub poniższego polecenia):
notepad C:\myems\myems-cleaning\MyEMSCleaning.xml
Wklej poniższą zawartość do notatnika:
<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>
Zapisz i zamknij notatnik.
# 5. Zainstaluj usługę
MyEMSCleaning.exe install
# 6. Uruchom usługę
MyEMSCleaning.exe start
# 7. Sprawdź stan
MyEMSCleaning.exe status
# 8. W przypadku problemów sprawdź logi
C:\myems\myems-cleaning\logs
Krok 6 myems-normalization
W tym kroku zainstalujesz usługę myems-normalization.
cd C:\myems\myems-normalization
# 1. Otwórz nowe okno CMD jako Administrator
# 2. Ustaw zmienne środowiskowe
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Przejdź do katalogu projektu
cd C:\myems\myems-normalization
# 4. Zainstaluj ponownie wszystkie pakiety
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
Utwórz plik .env na podstawie example.env i edytuj .env zgodnie z potrzebami:
copy C:\myems\myems-normalization\example.env .env
Otwórz i edytuj C:\myems\myems-normalization\.env za pomocą edytora tekstu
Zainstaluj jako usługę Windows:
# 1. Całkowicie usuń starą usługę
sc delete MyEMSNormalization
# 2. Utwórz katalog logów
mkdir C:\myems\myems-normalization\logs 2>nul
# 3. Pobierz WinSW (jeśli jeszcze nie pobrano)
https://github.com/winsw/winsw/releases
Zmień nazwę WinSW-x64.exe na MyEMSNormalization.exe
cd C:\myems\myems-normalization
# 4. Utwórz plik konfiguracyjny
Utwórz `C:\myems\myems-normalization\MyEMSNormalization.xml` (użyj notatnika lub poniższego polecenia):
notepad C:\myems\myems-normalization\MyEMSNormalization.xml
Wklej poniższą zawartość do notatnika:
<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>
Zapisz i zamknij notatnik.
# 5. Zainstaluj usługę
MyEMSNormalization.exe install
# 6. Uruchom usługę
MyEMSNormalization.exe start
# 7. Sprawdź stan
MyEMSNormalization.exe status
# 8. W przypadku problemów sprawdź logi
C:\myems\myems-normalization\logs
Krok 7 myems-aggregation
W tym kroku zainstalujesz usługę myems-aggregation.
cd C:\myems\myems-aggregation
# 1. Otwórz nowe okno CMD jako Administrator
# 2. Ustaw zmienne środowiskowe
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Przejdź do katalogu projektu
cd C:\myems\myems-aggregation
# 4. Zainstaluj ponownie wszystkie pakiety
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
Utwórz plik .env na podstawie example.env i edytuj .env zgodnie z potrzebami:
copy C:\myems\myems-aggregation\example.env .env
Otwórz i edytuj C:\myems\myems-aggregation\.env za pomocą edytora tekstu
Zainstaluj jako usługę Windows:
# 1. Całkowicie usuń starą usługę
sc delete MyEMSAggregation
# 2. Utwórz katalog logów
mkdir C:\myems\myems-aggregation\logs 2>nul
# 3. Pobierz WinSW (jeśli jeszcze nie pobrano)
https://github.com/winsw/winsw/releases
Zmień nazwę WinSW-x64.exe na MyEMSAggregation.exe
cd C:\myems\myems-aggregation
# 4. Utwórz plik konfiguracyjny
Utwórz `C:\myems\myems-aggregation\MyEMSAggregation.xml` (użyj notatnika lub poniższego polecenia):
notepad C:\myems\myems-aggregation\MyEMSAggregation.xml
Wklej poniższą zawartość do notatnika:
<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>
Zapisz i zamknij notatnik.
# 5. Zainstaluj usługę
MyEMSAggregation.exe install
# 6. Uruchom usługę
MyEMSAggregation.exe start
# 7. Sprawdź stan
MyEMSAggregation.exe status
# 8. W przypadku problemów sprawdź logi
C:\myems\myems-aggregation\logs
Krok 8 myems-web
W tym kroku zainstalujesz usługę myems-web.
Uruchom usługę nginx:
start /b nginx.exe
Konfiguracja NGINX:
cd C:\Program Files\nginx-1.29.1\conf
Otwórz i edytuj nginx.conf za pomocą edytora tekstu
Wpisz poniższe dyrektywy; jeśli usługa myems-api jest hostowana na innym serwerze, zamień domyślny adres http://127.0.0.1:8000/ na rzeczywisty adres
server {
listen 80;
server_name myems-web;
location / {
root C:\myems-web\build;
index index.html index.htm;
# dodaj dyrektywę try_files, aby uniknąć błędu 404 podczas odświeżania strony
try_files $uri /index.html;
}
## Aby uniknąć problemów CORS, użyj Nginx do przekierowania myems-api na ścieżkę /api
## Dodaj kolejną lokalizację /api w sekcji „server”
## zamień domyślny adres URL myems-api http://127.0.0.1:8000/ na rzeczywisty adres URL, jeśli usługa myems-api jest hostowana na innym serwerze
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
Uruchom ponownie Nginx:
cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
Zainstaluj interfejs sieciowy MyEMS:
Zainstaluj NodeJS: https://nodejs.org/pl Wymagania wersji:
- Node.js 22.22.2, 24.5.0 lub nowsza
- npm 10.9.7, 11.5.1 lub nowsza
Przykład: C:\Program Files\nodejs
Konfiguruj zmienne środowiskowe
Edytuj plik konfiguracyjny:
cd C:\myems\myems-web
Otwórz i edytuj src/config.js za pomocą edytora tekstu
Zbuduj projekt:
npm i
npm run build
Folder build zostanie utworzony w C:\myems\myems-web
mkdir C:\myems-web
move "C:\myems\myems-web\build" "C:\myems-web"
Jeśli budowanie nie powiedzie się i pojawi się błąd limitu czasu, jak poniżej:
npm error code EIDLETIMEOUT
npm error Idle timeout reached for host `registry.npmjs.org:443`Uruchom poniższe polecenie, aby zmienić lokalne repozytorium lustrzane:
npm config set registry https://registry.npmmirror.com/
Po instalacji
Gratulacje! Możesz teraz zalogować się do interfejsu administracyjnego MyEMS i interfejsu sieciowego MyEMS.
Domyślne porty
Interfejs sieciowy MyEMS: 80
API MyEMS: 8000
Interfejs administracyjny MyEMS: 8001
Załóżmy, że adres serwera to 192.168.1.8 (zamień na rzeczywisty adres serwera) Adres dostępu do interfejsu sieciowego MyEMS: http://192.168.1.8 (port 80 można pominąć) Adres dostępu do interfejsu administracyjnego MyEMS: http://192.168.1.8:8001
Domyślne hasła
Interfejs administracyjny MyEMS
Nazwa użytkownika:
administrator
Hasło:
!MyEMS1
Interfejs sieciowy MyEMS
Nazwa użytkownika:
administrator
Hasło:
!MyEMS1