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 :