Windows 10 / 11 / Server
In dieser Anleitung erfahren Sie, wie Sie MyEMS auf Windows 10, Windows 11 und Windows Server bereitstellen.
Voraussetzungen
Diese Anleitung beschreibt die Installation von MyEMS auf Windows 10, Windows 11 und Windows Server 2022. Die Hardwareanforderungen hängen von der gewählten Datenbank und der Anzahl der an das System angeschlossenen Geräte ab. Für die Ausführung von MyEMS, MySQL und einer der Python-Versionen 3.10, 3.11 oder 3.12 auf einem einzigen Computer sind mindestens 8 GB RAM erforderlich.
Quellcode klonen:
Windows PowerShell als Administrator ausführen
cd C:\
git clone https://gitee.com/myems/myems
Python 3.10 installieren:
https://www.python.org/downloads/windows/
Python 3.10.11 64-Bit Installer für 64-Bit-Systeme herunterladen
Windows Installer (64-Bit) herunterladen
Python-Installer ausführen
Doppelklick: python-3.10.11-amd64.exe
„Add Python to PATH“ aktivieren und „Customize installation“ klicken
Sicherstellen, dass alle Optionen (insbesondere pip für spätere Bibliotheksinstallationen) ausgewählt sind; „Next“ klicken
Erste Option auswählen, Python-Installationspfad ändern und „Install“ klicken
Hinweis: Standardpfad ist C:\Program Files\Python310; ändern Sie ihn in C:\Python310
Nach abgeschlossener Installation „Close“ klicken
In der Eingabeaufforderung „python“ eingeben und Enter drücken – wird die Version angezeigt, war die Installation erfolgreich
Schritt 1 Datenbank
Siehe Datenbank
Im Folgenden finden Sie detaillierte Schritte zum Herunterladen und Installieren der MySQL-Datenbank (z. B. MySQL 8.0 Community-Version, kostenlos).
1.1 MySQL-Installer herunterladen
- Offizielle Seite öffnen: https://dev.mysql.com/downloads/mysql/
- Plattform Windows auswählen; es stehen zwei Optionen zur Verfügung:
- mysql-installer-web-community (Online-Installation, kleine Dateigröße)
- mysql-installer-community (vollständiges Offline-Paket, empfohlen)
- Download klicken; bei Anmeldeaufforderung überspringen (No thanks, just start my download)
1.2 MySQL installieren
- Heruntergeladenen Installer doppelklicken (erfordert ggf. Administratorrechte)
- Installationstyp auswählen (empfohlen Developer Default oder Custom)
- Developer Default: Installiert MySQL Server, Workbench, Shell und weitere gängige Tools
- Custom: Anpassen der Installationskomponenten
- „Next“ klicken; der Installer prüft automatisch Abhängigkeiten und lädt fehlende Komponenten herunter
- Execute klicken, um die Installation zu starten; nach Abschluss „Next“ klicken
1.3 MySQL Server konfigurieren
-
Type and Networking
- Config Type: Development Computer auswählen
- Port: Standard 3306 (keine Änderung erforderlich)
- „Next“ klicken
-
Authentication Method
- Empfohlen: Use Strong Password Encryption (neues Verschlüsselungsverfahren) auswählen
- Oder zweite Option (Kompatibilität mit älteren Versionen) wählen
- „Next“ klicken
-
Accounts and Roles
- Root-Passwort festlegen (unbedingt merken)
- Option zum Hinzufügen eines Standardbenutzers (kann übersprungen werden)
- „Next“ klicken
-
Windows Service
- Configure MySQL Server as a Windows Service aktivieren
- Dienstname: MySQL80 (Standard)
- Start the MySQL Server at System Startup aktivieren
- „Next“ klicken
-
Apply Configuration
- Execute klicken, um die Konfiguration anzuwenden
- Alle Schritte mit grünem Häkchen bedeuten Erfolg
- Finish klicken
1.4 Installation abschließen
- Weiter „Next“ klicken, bis Finish angezeigt wird
- Start MySQL Workbench after Setup aktivieren (optional)
- Finish klicken, um den Installationsassistenten zu schließen
1.5 Installation prüfen
Methode 1: Eingabeaufforderungstest
Win + Rdrücken,cmdeingeben und Enter drücken- Eingeben:
mysql -u root -p - Festgelegtes Root-Passwort eingeben
- Erscheint die Eingabeaufforderung
mysql>, war der Vorgang erfolgreich
Methode 2: Dienstprüfung
Win + Rdrücken,services.msceingebenMySQL80suchen; Status muss „Wird ausgeführt“ sein
1.6 Grundlegende Ersteinstellungen (optional)
Nach Anmeldung bei MySQL ausführen:
-- Datenbanken anzeigen
show databases;
-- Neue Datenbank erstellen
create database mydb;
-- Benutzer für Remote-Zugriff erstellen (optional)
create user 'myems'@'%' identified by 'Passwort';
grant all privileges on *.* to 'myems'@'%';
flush privileges;
Häufige Probleme
| Problem | Lösung |
|---|---|
| Port 3306 belegt | Port während der Installation ändern (z. B. 3307) |
| Root-Passwort vergessen | MySQL muss ohne Berechtigungstabelle gestartet werden; komplexer Vorgang |
| Dienststart fehlgeschlagen | Portbelegung prüfen oder Windows-Ereignisprotokoll einsehen |
Schritt 2 myems-api
myems-api-Dienst installieren:
# 1. Neue CMD als Administrator öffnen
# 2. Umgebungsvariablen festlegen
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Zum Projektverzeichnis wechseln
cd C:\myems\myems-api
# 4. Alle Pakete neu installieren
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
.env-Datei basierend auf example.env erstellen und nach Bedarf bearbeiten:
copy .\example.env .env
C:\myems\myems-api\.env mit Texteditor öffnen und bearbeiten
Datenbankinformationen ändern
Als Windows-Dienst installieren (CMD als Administrator ausführen):
# 1. Alten Dienst vollständig löschen
sc delete MyEMSAPI
# 2. Log-Verzeichnis erstellen
mkdir C:\myems\myems-api\logs 2>nul
# 3. WinSW herunterladen (falls noch nicht geschehen)
https://github.com/winsw/winsw/releases
WinSW-x64.exe in MyEMSAPI.exe umbenennen
cd C:\myems\myems-api
# 4. Konfigurationsdatei erstellen
`C:\myems\myems-api\MyEMSAPI.xml` erstellen (Notepad oder folgender Befehl):
notepad C:\myems\myems-api\MyEMSAPI.xml
Folgenden Inhalt in Notepad einfügen:
<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>
Speichern und Notepad schließen.
# 5. Dienst installieren
MyEMSAPI.exe install
# 6. Dienst starten
MyEMSAPI.exe start
# 7. Status prüfen
MyEMSAPI.exe status
# 8. Dienst testen
curl http://localhost:8000
# 9. Bei Fehlern Logs prüfen
C:\myems\myems-api\logs
Schritt 3 myems-admin
NGINX-Server installieren: https://nginx.org/en/download.html
NGINX-Dienst im Hintergrund starten:
start /b nginx.exe
NGINX konfigurieren:
cd C:\Program Files\nginx-1.29.1\conf
nginx.conf mit Texteditor öffnen und bearbeiten
Im Abschnitt „http“ folgende Anweisungen hinzufügen:
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;
...
}
Folgende Anweisungen eingeben; falls myems-api auf einem anderen Server läuft, Standardadresse http://127.0.0.1:8000/ durch tatsächliche Adresse ersetzen:
server {
listen 8001;
server_name myems-admin;
location / {
root C:\myems-admin;
index index.html index.htm;
}
## Vermeidung von CORS-Problemen: Nginx als Proxy für myems-api unter /api verwenden
## Weitere location /api innerhalb von „server“ hinzufügen
## Standard-URL http://127.0.0.1:8000/ ersetzen, falls myems-api auf anderem Server läuft
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
myems-admin installieren: Falls der Server keine Internetverbindung hat, myems/myems-admin-Ordner komprimieren, auf den Server hochladen und nach c:\myems-admin entpacken.
Konfigurationsdatei prüfen und ggf. ändern:
c:\myems-admin\app\api.js
Der „upload“-Ordner ist für benutzerhochgeladene Dateien vorgesehen. Bei Updates von myems-admin den „upload“-Ordner nicht löschen/verschreiben/überschreiben.
C:\myems-admin\upload
NGINX-Dienst neu starten:
cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
Schritt 4 myems-modbus-tcp
In diesem Schritt installieren Sie den myems-modbus-tcp-Dienst.
cd C:\myems\myems-modbus-tcp
# 1. Neue CMD als Administrator öffnen
# 2. Umgebungsvariablen festlegen
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Zum Projektverzeichnis wechseln
cd C:\myems\myems-modbus-tcp
# 4. Alle Pakete neu installieren
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
.env-Datei basierend auf example.env erstellen und nach Bedarf bearbeiten:
copy .\example.env .env
C:\myems\myems-modbus-tcp\.env mit Texteditor öffnen und bearbeiten
Als Windows-Dienst installieren:
# 1. Alten Dienst vollständig löschen
sc delete MyEMSModbusTCP
# 2. Log-Verzeichnis erstellen
mkdir C:\myems\myems-modbus-tcp\logs 2>nul
# 3. WinSW herunterladen (falls noch nicht geschehen)
https://github.com/winsw/winsw/releases
WinSW-x64.exe in MyEMSModbusTCP.exe umbenennen
cd C:\myems\myems-modbus-tcp
# 4. Konfigurationsdatei erstellen
`C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml` erstellen (Notepad oder folgender Befehl):
notepad C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml
Folgenden Inhalt in Notepad einfügen:
<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>
Speichern und Notepad schließen.
# 5. Dienst installieren
MyEMSModbusTCP.exe install
# 6. Dienst starten
MyEMSModbusTCP.exe start
# 7. Status prüfen
MyEMSModbusTCP.exe status
# 8. Bei Fehlern Logs prüfen
C:\myems\myems-modbus-tcp\logs
Falls MyEMSModbusTCP.exe install und start erfolgreich sind, aber status „Stopped“ anzeigt, fehlt ggf. die VC++-Bibliothek. VC++-Download: https://learn.microsoft.com/de-de/cpp/windows/latest-supported-vc-redist?view=msvc-170
Schritt 5 myems-cleaning
In diesem Schritt installieren Sie den myems-cleaning-Dienst.
cd C:\myems\myems-cleaning
# 1. Neue CMD als Administrator öffnen
# 2. Umgebungsvariablen festlegen
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Zum Projektverzeichnis wechseln
cd C:\myems\myems-cleaning
# 4. Alle Pakete neu installieren
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
.env-Datei basierend auf example.env erstellen und nach Bedarf bearbeiten:
copy C:\myems\myems-cleaning\example.env .env
C:\myems\myems-cleaning\.env mit Texteditor öffnen und bearbeiten
Als Windows-Dienst installieren:
# 1. Alten Dienst vollständig löschen
sc delete MyEMSCleaning
# 2. Log-Verzeichnis erstellen
mkdir C:\myems\myems-cleaning\logs 2>nul
# 3. WinSW herunterladen (falls noch nicht geschehen)
https://github.com/winsw/winsw/releases
WinSW-x64.exe in MyEMSCleaning.exe umbenennen
cd C:\myems\myems-cleaning
# 4. Konfigurationsdatei erstellen
`C:\myems\myems-cleaning\MyEMSCleaning.xml` erstellen (Notepad oder folgender Befehl):
notepad C:\myems\myems-cleaning\MyEMSCleaning.xml
Folgenden Inhalt in Notepad einfügen:
<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>
Speichern und Notepad schließen.
# 5. Dienst installieren
MyEMSCleaning.exe install
# 6. Dienst starten
MyEMSCleaning.exe start
# 7. Status prüfen
MyEMSCleaning.exe status
# 8. Bei Fehlern Logs prüfen
C:\myems\myems-cleaning\logs
Schritt 6 myems-normalization
In diesem Schritt installieren Sie den myems-normalization-Dienst.
cd C:\myems\myems-normalization
# 1. Neue CMD als Administrator öffnen
# 2. Umgebungsvariablen festlegen
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Zum Projektverzeichnis wechseln
cd C:\myems\myems-normalization
# 4. Alle Pakete neu installieren
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
.env-Datei basierend auf example.env erstellen und nach Bedarf bearbeiten:
copy C:\myems\myems-normalization\example.env .env
C:\myems\myems-normalization\.env mit Texteditor öffnen und bearbeiten
Als Windows-Dienst installieren:
# 1. Alten Dienst vollständig löschen
sc delete MyEMSNormalization
# 2. Log-Verzeichnis erstellen
mkdir C:\myems\myems-normalization\logs 2>nul
# 3. WinSW herunterladen (falls noch nicht geschehen)
https://github.com/winsw/winsw/releases
WinSW-x64.exe in MyEMSNormalization.exe umbenennen
cd C:\myems\myems-normalization
# 4. Konfigurationsdatei erstellen
`C:\myems\myems-normalization\MyEMSNormalization.xml` erstellen (Notepad oder folgender Befehl):
notepad C:\myems\myems-normalization\MyEMSNormalization.xml
Folgenden Inhalt in Notepad einfügen:
<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>
Speichern und Notepad schließen.
# 5. Dienst installieren
MyEMSNormalization.exe install
# 6. Dienst starten
MyEMSNormalization.exe start
# 7. Status prüfen
MyEMSNormalization.exe status
# 8. Bei Fehlern Logs prüfen
C:\myems\myems-normalization\logs
Schritt 7 myems-aggregation
In diesem Schritt installieren Sie den myems-aggregation-Dienst.
cd C:\myems\myems-aggregation
# 1. Neue CMD als Administrator öffnen
# 2. Umgebungsvariablen festlegen
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Zum Projektverzeichnis wechseln
cd C:\myems\myems-aggregation
# 4. Alle Pakete neu installieren
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
.env-Datei basierend auf example.env erstellen und nach Bedarf bearbeiten:
copy C:\myems\myems-aggregation\example.env .env
C:\myems\myems-aggregation\.env mit Texteditor öffnen und bearbeiten
Als Windows-Dienst installieren:
# 1. Alten Dienst vollständig löschen
sc delete MyEMSAggregation
# 2. Log-Verzeichnis erstellen
mkdir C:\myems\myems-aggregation\logs 2>nul
# 3. WinSW herunterladen (falls noch nicht geschehen)
https://github.com/winsw/winsw/releases
WinSW-x64.exe in MyEMSAggregation.exe umbenennen
cd C:\myems\myems-aggregation
# 4. Konfigurationsdatei erstellen
`C:\myems\myems-aggregation\MyEMSAggregation.xml` erstellen (Notepad oder folgender Befehl):
notepad C:\myems\myems-aggregation\MyEMSAggregation.xml
Folgenden Inhalt in Notepad einfügen:
<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>
Speichern und Notepad schließen.
# 5. Dienst installieren
MyEMSAggregation.exe install
# 6. Dienst starten
MyEMSAggregation.exe start
# 7. Status prüfen
MyEMSAggregation.exe status
# 8. Bei Fehlern Logs prüfen
C:\myems\myems-aggregation\logs
Schritt 8 myems-web
In diesem Schritt installieren Sie den myems-web-Dienst.
NGINX-Dienst starten:
start /b nginx.exe
NGINX konfigurieren:
cd C:\Program Files\nginx-1.29.1\conf
nginx.conf mit Texteditor öffnen und bearbeiten
Folgende Anweisungen eingeben; falls myems-api auf einem anderen Server läuft, Standardadresse http://127.0.0.1:8000/ durch tatsächliche Adresse ersetzen:
server {
listen 80;
server_name myems-web;
location / {
root C:\myems-web\build;
index index.html index.htm;
# try_files-Anweisung hinzufügen, um 404-Fehler bei Seitenaktualisierung zu vermeiden
try_files $uri /index.html;
}
## Vermeidung von CORS-Problemen: Nginx als Proxy für myems-api unter /api verwenden
## Weitere location /api innerhalb von „server“ hinzufügen
## Standard-URL http://127.0.0.1:8000/ ersetzen, falls myems-api auf anderem Server läuft
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
NGINX neu starten:
cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
MyEMS-Weboberfläche installieren:
NodeJS installieren: https://nodejs.org/de Versionsanforderungen:
- Node.js 22.22.2, 24.5.0 oder neuer
- npm 10.9.7, 11.5.1 oder neuer
Beispiel: C:\Program Files\nodejs
Umgebungsvariablen konfigurieren
Konfigurationsdatei bearbeiten:
cd C:\myems\myems-web
src/config.js mit Texteditor öffnen und bearbeiten
Projekt erstellen:
npm i
npm run build
Der build-Ordner wird in C:\myems\myems-web erstellt
mkdir C:\myems-web
move "C:\myems\myems-web\build" "C:\myems-web"
Falls der Build fehlschlägt und ein Timeout-Fehler wie folgt auftritt:
npm error code EIDLETIMEOUT
npm error Idle timeout reached for host `registry.npmjs.org:443`Führen Sie folgenden Befehl aus, um zur chinesischen Mirror-Quelle zu wechseln:
npm config set registry https://registry.npmmirror.com/
Installation abgeschlossen
Glückwunsch! Sie können sich jetzt bei der MyEMS-Verwaltungsoberfläche und der MyEMS-Weboberfläche anmelden.
Standardports
MyEMS-Weboberfläche: 80
MyEMS-API: 8000
MyEMS-Verwaltungsoberfläche: 8001
Angenommen, die Serveradresse lautet 192.168.1.8 (durch tatsächliche Serveradresse ersetzen) Zugriffsadresse der MyEMS-Weboberfläche: http://192.168.1.8 (Port 80 kann weggelassen werden) Zugriffsadresse der MyEMS-Verwaltungsoberfläche: http://192.168.1.8:8001
Standardpasswörter
MyEMS-Verwaltungsoberfläche
Benutzername:
administrator
Passwort:
!MyEMS1
MyEMS-Weboberfläche
Benutzername:
administrator
Passwort:
!MyEMS1