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-serveurIl est recommandé de créer immédiatement un utilisateur séparé pour des raisons de sécurité :
adduser appuserusermod -aG sudo appusersu - appuser1.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.0Vérifiez l'installation :
dotnet --list-runtimesVous 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 ./publishCette 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/myappMaintenant, sur le serveur, vérifiez que les fichiers sont en place :
ls -la /home/appuser/myapp3. 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.serviceInsé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.targetRemplacez 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 myappVérifiez le statut :
sudo systemctl status myappSi 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 -y4.2. Configuration du site
Blogs
Book Recommendations
Lire aussi
Sécurité des applications Swift : top 10 des vulnérabilités pour iOS/macOS