نشر تطبيق Swift على VPS: خطوة بخطوة من الألف إلى الياء

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

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

ابدأ الدورة

نشر تطبيق Swift على VPS: خطوة بخطوة من الألف إلى الياء

\n\n

لم يعد Swift لغة مخصصة لتطوير iOS فقط. بفضل إطار العمل Vapor والدعم الرسمي لنظام Linux، يمكنك إنشاء تطبيقات خادم عالية الأداء بلغة Swift ونشرها على VPS. في هذا الدليل، سنمر بجميع الخطوات من إعداد الخادم إلى تشغيل الإصدار الإنتاجي لتطبيق Swift الخاص بك.

\n\n

1. إعداد VPS وتثبيت Swift

\n\n

للبدء، ستحتاج إلى VPS يعمل بنظام Ubuntu 22.04 LTS (أو 20.04). اتصل عبر SSH وقم بتحديث النظام:

\n\n
ssh root@your-server-ip\napt update && apt upgrade -y
\n\n

قم بتثبيت التبعيات اللازمة لـ Swift:

\n\n
apt install -y curl git build-essential libssl-dev libcurl4-openssl-dev\napt install -y libxml2-dev libicu-dev libsqlite3-dev libz-dev
\n\n

الآن قم بتنزيل وتثبيت Swift لنظام Ubuntu. تحقق من الإصدار الحالي على swift.org. وقت كتابة هذا المقال، الإصدار هو Swift 5.9:

\n\n
cd /opt\nwget https://download.swift.org/swift-5.9-release/ubuntu2204/swift-5.9-RELEASE/swift-5.9-RELEASE-ubuntu22.04.tar.gz\ntar xzf swift-5.9-RELEASE-ubuntu22.04.tar.gz\necho 'export PATH=/opt/swift-5.9-RELEASE-ubuntu22.04/usr/bin:$PATH' >> ~/.bashrc\nsource ~/.bashrc
\n\n

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

\n\n
swift --version
\n\n

يجب أن ترى إصدار Swift 5.9.

\n\n

2. إنشاء وبناء تطبيق Swift/Vapor

\n\n

قم بتثبيت Vapor Toolbox (اختياري ولكنه مفيد):

\n\n
git clone https://github.com/vapor/toolbox.git\ncd toolbox\nswift build -c release\ncp .build/release/vapor /usr/local/bin/
\n\n

لنقم بإنشاء تطبيق Vapor تجريبي. إذا كان لديك مشروع بالفعل، فما عليك سوى نسخه إلى الخادم عبر SCP أو Git.

\n\n
cd ~\nvapor new HelloServer\ncd HelloServer
\n\n

قم بتحرير Sources/App/routes.swift لإضافة نقطة نهاية بسيطة:

\n\n
import Vapor\n\nfunc routes(_ app: Application) throws {\n    app.get { req async in\n        "Hello from Swift on VPS!"\n    }\n    \n    app.get("status") { req async -> HTTPStatus in\n        return .ok\n    }\n}
\n\n

قم ببناء المشروع في وضع الإنتاج:

\n\n
swift build -c release
\n\n

سيظهر الملف الثنائي في .build/release/HelloServer.

\n\n

3. إعداد التشغيل وخدمة systemd

\n\n

لضمان تشغيل التطبيق تلقائيًا بعد إعادة تشغيل الخادم، سنقوم بإنشاء خدمة systemd. أولاً، قم بإنشاء مستخدم للتطبيق (لأغراض الأمان):

\n\n
useradd -m -s /bin/bash swiftuser\nchown -R swiftuser:swiftuser /root/HelloServer
\n\n

قم بإنشاء ملف الخدمة:

\n\n
nano /etc/systemd/system/helloserver.service
\n\n

أدخل المحتوى التالي:

\n\n
[Unit]\nDescription=HelloServer Swift App\nAfter=network.target\n\n[Service]\nType=simple\nUser=swiftuser\nWorkingDirectory=/root/HelloServer\nExecStart=/root/HelloServer/.build/release/HelloServer --host 127.0.0.1 --port 8080\nRestart=on-failure\nRestartSec=5\n\n[Install]\nWantedBy=multi-user.target
\n\n

قم بتشغيل الخدمة:

\n\n
systemctl daemon-reload\nsystemctl enable helloserver\nsystemctl start helloserver\nsystemctl status helloserver
\n\n

تحقق من استجابة التطبيق محليًا:

\n\n
curl http://127.0.0.1:8080
\n\n

4. إعداد Nginx كوكيل عكسي

\n\n

في بيئة الإنتاج، لا يُنصح بفتح المنفذ 8080 مباشرة. سنقوم بتثبيت Nginx وإعداد الوكيل مع SSL (Let's Encrypt).

\n\n
apt install -y nginx certbot python3-certbot-nginx
\n\n

قم بإنشاء تكوين Nginx:

\n\n
nano /etc/nginx/sites-available/helloserver
\n\n

أدخل:

\n\n
server {\n    listen 80;\                

المدونات

توصيات الكتب