Bereitstellung einer Swift-App auf einem VPS: Schritt-für-Schritt-Anleitung

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Bereitstellung einer Swift-App auf einem VPS: Schritt-für-Schritt-Anleitung

Die Entwicklung von Serveranwendungen in Swift mit dem Framework Vapor gewinnt an Popularität. Nachdem der Code geschrieben ist, stellt sich jedoch die Frage: Wie hoste ich eine Swift-Anwendung auf einem Remote-Server? In diesem Artikel werden wir den gesamten Bereitstellungsprozess einer Swift-Anwendung auf einem VPS (Ubuntu 22.04) durchgehen – von der Installation der erforderlichen Komponenten bis zur Konfiguration eines Reverse Proxy und dem Start im Produktionsmodus.



1. Servervorbereitung und Installation von Swift

Zuerst verbinden wir uns per SSH mit dem VPS und aktualisieren die Paketdatenbank:

sudo apt update && sudo apt upgrade -y

Swift benötigt Abhängigkeiten für die Kompilierung. Wir installieren sie:

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

Anschließend laden wir Swift für Ubuntu herunter und installieren es. Zum Zeitpunkt der Erstellung dieses Artikels ist Version 5.9 aktuell. Wir laden das Archiv herunter:

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

Wir entpacken es und verschieben es nach /usr/share:

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

Wir fügen Swift zum PATH hinzu. Öffnen Sie ~/.bashrc:

nano ~/.bashrc

Fügen Sie die folgende Zeile am Ende der Datei hinzu:

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

Wenden Sie die Änderungen an:

source ~/.bashrc

Wir überprüfen die Installation:

swift --version

Es sollte die Swift-Version 5.9 angezeigt werden.



2. Kompilieren der Swift-Anwendung (Vapor) auf dem Server

Wir klonen das Repository mit der Anwendung oder kopieren die Dateien per SCP. Als Beispiel erstellen wir ein Testprojekt mit Vapor:

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

Wir fügen Vapor zu Package.swift hinzu (Beispiel für einen minimalen Server):

// 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") ]) ])

Wir erstellen die Datei Sources/myapp/main.swift:

import Vapor

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

Wir kompilieren das Projekt im Release-Modus:

swift build -c release

Nach der Kompilierung befindet sich die Binärdatei in .build/release/myapp. Wir kopieren sie an einen geeigneten Ort:

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


3. Konfiguration von Nginx als Reverse Proxy

Die Swift-Anwendung wird auf Port 8080 lauschen, und Nginx wird den Datenverkehr von Port 80 (oder 443 für HTTPS) weiterleiten. Wir installieren Nginx:

sudo apt install nginx -y

Wir erstellen eine Konfigurationsdatei für unsere Anwendung:

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

Inhalt der Datei:

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; }}

Wir aktivieren die Konfiguration und starten Nginx neu:

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

Vergessen Sie nicht, einen DNS-A-Eintrag für Ihre Domain zu konfigurieren, der auf die IP-Adresse des VPS verweist.

Blogs

Buchempfehlungen