نشر تطبيق Swift على VPS: دليل خطوة بخطوة

مدرب بايثون أونلاين للمبتدئين

تعلم Python بسهولة دون إرهاق نظري. حل مهام عملية مع التحقق التلقائي واكتب الكود مباشرة في المتصفح.

ابدأ الدورة

نشر تطبيق Swift على VPS: دليل خطوة بخطوة

تطوير تطبيقات الخادم باستخدام Swift وإطار العمل Vapor يكتسب شعبية متزايدة. ومع ذلك، بعد كتابة الكود، يطرح السؤال: كيف ننشر تطبيق Swift على خادم بعيد؟ في هذه المقالة، سنشرح العملية الكاملة لنشر تطبيق Swift على VPS (Ubuntu 22.04) — بدءًا من تثبيت المكونات الضرورية وصولاً إلى إعداد reverse proxy والتشغيل في وضع الإنتاج.



1. إعداد الخادم وتثبيت Swift

أولاً، نتصل بـ VPS عبر SSH ونحدث قاعدة الحزم:

sudo apt update && sudo apt upgrade -y

يتطلب Swift تبعيات للبناء. نقوم بتثبيتها:

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

ثم نقوم بتنزيل وتثبيت Swift لنظام Ubuntu. وقت كتابة هذه المقالة، الإصدار الحالي هو 5.9. نقوم بتحميل الأرشيف:

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

نقوم بفك الضغط ونقل المجلد إلى /usr/share:

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

نضيف Swift إلى PATH. افتح ~/.bashrc:

nano ~/.bashrc

أضف السطر التالي في نهاية الملف:

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

طبق التغييرات:

source ~/.bashrc

نتحقق من التثبيت:

swift --version

يجب أن يظهر إصدار Swift 5.9.



2. بناء تطبيق Swift (Vapor) على الخادم

نقوم باستنساخ المستودع الذي يحتوي على التطبيق أو نسخ الملفات عبر SCP. كمثال، سننشئ مشروع Vapor تجريبي:

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

نضيف Vapor إلى Package.swift (مثال لخادم بسيط):

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

ننشئ ملف Sources/myapp/main.swift:

import Vapor

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

نبني المشروع في وضع release:

swift build -c release

بعد البناء، سيكون الملف الثنائي في .build/release/myapp. ننسخه إلى مكان مناسب:

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


3. إعداد Nginx كـ reverse proxy

سوف يستمع تطبيق Swift على المنفذ 8080، وسيقوم Nginx بتوجيه حركة المرور من المنفذ 80 (أو 443 لـ HTTPS). نقوم بتثبيت Nginx:

sudo apt install nginx -y

ننشئ ملف تكوين لتطبيقنا:

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

محتوى الملف:

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

نقوم بتفعيل التكوين وإعادة تشغيل Nginx:

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

لا تنسَ إعداد سجل DNS من النوع A لنطاقك ليشير إلى عنوان IP الخاص بـ VPS.

المدونات

توصيات الكتب