Debian/Ubuntu
Dans ce guide, vous allez déployer MyEMS sur un serveur Debian ou Ubuntu.
Prérequis
Ce guide détaille l'installation de MyEMS sur Ubuntu 24.04 LTS / Ubuntu 22.04 LTS / Ubuntu 20.04 LTS / Ubuntu 18.04 LTS / Debian 12 Bookworm / Debian 11 Bullseye / Debian 10 Buster. Les exigences matérielles dépendent de la base de données choisie et du nombre d'appareils connectés au système. Pour exécuter MyEMS et MySQL sur une seule machine, il faut disposer d'au moins 4 Go de RAM.
Cloner le code source :
cd ~
git clone https://github.com/myems/myems
Étape 1 Base de données
Voir Base de données
Étape 2 myems-api
- Installer le service myems-api :
sudo cp -r ~/myems/myems-api /myems-api
cd /myems-api
sudo apt install python3-pip
sudo pip install -r requirements.txt
(Sur Ubuntu 24.04 LTS) Si cette commande ne fonctionne pas, utilisez la suivante : sudo pip install -r requirements.txt --break-system-packages
Créer un fichier .env à partir du fichier example.env et modifier le fichier .env si nécessaire :
sudo cp /myems-api/example.env /myems-api/.env
sudo nano /myems-api/.env
Ajouter le port au pare-feu :
sudo ufw allow 8000
Configurer les fichiers de configuration systemd :
sudo cp /myems-api/myems-api.service /lib/systemd/system/
sudo cp /myems-api/myems-api.socket /lib/systemd/system/
sudo cp /myems-api/myems-api.conf /usr/lib/tmpfiles.d/
Activer ensuite les services pour qu'ils démarrent automatiquement au lancement du système :
sudo systemctl enable myems-api.socket
sudo systemctl enable myems-api.service
Démarrer les services :
sudo systemctl start myems-api.socket
sudo systemctl start myems-api.service
Étape 3 myems-admin
- Installer le serveur NGINX Se référer à la page : http://nginx.org/en/linux_packages.html#Debian
Activer le service nginx :
sudo systemctl start nginx.service
- Configurer NGINX
sudo nano /etc/nginx/nginx.conf
Dans la section 'http', ajouter les directives suivantes :
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;
...
}
Ajouter un nouveau fichier dans le répertoire /etc/nginx/conf.d/
sudo nano /etc/nginx/conf.d/myems-admin.conf
Remplir le fichier avec les directives ci-dessous, et 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 autre serveur
server {
listen 8001;
server_name myems-admin;
location / {
root /var/www/myems-admin;
index index.html index.htm;
}
## Pour éviter le problème de CORS, utiliser Nginx pour proxifier myems-api vers le chemin /api
## Ajouter une autre location /api dans la section '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 autre serveur
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 n'a pas accès à Internet, compresser le dossier myems/myems-admin, l'envoyer sur le serveur puis le décompresser dans le répertoire ~/myems/myems-admin
sudo mkdir /var/www
sudo cp -r ~/myems/myems-admin /var/www/myems-admin
sudo chmod 0755 -R /var/www/myems-admin
Vérifier le fichier de configuration et le modifier si nécessaire :
sudo nano /var/www/myems-admin/app/api.js
Le dossier 'upload' est destiné aux fichiers téléchargés par l'utilisateur. NE PAS supprimer/déplacer/écraser le dossier 'upload' lors de la mise à niveau de myems-admin.
/var/www/myems-admin/upload
Ajouter le port au pare-feu :
sudo ufw allow 8001
Redémarrer le service nginx :
sudo systemctl restart nginx.service
Étape 4 myems-modbus-tcp
Dans cette étape, vous allez installer le service myems-modbus-tcp.
sudo cp -r ~/myems/myems-modbus-tcp /myems-modbus-tcp
cd /myems-modbus-tcp
sudo pip install -r requirements.txt
(Sur Ubuntu 24.04 LTS) Si cette commande ne fonctionne pas, utilisez la suivante : sudo pip install -r requirements.txt --break-system-packages
Copier le fichier example.env vers .env et modifier le fichier .env :
sudo cp /myems-modbus-tcp/example.env /myems-modbus-tcp/.env
sudo nano /myems-modbus-tcp/.env
Configurer le service systemd :
sudo cp myems-modbus-tcp.service /lib/systemd/system/
Activer le service :
sudo systemctl enable myems-modbus-tcp.service
Démarrer le service :
sudo systemctl start myems-modbus-tcp.service
Surveiller le service :
sudo systemctl status myems-modbus-tcp.service
Consulter les journaux :
cat /myems-modbus-tcp.log
Étape 5 myems-cleaning
Dans cette étape, vous allez installer le service myems-cleaning.
sudo cp -r ~/myems/myems-cleaning /myems-cleaning
cd /myems-cleaning
sudo pip install -r requirements.txt
(Sur Ubuntu 24.04 LTS) Si cette commande ne fonctionne pas, utilisez la suivante : sudo pip install -r requirements.txt --break-system-packages
Copier le fichier example.env vers .env et modifier le fichier .env :
sudo cp /myems-cleaning/example.env /myems-cleaning/.env
sudo nano /myems-cleaning/.env
Configurer le service systemd :
sudo cp /myems-cleaning/myems-cleaning.service /lib/systemd/system/
Activer le service :
sudo systemctl enable myems-cleaning.service
Démarrer le service :
sudo systemctl start myems-cleaning.service
Surveiller le service :
sudo systemctl status myems-cleaning.service
Consulter les journaux :
cat /myems-cleaning.log
Étape 6 myems-normalization
Dans cette étape, vous allez installer le service myems-normalization.
sudo cp -r ~/myems/myems-normalization /myems-normalization
cd /myems-normalization
sudo pip install -r requirements.txt
(Sur Ubuntu 24.04 LTS) Si cette commande ne fonctionne pas, utilisez la suivante : sudo pip install -r requirements.txt --break-system-packages
Copier le fichier example.env vers .env et modifier le fichier .env :
sudo cp /myems-normalization/example.env /myems-normalization/.env
sudo nano /myems-normalization/.env
Configurer le service systemd :
sudo cp /myems-normalization/myems-normalization.service /lib/systemd/system/
Activer le service :
sudo systemctl enable myems-normalization.service
Démarrer le service :
sudo systemctl start myems-normalization.service
Surveiller le service :
sudo systemctl status myems-normalization.service
Consulter les journaux :
cat /myems-normalization.log
Étape 7 myems-aggregation
Dans cette étape, vous allez installer le service myems-aggregation.
sudo cp -r ~/myems/myems-aggregation /myems-aggregation
cd /myems-aggregation
sudo pip install -r requirements.txt
(Sur Ubuntu 24.04 LTS) Si cette commande ne fonctionne pas, utilisez la suivante : sudo pip install -r requirements.txt --break-system-packages
Copier le fichier example.env vers .env et modifier le fichier .env :
sudo cp /myems-aggregation/example.env /myems-aggregation/.env
sudo nano /myems-aggregation/.env
Configurer le service systemd :
sudo cp /myems-aggregation/myems-aggregation.service /lib/systemd/system/
Activer le service :
sudo systemctl enable myems-aggregation.service
Démarrer le service :
sudo systemctl start myems-aggregation.service
Surveiller le service :
sudo systemctl status myems-aggregation.service
Consulter les journaux :
cat /myems-aggregation.log
Étape 8 myems-web
Dans cette étape, vous allez installer le service interface utilisateur myems-web.
-
Installer le serveur NGINX Se référer à la page : http://nginx.org/en/linux_packages.html#Debian
-
Configurer NGINX Supprimer les fichiers par défaut
sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/conf.d/default.conf
Ajouter un nouveau fichier dans le répertoire /etc/nginx/conf.d/
sudo nano /etc/nginx/conf.d/myems-web.conf
Ajouter une nouvelle section 'server' avec les directives ci-dessous :
server {
listen 80;
server_name myems-web;
location / {
root /var/www/myems-web;
index index.html index.htm;
# ajouter la directive try_files pour éviter l'erreur 404 lors du rafraîchissement des pages
try_files $uri /index.html;
}
## Pour éviter le problème de CORS, utiliser Nginx pour proxifier myems-api vers le chemin /api
## Ajouter une autre location /api dans la section 'server' et remplacer l'adresse exemple http://127.0.0.1:8000/ par l'URL réelle
location /api {
proxy_pass http://127.0.0.1:8000/;
proxy_connect_timeout 75;
proxy_read_timeout 600;
send_timeout 600;
}
}
Redémarrer NGINX
sudo systemctl restart nginx
- Installer l'interface utilisateur MyEMS Web : Configurer NodeJS :
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo bash -
sudo apt-get install -y nodejs
- Modifier le fichier config.js :
Obtenir le mapboxToken sur le site https://mapbox.com, puis définir showOnlineMap sur true. Si vous souhaitez désactiver la fonction de carte en ligne, définir showOnlineMap sur false.
cd myems/myems-web
sudo nano src/config.js
Construire le projet :
sudo npm i --unsafe-perm=true --allow-root --legacy-peer-deps
sudo npm run build
Installer le projet : Remarque : le chemin ci-dessous doit être identique à celui configuré dans nginx.conf.
sudo rm -r /var/www/myems-web
sudo mv build /var/www/myems-web
Ajouter le port au pare-feu :
sudo ufw allow 80
Redémarrer NGINX
sudo systemctl restart nginx
Post-installation
Félicitations ! Vous pouvez désormais vous connecter aux interfaces utilisateur MyEMS Admin et MyEMS Web.
Ports par défaut
Interface utilisateur MyEMS Web : 80 Interface de programmation MyEMS API : 8000 Interface utilisateur MyEMS Admin : 8001
En supposant que l'adresse du serveur est 192.168.1.8 (remplacez par l'adresse réelle du serveur) Accéder à l'interface utilisateur MyEMS Web à l'adresse http://192.168.1.8 (le port 80 peut être omis) Accéder à l'interface utilisateur MyEMS Admin à l'adresse http://192.168.1.8:8001
Mot de passe par défaut
Interface utilisateur MyEMS Admin Identifiant :
administrator
Mot de passe :
!MyEMS1
Interface utilisateur MyEMS Web Identifiant :
administrator@myems.io
Mot de passe :
!MyEMS1
Dépannage
Créer un répertoire de configuration d'environnement virtuel :
sudo python -m venv venv
Activer l'environnement virtuel :
source venv/bin/activate
Installer les dépendances :
sudo venv/bin/pip install -r requirements.txt
Désactiver l'environnement virtuel :
deactivate