Installer ASP .NET Core sur un Raspberry Pi

Introduction

.NET Core est un Framework open source et multi-plateforme développé par Microsoft et la communauté .NET sur GitHub. Vous pouvez déployer vos applications codées en C# sur Windows, macOS et Linux. Cet article a pour objectif de présenter le déploiement d’une application réalisée avec ASP .NET Core sur un Raspberry Pi.

Installation

Raspbian

Vous aurez besoin d’un Raspberry Pi 2 minimum.

blog ai3 raspberry-pi Installer ASP .NET Core sur un Raspberry Pi

Télécharger la dernière image de Raspbian et graver la sur une carte SD avec Etcher. Copier l’image générée sur la carte MicroSD et créer un fichier vide nommé « ssh » sans extension à la racine de la partition boot pour activer SSH.

Placer ensuite cette carte CD dans de lecteur de votre Raspberry. Après avoir démarrer votre Raspberry, connectez le à votre box internet avec un cable Ethernet. Vous devez maintenant être en mesure de détecter l’IP du Raspberry PI sur votre réseau.

Vous pouvez alors vous y connecter en SSH avec le login « pi » et le mot de passe « raspberry » par défaut.

L’adresse est utilisée à titre d’exemple dans la commande suivante :

Terminer la configuration avec la commande :

ASP .NET Core

Télécharger les mises à jours et les librairies requises :

Sur la page officielle de téléchargement, choisir « All .NET Core downloads » et télécharger la version recommandée de .Net Core et ASP .NET Core pour Linux. Je vous conseille la version ARM32, car l’architecture recommandée en terme de compatibilité sur le Raspberry est 32 bits.

blog ai3 wget-dotnet Installer ASP .NET Core sur un Raspberry Pi

Créer un alias pour accéder facilement à la commande « dotnet »

Vérifier que l’installation s’est bien passée avec la commande :

blog ai3 dotnet-info Installer ASP .NET Core sur un Raspberry Pi

Application Web

Créer un dossier pour votre application web :

On désactive la redirection en HTTS par défaut sur le projet en commentant la ligne : « app.UseHttpsRedirection(); » dans le fichier « Startup.cs » à la racine de l’application.

Afin que le reverse proxy transfère les requêtes à l’application, il est nécessaire d’ajouter ces trois lignes suivantes au début de la méthode « Configure » dans le fichier « Startup.cs »

blog ai3 dotnet-startup-configuration Installer ASP .NET Core sur un Raspberry Pi

Ajouter aussi cet import « using Microsoft.AspNetCore.HttpOverrides; » dans le fichier « Startup.cs » et c’est terminé.

Vous pouvez transférer votre application compilée pour Linux en SFTP avec un outil comme Cyberduck, mais la suite de ce tutoriel ne nécessite pas d’IDE. Compiler l’application avec la commande suivante :

Serveur Web

On installe Nginx pour pouvoir accéer à l’application depuis votre navigateur.

Configurer Nginx en tant que reverse proxy pour transférer les requêtes à votre application ASP .NET Core :

Modifier votre configuration pour y ajouter le contenu ci-dessous :

Vérifier la configuration et appliquer les modifications :

On s’assure que les ports sont ouverts afin d’être en mesure d’accéder à notre application sur le réseau :

Pour lancer l’application web, placez vous dans le dossier d’exécution de l’application web et lancé l’applicatif :

blog ai3 dotnet-start-app Installer ASP .NET Core sur un Raspberry Pi

Vous pouvez maintenant accéder à votre application depuis votre navigateur favori avec l’adresse IP de votre Raspberry Pi. Il s’agit de 192.168.1.84 dans le cas de ce tutoriel. L’application est aussi accessible en local sur votre Raspberry Pi à l’adresse : http://localhost:5000

Service Web

On va créer un service pour que notre application web soit toujours en fonctionnement après avoir quitté le terminal.

Ajouter la configuration suivante :

Activer et redémarrer le service :

blog ai3 dotnet-run-service Installer ASP .NET Core sur un Raspberry Pi

Vous pouvez maintenant terminer votre session en SSH et accéder à votre application à tout moment depuis votre navigateur.

blog ai3 asp-net-core-welcome Installer ASP .NET Core sur un Raspberry Pi

Conclusion

Pour aller plus loin, vous pouvez aussi créer des batchs avec une application console .NET Core, ajouter d’autres applications web moyennent un peu de configuration Nginx et configurer une connexion HTTPS.

J’espère que ce tutoriel vous aura été utile, n’hésiter pas à partager en commentaire votre avis et si vous avez rencontrez des difficultés.

Sources :

https://dev.to/ianknighton/hosting-a-net-core-app-with-nginx-and-let-s-encrypt-1m50
https://blog.edgoad.com/2016/08/setting-up-net-core-on-ubuntu-and.html
https://blogs.infinitesquare.com/posts/web/heberger-une-application-aspnet-core-2-sur-un-raspberry-pi
https://medium.com/@setu677/how-to-host-asp-net-core-on-linux-using-nginx-85339560e929
https://github.com/dotnet/core/blob/master/samples/RaspberryPiInstructions.md

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.