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 gagne rapidement en popularité grâce au framework Vapor. Cependant, de nombreux développeurs iOS/macOS rencontrent des difficultés lors du transfert d'une application prête vers un serveur distant. Dans ce guide, nous allons détailler comment déployer une application Swift sur un VPS, configurer l'environnement et assurer un fonctionnement stable en environnement de production.



1. Préparation du serveur VPS pour Swift



La première étape consiste à louer un VPS (Ubuntu 22.04 LTS est recommandé) et à s'y connecter via SSH. Après la connexion, effectuez la mise à jour du système :



sudo apt update && sudo apt upgrade -ysudo apt install curl git clang libicu-dev libcurl4-openssl-dev libssl-dev -y


Pour installer Swift sur Linux, utilisez le script officiel d'Apple :



wget https://swift.org/builds/swift-5.9-release/ubuntu2204/swift-5.9-RELEASE/swift-5.9-RELEASE-ubuntu22.04.tar.gztar xzf swift-5.9-RELEASE-ubuntu22.04.tar.gzsudo mv swift-5.9-RELEASE-ubuntu22.04 /usr/share/swiftecho 'export PATH=/usr/share/swift/usr/bin:$PATH' >> ~/.bashrcsource ~/.bashrcswift --version


Vérifiez que Swift est correctement installé — vous devriez voir la version du compilateur.



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



Copiez le code source de votre projet sur le serveur. Le plus pratique est d'utiliser Git :



git clone https://github.com/votre-projet/votre-repertoire.gitcd votre-repertoire


Compilez le projet en mode release. Cela créera un binaire optimisé :



swift build -c releasecp .build/release/Run /usr/local/bin/myapp


Si vous utilisez Vapor, assurez-vous que le fichier configure.swift a le bon port configuré (généralement 8080). Exemple de configuration :



import Vapor

public func configure(_ app: Application) throws { app.http.server.configuration.hostname = "0.0.0.0" app.http.server.configuration.port = 8080 // Enregistrement des routes try routes(app)}


Vérifiez le fonctionnement de l'application en la lançant manuellement :



myapp --env production serve


Si l'application démarre et répond aux requêtes, vous pouvez passer à la configuration du démon.



3. Configuration de systemd pour le démarrage automatique



Pour que l'application démarre automatiquement lors du redémarrage du serveur, créez un service systemd :



sudo nano /etc/systemd/system/swift-app.service


Insérez le code suivant :



[Unit]Description=Swift Vapor ApplicationAfter=network.target

[Service]Type=simpleUser=www-dataWorkingDirectory=/var/www/myappExecStart=/usr/local/bin/myapp --env production serveRestart=on-failureRestartSec=10

[Install]WantedBy=multi-user.target


Enregistrez le fichier et activez le service :



sudo systemctl daemon-reloadsudo systemctl enable swift-appsudo systemctl start swift-appsudo systemctl status swift-app


Si le statut affiche active (running) — tout fonctionne.



4. Configuration de Nginx comme reverse proxy



Pour un environnement de production, il est recommandé d'utiliser Nginx pour proxyer les requêtes vers l'application Swift. Cela assure l'équilibrage de charge et le support SSL :



sudo apt install nginx -ysudo nano /etc/nginx/sites-available/swift-app


Exemple de configuration :



server {    listen 80;    server_name votre-domaine.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; }

location /static/ { root /var/www/myapp/Public; expires 3

Blogs

Book Recommendations