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

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

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

ابدأ الدورة

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



لقد كتبت تطبيقًا رائعًا بلغة Kotlin (Ktor، Spring Boot أو مجرد خدمة وحدة تحكم)، والآن تحتاج إلى تشغيله على خادم حقيقي. في هذه المقالة، سنشرح دورة النشر الكاملة لتطبيق Kotlin على VPS: من شراء الخادم وإعداد SSH إلى التشغيل عبر systemd وربط النطاق مع HTTPS. جميع الأمثلة عملية ومُختبرة على Ubuntu 22.04.



1. إعداد VPS والاتصال



أولاً، استأجر VPS (على سبيل المثال، من Timeweb أو Selectel أو DigitalOcean). الحد الأدنى من المتطلبات: 1 vCPU، 1 GB RAM، 20 GB SSD. نظام التشغيل: Ubuntu 22.04 LTS.



بعد الحصول على عنوان IP وكلمة مرور root، اتصل عبر SSH:



ssh root@your_server_ip


قم فورًا بتحديث النظام وإنشاء مستخدم غير مميز (العمل كـ root ممارسة سيئة):



apt update && apt upgrade -yadduser kotlinuserusermod -aG sudo kotlinusersu - kotlinuser


قم بإعداد مفاتيح SSH للدخول الآمن والمريح:



ssh-keygen -t ed25519 -C "your_email@example.com"ssh-copy-id kotlinuser@your_server_ip


الآن، قم بتعطيل الدخول بكلمة المرور في /etc/ssh/sshd_config (السطر PasswordAuthentication no) وأعد تشغيل SSH: sudo systemctl restart sshd.



2. تثبيت Java (JRE/JDK) وبناء التطبيق



تطبيقات Kotlin تعمل على JVM. قم بتثبيت OpenJDK 17 أو 21 (موصى به للمشاريع الحديثة):



sudo apt install openjdk-17-jdk -yjava -version


الآن، على جهاز الكمبيوتر المحلي الخاص بك (حيث يتم التطوير)، قم ببناء التطبيق في ملف JAR. بالنسبة لـ Gradle (Ktor أو Spring Boot):



./gradlew clean build


سيكون ملف JAR الجاهز في build/libs/. على سبيل المثال، myapp-1.0.0.jar. قم بتحميله إلى الخادم:



scp build/libs/myapp-1.0.0.jar kotlinuser@your_server_ip:~/app/


قم بإنشاء هيكل المجلدات على الخادم:



mkdir -p ~/app/logs ~/app/config


ضع ملفات التكوين (application.conf، application.yml) في ~/app/config/. تحقق من أن التطبيق يبدأ يدويًا:



cd ~/appjava -jar myapp-1.0.0.jar --spring.config.location=file:./config/


إذا كان كل شيء يعمل، انتقل إلى التشغيل التلقائي.



3. إعداد systemd للتشغيل التلقائي



للتأكد من أن التطبيق يبدأ تلقائيًا بعد إعادة تشغيل الخادم ولا يتعطل عند حدوث أخطاء، سنقوم بإنشاء خدمة systemd.



قم بإنشاء ملف /etc/systemd/system/kotlin-app.service:



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


ألصق المحتوى التالي (استبدل المسارات بمساراتك الخاصة):



[Unit]Description=Kotlin Application ServiceAfter=network.target

[Service]Type=simpleUser=kotlinuserWorkingDirectory=/home/kotlinuser/appExecStart=/usr/bin/java -jar /home/kotlinuser/app/myapp-1.0.0.jar --spring.config.location=file:/home/kotlinuser/app/config/Restart=on-failureRestartSec=10StandardOutput=append:/home/kotlinuser/app/logs/app.logStandardError=append:/home/kotlinuser/app/logs/error.log

[Install]WantedBy=multi-user.target


شرح المعلمات الرئيسية:

  • User — المستخدم الذي سيتم التشغيل باسمه (وليس root)؛
  • ExecStart — أمر التشغيل الكامل مع تحديد ملف التكوين؛
  • Restart=on-failure — إعادة التشغيل التلقائي عند التعطل؛
  • StandardOutput/Error — تسجيل السجلات في الملفات.


نقوم بتفعيل الخدمة:



sudo systemctl daemon-reloadsudo systemctl enable kotlin-app.servicesudo systemctl start kotlin-app.service


نتحقق من الحالة:



sudo systemctl status kotlin-app.service

المدونات

توصيات الكتب