نشر تطبيق Swift على VPS: دليل خطوة بخطوة
تطوير تطبيقات الخادم باستخدام Swift يكتسب شعبية متزايدة بفضل إطار العمل Vapor. ومع ذلك، يواجه العديد من مطوري iOS/macOS صعوبات عند نقل التطبيق الجاهز إلى خادم بعيد. في هذا الدليل، سنشرح بالتفصيل كيفية نشر تطبيق Swift على VPS، وإعداد البيئة، وضمان تشغيل مستقر في بيئة الإنتاج.
1. إعداد خادم VPS لـ Swift
الخطوة الأولى هي استئجار VPS (يوصى باستخدام Ubuntu 22.04 LTS) والاتصال به عبر SSH. بعد تسجيل الدخول، قم بتحديث النظام:
sudo apt update && sudo apt upgrade -ysudo apt install curl git clang libicu-dev libcurl4-openssl-dev libssl-dev -yلتثبيت Swift على Linux، استخدم النص الرسمي من 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تحقق من تثبيت Swift بشكل صحيح — يجب أن ترى إصدار المترجم.
2. بناء تطبيق Swift (Vapor) على الخادم
انسخ الكود المصدري لمشروعك إلى الخادم. الأسهل هو استخدام Git:
git clone https://github.com/مشروعك/مستودعك.gitcd مستودعكقم ببناء المشروع في وضع الإصدار. هذا سينشئ ملفًا ثنائيًا محسنًا:
swift build -c releasecp .build/release/Run /usr/local/bin/myappإذا كنت تستخدم Vapor، تأكد من ضبط المنفذ الصحيح في ملف configure.swift (عادةً 8080). مثال على التكوين:
import Vapor
public func configure(_ app: Application) throws { app.http.server.configuration.hostname = "0.0.0.0" app.http.server.configuration.port = 8080 // تسجيل المسارات try routes(app)}تحقق من عمل التطبيق عن طريق تشغيله يدويًا:
myapp --env production serveإذا تم تشغيل التطبيق واستجاب للطلبات، يمكنك الانتقال إلى إعداد الخدمة الخلفية.
3. إعداد systemd للتشغيل التلقائي
لكي يتم تشغيل التطبيق تلقائيًا عند إعادة تشغيل الخادم، قم بإنشاء خدمة systemd:
sudo nano /etc/systemd/system/swift-app.serviceأدخل الكود التالي:
[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احفظ الملف وقم بتفعيل الخدمة:
sudo systemctl daemon-reloadsudo systemctl enable swift-appsudo systemctl start swift-appsudo systemctl status swift-appإذا أظهرت الحالة active (running) — فكل شيء يعمل.
4. إعداد Nginx كوكيل عكسي
لبيئة الإنتاج، يوصى باستخدام Nginx لتوجيه الطلبات إلى تطبيق Swift. هذا يضمن موازنة الحمل ودعم SSL:
sudo apt install nginx -ysudo nano /etc/nginx/sites-available/swift-appمثال على التكوين:
server { listen 80; server_name نطاقك.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