Déploiement d'une application C# sur VPS : guide étape par étape

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction

Développer une application C# sur la plateforme .NET n'est que la moitié du travail. Pour que votre projet soit accessible aux utilisateurs sur Internet, il doit être correctement déployé sur un serveur. Le VPS (Virtual Private Server) est une solution idéale pour les petites et moyennes entreprises ainsi que pour les développeurs indépendants : il offre un contrôle total sur l'environnement à un prix abordable. Dans cet article, nous allons parcourir le processus complet de déploiement d'une application C# sur un VPS sous Linux (Ubuntu 22.04). Vous apprendrez comment préparer le serveur, publier l'application, configurer un reverse proxy avec Nginx et assurer le démarrage automatique via systemd.



1. Préparation du VPS et installation du .NET Runtime

1.1. Connexion au serveur

Après avoir acheté un VPS, vous recevrez une adresse IP et un mot de passe root. Connectez-vous via SSH :

ssh root@votre-adresse-ip-serveur

Il est recommandé de créer immédiatement un utilisateur séparé pour des raisons de sécurité :

adduser appuserusermod -aG sudo appusersu - appuser


1.2. Installation du .NET Runtime

Pour qu'une application C# fonctionne sur le serveur, le ASP.NET Core Runtime est nécessaire. Ajoutez le dépôt Microsoft et installez le paquet :

wget https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.debsudo dpkg -i packages-microsoft-prod.debsudo apt-get updatesudo apt-get install -y aspnetcore-runtime-8.0

Vérifiez l'installation :

dotnet --list-runtimes

Vous devriez voir une ligne avec la version ASP.NET Core 8.0.0.



2. Publication de l'application et téléchargement sur le serveur

2.1. Publication (publish) sur la machine locale

Sur votre ordinateur avec Visual Studio ou .NET CLI, ouvrez le projet et exécutez la commande de publication :

dotnet publish -c Release -o ./publish

Cette commande créera un dossier publish contenant tous les fichiers nécessaires pour exécuter l'application (y compris les dépendances runtime, si vous utilisez FDD — Framework-Dependent Deployment).



2.2. Téléchargement sur le VPS

Copiez le dossier publish sur le serveur en utilisant scp ou sftp. Sur la machine locale, exécutez :

scp -r ./publish appuser@votre-adresse-ip-serveur:/home/appuser/myapp

Maintenant, sur le serveur, vérifiez que les fichiers sont en place :

ls -la /home/appuser/myapp


3. Configuration de systemd pour le démarrage automatique

Pour que l'application démarre au lancement du système et redémarre automatiquement après des pannes, créez une unité systemd.

3.1. Création du fichier de service

Créez le fichier /etc/systemd/system/myapp.service avec les droits root :

sudo nano /etc/systemd/system/myapp.service

Insérez le contenu suivant :

[Unit]Description=My ASP.NET Core ApplicationAfter=network.target

[Service]WorkingDirectory=/home/appuser/myappExecStart=/usr/bin/dotnet /home/appuser/myapp/YourAppName.dllRestart=alwaysRestartSec=10KillSignal=SIGINTSyslogIdentifier=myappUser=appuserEnvironment=ASPNETCORE_ENVIRONMENT=ProductionEnvironment=ASPNETCORE_URLS=http://localhost:5000

[Install]WantedBy=multi-user.target

Remplacez YourAppName.dll par le nom réel de votre fichier .dll (généralement identique au nom du projet).



3.2. Démarrage et activation du service

sudo systemctl daemon-reloadsudo systemctl start myappsudo systemctl enable myapp

Vérifiez le statut :

sudo systemctl status myapp

Si tout est configuré correctement, vous verrez le statut active (running). Maintenant, l'application écoute sur le port 5000 sur l'interface locale.



4. Configuration de Nginx comme reverse proxy

Pour accéder à l'application depuis l'extérieur via les ports standard (80/443) et pour ajouter un certificat SSL, installez et configurez Nginx.

4.1. Installation de Nginx

sudo apt updatesudo apt install nginx -y


4.2. Configuration du site

Blogs

Book Recommendations