IoTRoutes on-premise
Vous pouvez installer facilement un environnement IoT Routes dans votre datacenter en téléchargent depuis github.com et en installant les fichiers binaires sur des serveurs web à votre choix. Une installation minimale consiste à :
- Installer et configurer une Instance de de base de données MongoDB
- Installer et configurer le serveur AOS fourni par IoTRoutes.
- Installer et configurer le client web IoTRoutes.

1. Serveur de base de données
IoTRoutes utilise des bases de données NoSQL pour la configuration de l'application et pour stocker les messages IoT ainsi que les fichiers media ou documents générer. MongoDB est optimisé pour l'application et aussi conseillé pour toutes installations on-premises. Vous pouvez consulter la documentation depuis le site officiel MongoDB pour l'installation ou l'utilisation cloud.
En production ,Il est fortement recommandé de créer des bases séparées pour Data et d'autres pour les documents, rapports générés et fichiers media.
2. IotRoutes AOS
IoT Routes AOS est déployé sur un serveur web. Après avoir télécharger et décompresser les fichiers depuis la page de téléchargement sur https://github.com/IoTRoutes/iotroutes , Veuillez suivre les étapes suivantes pour installer et configurer votre serveur.
Windows :
- Prérequis :
- Windows Server (2012 R2 or later recommended)
- IIS installed (Web Server (IIS) role in Server Manager)
- .NET Hosting Bundle installed (matches AOS version downloaded, see downlod comments).
- Etapes:
- Installer et configurer IIS comme décrit dans la documentation officielle, voir ce lien .
- Install the .NET Core/.NET Hosting Bundle: Depuis le lien https://dotnet.microsoft.com/en-us/download/dotnet chercher "ASP.NET Core Runtime Hosting Bundle", télécharger et installer le programme puis redémarrer le serveur.
- Créer un dossier racine pour héberger le AOS sous votre IIS exemple C:\inetpub\wwwroot\IoTRoutes-AOS et copier les fichiers décompressés que vous les avez téléchargé précédemment.
- Ouvrir IIS Manger s'il est encore fermé et configurer l'application web comme suit :
- Ajouter le site web AOS : Cliquer avec le bouton droits sur "Sites" et "Ajouter Site Web". Entrer le nom de site "IoTRoutes-AOS" et le chemin "C:\inetpub\wwwroot\IoTRoutes-AOS" (selon le dossier créé à l'étape 3) .
- Ajuster les entrées du fichier de configuration appsettings.json. Ce fichier contient les paramètres permettant à l'AOS de fonctionner. Veuillez consulter la section plus bas qui décrit la structure du fichier de configuration.
- Mettre le Pool d'application à "No Managed Code" : Dans l' Application Pools chercher ou créer le Pool à utiliser. Cliquer avec le bouton droit sur le nom puis sur "Paramètres", Définir la version .NET CLR sur Aucun code managé. et Mettre "Mode pipeline géré" à " intégré".
Vérifier les permissions et Firewall : Assurez-vous que le dossier dispose des autorisations de lecture/exécution pour IIS_IUSRS et IUSR. Le dossier du log doit avoir les autorisations de Ecriture/Modification.
Autoriser le trafic entrant sur le port que vous avez configuré IIS pour écouter (par défaut : 80 ou 443 pour HTTPS)
- Redémarrer le pool et tester votre site : Via un navigateur web , accéder à http://<server-ip>/swagger/index.html
Ubuntu
Pour héberger IoTRoutes sur Ubuntu, on utilise Kestrel comme serveur web et Nginx comme reverse proxy. Voici les grandes étapes à suivre pour un déploiement sur Ubuntu (20.04 ou +) . Pour plus de détails sur les commandes Linux , veuillez consulter la documentation appropriée.
Installer le SDK ou Runtime .NET sur Ubuntu
- Ajouter Microsoft apt repository
- Installer le Runtime (.NET Core/ASP.NET) :
sudo apt install -y aspnetcore-runtime-8.0
Publier l’application AOS sur le serveur
Sur votre poste de travail, ou les fichier IoTRoutes AOS sont décompressés , Veuillez ouvrir le fichier de configuration appsettings.json et ajuster les valeurs selon votre plateforme, tel que l'adresse du serveur et les bases de données utilisées. Veuillez consulter la section plus bas qui décrit la structure du fichier de configuration.
Transférer ensuite le dossier sur ton serveur, par exemple via SCP ou rsync :
scp -r ./publish user@your-server-ip:/var/www/iotroutesAOS
- Créer un service systemd pour l'application AOS
créer le fichier :
sudo nano /etc/systemd/system/iotroutesAOS.service
- pour le contenu du fichier, veuillez consulter la documentation ubuntu.
Sauvegarder, puis exécuter
sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl enable iotRoutesApi sudo systemctl start iotRoutesApi
- Tester l'AOS : sudo systemctl status iotroutesAOS
- Configurer Nginx comme reverse proxy
- Installer Nginx : sudo apt install nginx
- Créer un fichier de config Nginx : sudo nano /etc/nginx/sites-available/iotroutesAOS
- Editer le contenu, veuillez consulter la documentation Nginx.
Activer le site :
sudo ln -s /etc/nginx/sites-available/iotroutesAOS /etc/nginx/sites-enabled/ sudo nginx -t sudo systemctl restart nginx
Accéder et tester l'application web AOS
curl http://your-domain.com/iotroutesAOS/swagger
Fichier de configuration de l'AOS
Le fichier appsettings.json, contient les informations de configuration tel que les paramètres d'accès aux bases de données et autres.
- mongodbDataConnectionString : Chaine de connexion au serveur base de données MongoDB pour la base Data, exemple : mongodb://admin1:password1@serverName1:27017
- mongodbDataDbName : Nom de la base de données Data.
- mongodbFilesConnectionString : Chaine de connexion au serveur base de données MongoDB pour la base des fichiers, documents et medias. Pour les petites infrastructure , vous pouvez utiliser la meme base Data
- mongodbFilesDbName: Nom de la base données des fichiers.
- Jwt_TokenLifetime : Durée d'expiration du Token JWT pour l'authentification sous format hh:mm:ss
- Jwt_RefreshDuration : Durée d'expiration du Refresh Token JWT.
- MQTTEndPointsURL : Pour les très grande installation, Cette clé contient le chemin du fichier de la stratégie de réservation des port MQTT. Dans le cas ou vous voulez créer plusieurs AOS et/ou plusieurs Brokers par AOS. Un model de fichier MQTTEndPoints est fourni sous le dossier de l'AOS portant le nom MQTTEndPoints_template.json
- DefaultAdmin : Pour une nouvelle installation avec une base de données initiale, cette section permet de définir les informations du premier compte administrateur à créer et qui recevra les notifications . Le compte par défaut est "admin" et vous devriez spécifier ici un mot de passe temporaire que vous allez le changer par la suite depuis le client web.
Répartition de la charge sur un environnement local
Dans les environnements de grande envergure, plusieurs instances AOS peuvent être exécutées en parallèle, en s’appuyant sur une base de données configurée pour la mise à l’échelle horizontale et la répartition de la charge.
Vous pouvez créer un ou plusieurs AOS principaux et un ou plusieurs AOS additionnels pour l'équilibrage des charges. Chaque AOS principal contient sa propre base de données et zéro ou plusieurs environnements additionnels pour répartir les travaux, les traitements des messages ou les accès utilisateurs.
Ci-dessous un schéma pour un exemple d'un environnement avec 3 AOS partageant la même base de données. Le 1er AOS est dédié uniquement à la communication avec les appareils pour la réception des messages et l'envoi des commandes. Le 2èmeAOS est réservé aux travaux et traitements par lots, tandis que l'AOS 3 est dédié pour les l'accès utilisateurs via le client web ou les applications mobile.

Suivant : IoTRoutes on-premise Web Client