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

Le développement d'une application C# n'est que la moitié du travail. Pour que votre projet soit accessible aux utilisateurs sur Internet, il doit être déployé sur un serveur. Un serveur privé virtuel (VPS) est la solution idéale pour héberger des applications .NET, car il offre un contrôle total sur l'environnement et permet de tout configurer selon des besoins spécifiques.

Dans cet article, nous allons détailler le processus complet de déploiement d'une application C# (ASP.NET Core) sur un VPS sous Linux (Ubuntu 22.04). Vous apprendrez comment préparer le serveur, installer les logiciels nécessaires, publier l'application et configurer le serveur web pour qu'il fonctionne avec elle. Toutes les étapes sont accompagnées d'exemples de code et de commandes.

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

La première étape est la préparation du serveur. Nous utiliserons Ubuntu 22.04 LTS, car c'est l'un des systèmes d'exploitation les plus populaires et stables pour les serveurs. Connectez-vous au VPS via SSH :

ssh user@your-server-ip

Après la connexion, mettez à jour la liste des paquets et installez les dépendances nécessaires :

sudo apt updatesudo apt upgrade -ysudo apt install wget apt-transport-https software-properties-common -y

Ajoutez maintenant le dépôt Microsoft et installez le .NET SDK. Pour .NET 8, exécutez :

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 updatesudo apt install dotnet-sdk-8.0 -y

Vérifiez l'installation :

dotnet --version

Si vous voyez un numéro de version (par exemple, 8.0.100), tout est installé correctement.

Important : Si votre application utilise une base de données (par exemple, PostgreSQL ou SQLite), installez le paquet correspondant. Pour PostgreSQL :

sudo apt install postgresql postgresql-contrib -y

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

Préparez maintenant l'application elle-même pour le déploiement. Sur votre ordinateur local (où le développement est effectué), ouvrez un terminal dans la racine du projet et effectuez la publication en mode Release :

dotnet publish -c Release -o ./publish

Cette commande créera un dossier publish avec tous les fichiers nécessaires pour exécuter l'application sur le serveur. Vous devez maintenant télécharger ce dossier sur le VPS. Utilisez SCP ou SFTP. Exemple avec SCP :

scp -r ./publish user@your-server-ip:/home/user/myapp

Où myapp est le nom du dossier dans lequel votre application sera stockée sur le serveur.

Après le téléchargement, connectez-vous au serveur et déplacez les fichiers vers un emplacement plus approprié, par exemple /var/www/myapp :

sudo mkdir -p /var/www/myappsudo cp -r /home/user/myapp/* /var/www/myapp/

N'oubliez pas de définir les bonnes permissions sur le dossier :

sudo chown -R www-data:www-data /var/www/myappsudo chmod -R 755 /var/www/myapp

3. Configuration de systemd pour le démarrage automatique

Pour que votre application démarre automatiquement au démarrage du système et redémarre en cas de panne, créez un service systemd. Créez un fichier de configuration :

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

Insérez le contenu suivant (remplacez les chemins et le nom d'utilisateur par les vôtres) :

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

[Service]WorkingDirectory=/var/www/myappExecStart=/usr/bin/dotnet /var/www/myapp/YourApp.dllRestart=alwaysRestartSec=10KillSignal=SIGINTSyslogIdentifier=myappUser=www-dataEnvironment=ASPNETCORE_ENVIRONMENT=ProductionEnvironment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]WantedBy=multi-user.target

Enregistrez le fichier (Ctrl+O, puis Entrée) et quittez (Ctrl+X). Rechargez maintenant systemd et démarrez le service :

sudo systemctl daemon-reloadsudo systemctl start myappsudo systemctl enable myapp

Vérifiez le statut :

Blogs

Book Recommendations