Déploiement d'une application Swift 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

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

Le développement d'applications serveur en Swift avec le framework Vapor gagne en popularité. Cependant, après avoir écrit le code, la question se pose : comment déployer une application Swift sur un serveur distant ? Dans cet article, nous allons détailler le processus complet de déploiement d'une application Swift sur un VPS (Ubuntu 22.04) — de l'installation des composants nécessaires à la configuration du reverse proxy et au lancement en mode production.



1. Préparation du serveur et installation de Swift

Premièrement, connectez-vous au VPS via SSH et mettez à jour la base de paquets :

sudo apt update && sudo apt upgrade -y

Swift nécessite des dépendances pour la compilation. Installez-les :

sudo apt install clang libicu-dev libcurl4-openssl-dev libssl-dev python3 pkg-config -y

Ensuite, téléchargez et installez Swift pour Ubuntu. Au moment de la rédaction de cet article, la version 5.9 est la plus récente. Téléchargez l'archive :

wget https://download.swift.org/swift-5.9-release/ubuntu2204/swift-5.9-RELEASE/swift-5.9-RELEASE-ubuntu22.04.tar.gz

Décompressez et déplacez dans /usr/share :

tar xzf swift-5.9-RELEASE-ubuntu22.04.tar.gzsudo mv swift-5.9-RELEASE-ubuntu22.04 /usr/share/swift

Ajoutez Swift au PATH. Ouvrez ~/.bashrc :

nano ~/.bashrc

Ajoutez la ligne à la fin du fichier :

export PATH="/usr/share/swift/usr/bin:$PATH"

Appliquez les modifications :

source ~/.bashrc

Vérifiez l'installation :

swift --version

La version Swift 5.9 doit s'afficher.



2. Compilation de l'application Swift (Vapor) sur le serveur

Clonez le dépôt de l'application ou copiez les fichiers via SCP. Pour l'exemple, créons un projet Vapor de test :

mkdir ~/myapp && cd ~/myappswift package init --type executable

Ajoutez Vapor dans Package.swift (exemple de serveur minimal) :

// swift-tools-version:5.9import PackageDescription

let package = Package( name: "myapp", platforms: [.macOS(.v13)], dependencies: [ .package(url: "https://github.com/vapor/vapor.git", from: "4.89.0") ], targets: [ .executableTarget(name: "myapp", dependencies: [ .product(name: "Vapor", package: "vapor") ]) ])

Créez le fichier Sources/myapp/main.swift :

import Vapor

let app = try Application(.detect())app.get { req in return "Hello, Swift on VPS!"}try app.run()

Compilez le projet en mode release :

swift build -c release

Après la compilation, le binaire se trouvera dans .build/release/myapp. Copiez-le dans un emplacement pratique :

cp .build/release/myapp /usr/local/bin/myapp


3. Configuration de Nginx comme reverse proxy

L'application Swift écoutera sur le port 8080, et Nginx redirigera le trafic depuis le port 80 (ou 443 pour HTTPS). Installez Nginx :

sudo apt install nginx -y

Créez un fichier de configuration pour notre application :

sudo nano /etc/nginx/sites-available/myapp

Contenu du fichier :

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

location / { proxy_pass http://127.0.0.1:8080; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; }}

Activez la configuration et redémarrez Nginx :

sudo ln -s /etc/nginx/sites-available/myapp /etc/nginx/sites-enabled/sudo nginx -tsudo systemctl restart nginx

N'oubliez pas de configurer un enregistrement DNS A pour votre domaine pointant vers l'adresse IP du VPS.

Blogs

Book Recommendations