Windows 10 / 11 / Server
Dans ce guide, vous allez déployer MyEMS sur un serveur Windows 10 / 11 / Server.
Prérequis
Ce guide explique comment installer MyEMS sur Windows 10, Windows 11 et Windows Server (2022). Les besoins matériels dépendent de la base de données choisie et du nombre d’équipements connectés au système. Pour exécuter MyEMS, MySQL et Python 3.10, 3.11 ou 3.12 sur un seul ordinateur, vous avez besoin d’au moins 8 Go de mémoire vive.
Cloner le code source :
Exécuter en tant qu'administrateur, Windows PowerShell
cd C:\
git clone https://gitee.com/myems/myems
Installer Python 3.10
https://www.python.org/downloads/windows/
Paquet Python 3.10.11 version 64-bit pour système 64 bits
Télécharger Windows installer (64-bit)
Exécuter le programme d'installation de Python
Double-cliquer : python-3.10.11-amd64.exe
Cocher "Add py... to PATH" et cliquer sur "Customize installation"
S'assurer que toutes les options sont cochées, en particulier pip ; cliquer sur "Next"
Cocher la première option, il est recommandé de changer le dossier d'installation de Python, puis cliquer sur "install"
Remarque : l'installation par défaut se fait dans : C:\Program Files\Python310. Veuillez la modifier en C:\Python310
Une fois l'installation terminée, cliquer sur "close"
Dans l'invite de commandes, taper python, appuyer sur Entrée ; la version de Python apparaît si l'installation a réussi
Étape 1 Base de données
Reportez-vous à Database
Voici les étapes détaillées pour télécharger et installer MySQL (exemple avec MySQL 8.0, édition Community gratuite).
1.1 Télécharger le programme d'installation de MySQL
- Ouvrir le site officiel : https://dev.mysql.com/downloads/mysql/
- Choisir la plateforme Windows, généralement deux options :
- mysql-installer-web-community (installation en ligne, taille réduite)
- mysql-installer-community (programme complet hors ligne, recommandé)
- Cliquer sur Download, si une connexion est demandée, choisir "No thanks, just start my download"
1.2 Installer MySQL
- Double-cliquer pour exécuter le programme d'installation téléchargé (droits administrateur nécessaires)
- Choisir le type d'installation (recommandé : Developer Default ou Custom)
- Developer Default : installe MySQL Server, Workbench, Shell et d'autres outils courants
- Custom : permet de personnaliser les composants
- Cliquer sur Next ; le programme vérifie automatiquement les dépendances et télécharge les composants manquants
- Cliquer sur Execute pour commencer l'installation, cliquer sur Next une fois terminé
1.3 Configurer MySQL Server
-
Type and Networking
- Config Type : choisir Development Computer
- Port : par défaut 3306 (peut être modifié)
- Cliquer sur Next
-
Authentication Method
- Recommandé : Use Strong Password Encryption (chiffrement plus récent)
- Ou la deuxième option (compatibilité avec d'anciennes versions)
- Cliquer sur Next
-
Accounts and Roles
- Définir le mot de passe root (à ne pas oublier)
- Optionnel : ajouter un utilisateur ordinaire (peut être sauté)
- Cliquer sur Next
-
Windows Service
- Cocher Configure MySQL Server as a Windows Service
- Service Name : MySQL80 (par défaut)
- Cocher Start the MySQL Server at System Startup
- Cliquer sur Next
-
Apply Configuration
- Cliquer sur Execute pour appliquer la configuration
- Toutes les étapes affichent une coche verte en cas de succès
- Cliquer sur Finish
1.4 Terminer l'installation
- Continuer à cliquer sur Next jusqu'à voir Finish
- Cocher Start MySQL Workbench after Setup (optionnel)
- Cliquer sur Finish pour quitter l'assistant d'installation
1.5 Vérifier l'installation
Méthode 1 : Tester en ligne de commande
- Appuyer sur
Win + R, tapercmdet valider - Taper :
mysql -u root -p - Saisir le mot de passe root défini
- L'apparition de l'invite
mysql>confirme le succès
Méthode 2 : Vérifier le service
- Appuyer sur
Win + R, taperservices.msc - Trouver
MySQL80, l'état doit être "En cours d'exécution"
1.6 Paramètres initiaux courants (optionnel)
Après connexion à MySQL, exécuter :
-- Afficher les bases de données
show databases;
-- Créer une nouvelle base de données
create database mydb;
-- Créer un utilisateur pour accès distant (optionnel)
create user 'myems'@'%' identified by 'mot_de_passe';
grant all privileges on *.* to 'myems'@'%';
flush privileges;
Problèmes courants
| Problème | Solution |
|---|---|
| Le port 3306 est déjà utilisé | Changer de port lors de l'installation (ex : 3307) |
| Mot de passe root oublié | Démarrer MySQL sans la table des privilèges (procédure complexe) |
| Impossible de démarrer le service | Vérifier si le port est utilisé ou consulter les journaux d'événements Windows |
Avez-vous besoin d'aide pour un problème spécifique rencontré lors de l'installation ?
Étape 2 myems-api
- Installer le service myems-api :
# 1. Ouvrir une nouvelle fenêtre CMD en tant qu'administrateur
# 2. Définir les variables d'environnement
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Accéder au répertoire du projet
cd C:\myems\myems-api
# 4. Réinstaller tous les paquets
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
Créer le fichier .env à partir de example.env et le modifier si nécessaire :
copy .\example.env .env
Ouvrir et modifier avec un éditeur de texte : C:\myems\myems-api\.env
Modifier les informations de connexion à la base de données
Installer le service Windows :
cmd
# 1. Supprimer complètement l'ancien service
sc delete MyEMSAPI
# 2. Créer le répertoire des journaux
mkdir C:\myems\myems-api\logs 2>nul
# 3. Télécharger WinSW (si ce n'est pas déjà fait)
https://github.com/winsw/winsw/releases
Renommer WinSW-x64.exe en MyEMSAPI.exe
cd C:\myems\myems-api
# 4. Créer le fichier de configuration
Créer `C:\myems\myems-api\MyEMSAPI.xml` (avec notepad ou la commande suivante) :
notepad C:\myems\myems-api\MyEMSAPI.xml
Copier le contenu suivant dans le bloc-notes :
<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>
Enregistrer et fermer le bloc-notes.
# 5. Installer le service
MyEMSAPI.exe install
# 6. Démarrer le service
MyEMSAPI.exe start
# 7. Vérifier l'état
MyEMSAPI.exe status
# 8. Tester le service
curl http://localhost:8000
# 9. En cas de problème, consulter les journaux
C:\myems\myems-api\logs
Étape 3 myems-admin
- Installer le serveur NGINX : https://nginx.org/en/download.html
Démarrer le service nginx en arrière-plan :
start /b nginx.exe
- Configurer NGINX
cd C:\Program Files\nginx-1.29.1\conf
Ouvrir et modifier nginx.conf avec un éditeur de texte
Dans la section 'http', ajouter quelques directives :
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;
...
}
Écrire les directives suivantes ; si le service myems-api s'exécute sur un autre serveur, remplacer l'adresse par défaut http://127.0.0.1:8000/ par l'adresse réelle.
server {
listen 8001;
server_name myems-admin;
location / {
root C:\myems-admin;
index index.html index.htm;
}
## Pour éviter les problèmes CORS, utiliser Nginx comme proxy pour myems-api vers le chemin /api
## Ajouter une autre section location /api dans 'server'
## Remplacer l'URL par défaut de myems-api http://127.0.0.1:8000/ par l'URL réelle si le service myems-api est hébergé sur un serveur différent
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
- Installer myems-admin : Si le serveur ne peut pas accéder à Internet, compressez le dossier myems/myems-admin et transférez-le sur le serveur,
- Ensuite, décompressez-le dans c:\myems-admin
Vérifier le fichier de configuration et le modifier si nécessaire :
c:\myems-admin\app\api.js
Le dossier "upload" contient les fichiers téléchargés par les utilisateurs. Lors de la mise à niveau de myems-admin, ne supprimez/déplacez/remplacez pas le dossier "upload".
C:\myems-admin\upload
Redémarrer le service nginx :
cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
## Étape 4 myems-modbus-tcp
Au cours de cette étape, vous allez installer le service myems-modbus-tcp.
```bash
cd C:\myems\myems-modbus-tcp
# 1. Ouvrir une nouvelle fenêtre CMD en tant qu'administrateur
# 2. Définir les variables d'environnement
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Accéder au répertoire du projet
cd C:\myems\myems-modbus-tcp
# 4. Réinstaller tous les paquets
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
Créer le fichier .env à partir de example.env et le modifier si nécessaire :
copy .\example.env .env
Ouvrir et modifier avec un éditeur de texte : C:\myems\myems-modbus-tcp\.env
Installer le service Windows :
# 1. Supprimer complètement l'ancien service
sc delete MyEMSModbusTCP
# 2. Créer le répertoire des journaux
mkdir C:\myems\myems-modbus-tcp\logs 2>nul
# 3. Télécharger WinSW (si ce n'est pas déjà fait)
https://github.com/winsw/winsw/releases
Renommer WinSW-x64.exe en MyEMSModbusTCP.exe
cd C:\myems\myems-modbus-tcp
# 4. Créer le fichier de configuration
Créer `C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml` (avec notepad ou la commande suivante) :
notepad C:\myems\myems-modbus-tcp\MyEMSModbusTCP.xml
Copier le contenu suivant dans le bloc-notes :
<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>
Enregistrer et fermer le bloc-notes.
# 5. Installer le service
MyEMSModbusTCP.exe install
# 6. Démarrer le service
MyEMSModbusTCP.exe start
# 7. Vérifier l'état
MyEMSModbusTCP.exe status
# 8. En cas de problème, consulter les journaux
C:\myems\myems-modbus-tcp\logs
Si l'exécution de
MyEMSModbusTCP.exe installetMyEMSModbusTCP.exe startréussit mais queMyEMSModbusTCP.exe statusindique toujours "Stopped", il est possible que le redistributable VC++ ne soit pas installé. Adresse de téléchargement de VC++ : https://learn.microsoft.com/zh-cn/cpp/windows/latest-supported-vc-redist?view=msvc-170#visual-studio-2015-2017-2019-and-2022
Étape 5 myems-cleaning
Au cours de cette étape, vous allez installer le service myems-cleaning.
cd C:\myems\myems-cleaning
# 1. Ouvrir une nouvelle fenêtre CMD en tant qu'administrateur
# 2. Définir les variables d'environnement
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Accéder au répertoire du projet
cd C:\myems\myems-cleaning
# 4. Réinstaller tous les paquets
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
Créer le fichier .env à partir de example.env et le modifier si nécessaire :
copy C:\myems\myems-cleaning\example.env .env
Ouvrir et modifier avec un éditeur de texte : C:\myems\myems-cleaning\.env
Installer le service Windows :
# 1. Supprimer complètement l'ancien service
sc delete MyEMSCleaning
# 2. Créer le répertoire des journaux
mkdir C:\myems\myems-cleaning\logs 2>nul
# 3. Télécharger WinSW (si ce n'est pas déjà fait)
https://github.com/winsw/winsw/releases
Renommer WinSW-x64.exe en MyEMSCleaning.exe
cd C:\myems\myems-cleaning
# 4. Créer le fichier de configuration
Créer `C:\myems\myems-cleaning\MyEMSCleaning.xml` (avec notepad ou la commande suivante) :
notepad C:\myems\myems-cleaning\MyEMSCleaning.xml
Copier le contenu suivant dans le bloc-notes :
<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>
Enregistrer et fermer le bloc-notes.
# 5. Installer le service
MyEMSCleaning.exe install
# 6. Démarrer le service
MyEMSCleaning.exe start
# 7. Vérifier l'état
MyEMSCleaning.exe status
# 8. En cas de problème, consulter les journaux
C:\myems\myems-cleaning\logs
Étape 6 myems-normalization
Au cours de cette étape, vous allez installer le service myems-normalization.
cd C:\myems\myems-normalization
# 1. Ouvrir une nouvelle fenêtre CMD en tant qu'administrateur
# 2. Définir les variables d'environnement
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Accéder au répertoire du projet
cd C:\myems\myems-normalization
# 4. Réinstaller tous les paquets
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
Créer le fichier .env à partir de example.env et le modifier si nécessaire :
copy C:\myems\myems-normalization\example.env .env
Ouvrir et modifier avec un éditeur de texte : C:\myems\myems-normalization\.env
Installer le service Windows :
# 1. Supprimer complètement l'ancien service
sc delete MyEMSNormalization
# 2. Créer le répertoire des journaux
mkdir C:\myems\myems-normalization\logs 2>nul
# 3. Télécharger WinSW (si ce n'est pas déjà fait)
https://github.com/winsw/winsw/releases
Renommer WinSW-x64.exe en MyEMSNormalization.exe
cd C:\myems\myems-normalization
# 4. Créer le fichier de configuration
Créer `C:\myems\myems-normalization\MyEMSNormalization.xml` (avec notepad ou la commande suivante) :
notepad C:\myems\myems-normalization\MyEMSNormalization.xml
Copier le contenu suivant dans le bloc-notes :
<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>
Enregistrer et fermer le bloc-notes.
# 5. Installer le service
MyEMSNormalization.exe install
# 6. Démarrer le service
MyEMSNormalization.exe start
# 7. Vérifier l'état
MyEMSNormalization.exe status
# 8. En cas de problème, consulter les journaux
C:\myems\myems-normalization\logs
Étape 7 myems-aggregation
Au cours de cette étape, vous allez installer le service myems-aggregation.
cd C:\myems\myems-aggregation
# 1. Ouvrir une nouvelle fenêtre CMD en tant qu'administrateur
# 2. Définir les variables d'environnement
set PIP_NO_USER=1
set PYTHONNOUSERSITE=1
# 3. Accéder au répertoire du projet
cd C:\myems\myems-aggregation
# 4. Réinstaller tous les paquets
C:\Python310\python.exe -m pip install --no-cache-dir --no-user -r requirements.txt
Créer le fichier .env à partir de example.env et le modifier si nécessaire :
copy C:\myems\myems-aggregation\example.env .env
Ouvrir et modifier avec un éditeur de texte : C:\myems\myems-aggregation\.env
Installer le service Windows :
# 1. Supprimer complètement l'ancien service
sc delete MyEMSAggregation
# 2. Créer le répertoire des journaux
mkdir C:\myems\myems-aggregation\logs 2>nul
# 3. Télécharger WinSW (si ce n'est pas déjà fait)
https://github.com/winsw/winsw/releases
Renommer WinSW-x64.exe en MyEMSAggregation.exe
cd C:\myems\myems-aggregation
# 4. Créer le fichier de configuration
Créer `C:\myems\myems-aggregation\MyEMSAggregation.xml` (avec notepad ou la commande suivante) :
notepad C:\myems\myems-aggregation\MyEMSAggregation.xml
Copier le contenu suivant dans le bloc-notes :
<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>
Enregistrer et fermer le bloc-notes.
# 5. Installer le service
MyEMSAggregation.exe install
# 6. Démarrer le service
MyEMSAggregation.exe start
# 7. Vérifier l'état
MyEMSAggregation.exe status
# 8. En cas de problème, consulter les journaux
C:\myems\myems-aggregation\logs
Étape 8 myems-web
Au cours de cette étape, vous allez installer le service myems-web.
Démarrer le service nginx :
start /b nginx.exe
- Configurer NGINX
cd C:\Program Files\nginx-1.29.1\conf
Ouvrir et modifier nginx.conf avec un éditeur de texte
Utiliser les directives suivantes ; si le service myems-api est hébergé sur un serveur différent, remplacer l'adresse par défaut de myems-api http://127.0.0.1:8000/ par l'adresse réelle.
server {
listen 80;
server_name myems-web;
location / {
root C:\myems-web\build;
index index.html index.htm;
# ajouter la directive try_files pour éviter l'erreur 404 lors de l'actualisation des pages
try_files $uri /index.html;
}
## Pour éviter les problèmes CORS, utiliser Nginx comme proxy pour myems-api vers le chemin /api
## Ajouter une autre section location /api dans 'server'
## Remplacer l'URL par défaut de myems-api http://127.0.0.1:8000/ par l'URL réelle si le service myems-api est hébergé sur un serveur différent
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
Redémarrer Nginx
cd C:\Program Files\nginx-1.29.1
nginx.exe -s stop
start /b nginx.exe
- Installer l'interface Web MyEMS :
Installer NodeJS : https://nodejs.org/zh-cn Exigences de version :
- Node.js 22.22.2, 24.5.0 ou supérieur
- npm 10.9.7, 11.5.1 ou supérieur
Exemple : C:\Program Files\nodejs
Exigences de version :
- Node.js 22.22.2, 24.5.0 ou supérieur
- npm 10.9.7, 11.5.1 ou supérieur
Configurer les variables d'environnement
Modifier le fichier de configuration :
cd C:\myems\myems-web
Ouvrir et modifier avec un éditeur de texte : src/config.js
Compiler :
npm i
npm run build
Le répertoire build est généré dans C:\myems\myems-web
mkdir C:\myems-web
move "C:\myems\myems-web\build" "C:\myems-web"
Si la compilation échoue avec une erreur de délai d'attente :
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 inExécuter la commande suivante pour basculer vers un miroir national :
npm config set registry https://registry.npmmirror.com/
Après l'installation
Félicitations ! Vous pouvez maintenant vous connecter à l'interface d'administration MyEMS et à l'interface Web MyEMS.
Ports par défaut
Interface Web MyEMS : 80
API MyEMS : 8000
Interface d'administration MyEMS : 8001
Supposons que l'adresse du serveur soit 192.168.1.8 (remplacer par l'adresse réelle du serveur) L'adresse de l'interface Web MyEMS est http://192.168.1.8 (le 80 peut être omis) L'adresse de l'interface d'administration MyEMS est http://192.168.1.8:8001
Mots de passe par défaut
Interface d'administration MyEMS
Nom d'utilisateur :
administrator
Mot de passe :
!MyEMS1
Interface Web MyEMS
Nom d'utilisateur :
administrator
Mot de passe :
!MyEMS1