Déploiement d'une application C++ sur un 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

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



Le développement en C++ se termine souvent par l'étape de déploiement — le transfert de l'application prête vers un serveur distant (VPS). Contrairement aux langages interprétés, le C++ nécessite une compilation pour l'architecture cible, une configuration correcte de l'environnement et l'organisation du démarrage automatique. Dans cet article, nous allons parcourir le cycle complet : de la préparation du VPS au lancement de la version de production d'une application C++ en utilisant systemd et Nginx.



1. Préparation du VPS et installation des outils nécessaires



Avant le déploiement, assurez-vous que votre VPS fonctionne sous Ubuntu 20.04/22.04 ou Debian 11/12. Connectez-vous via SSH :



ssh root@votre-ip-serveur


Mettez à jour la base de paquets et installez le compilateur g++, le système de build CMake et le gestionnaire de processus screen (pour le débogage éventuel) :



apt update && apt upgrade -yapt install build-essential cmake screen git -y


Vérifiez la version du compilateur :



g++ --version


Si vous utilisez des bibliothèques (par exemple, Boost, OpenSSL), installez-les à l'avance :



apt install libboost-all-dev libssl-dev -y


2. Compilation de l'application C++ pour l'environnement serveur



Transférez le code source sur le VPS. Le plus simple est via Git :



git clone https://github.com/votre-repository/project.gitcd project


Créez un dossier de build et effectuez la compilation avec les optimisations pour la production :



mkdir build && cd buildcmake .. -DCMAKE_BUILD_TYPE=Releasemake -j$(nproc)


Le flag -j$(nproc) accélère la compilation en utilisant tous les cœurs du processeur. Après une compilation réussie, un fichier exécutable apparaîtra (par exemple, app). Vérifiez son fonctionnement :



./app


Si l'application utilise des fichiers de configuration ou des ressources, copiez-les dans le dossier à côté du binaire ou configurez les chemins dans le code via argv.



3. Configuration du démarrage automatique avec systemd



Pour que l'application démarre au lancement du système et redémarre automatiquement en cas de panne, créez un service systemd.



Créez le fichier /etc/systemd/system/myapp.service :



nano /etc/systemd/system/myapp.service


Insérez le contenu suivant (remplacez les chemins par les vôtres) :



[Unit]Description=My C++ ApplicationAfter=network.target

[Service]ExecStart=/root/project/build/appWorkingDirectory=/root/project/buildRestart=alwaysRestartSec=5User=rootGroup=rootEnvironment="APP_ENV=production"

[Install]WantedBy=multi-user.target


Explication des paramètres :

  • Restart=always — redémarrage en cas de toute terminaison (sauf arrêt via systemctl stop).
  • RestartSec=5 — pause de 5 secondes avant le redémarrage.
  • Environment — transmission des variables d'environnement (par exemple, pour la configuration).


Activez et démarrez le service :



systemctl daemon-reloadsystemctl enable myappsystemctl start myapp


Vérifiez le statut :



systemctl status myapp


Vous devriez voir active (running). Si l'application plante — systemd la relancera automatiquement après 5 secondes.



4. Configuration de Nginx comme proxy inverse (optionnel)



Si votre application C++ écoute sur HTTP (par exemple, une API REST sur le port 8080), il est utile de placer Nginx devant elle pour la terminaison SSL, l'équilibrage de charge et les fichiers statiques.



Installez Nginx :



apt install nginx -y


Créez une configuration pour votre domaine (ou IP) dans /etc/nginx/sites-available/myapp :



server {    listen 80;    server_name your-domain.com;

location / { proxy_pass http://127.0.0.1:8080; proxy_set_header H

Blogs

Book Recommendations