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

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

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

ابدأ الدورة

مقدمة: لماذا يتطلب نشر تطبيق Kotlin نهجًا خاصًا

\n

التطوير باستخدام Kotlin هو نصف النجاح فقط. النصف الآخر هو النشر الصحيح (التوزيع) لتطبيقك على خادم بعيد. بدون هذه المرحلة، سيبقى كودك مجرد مشروع محلي، غير متاح للمستخدمين.

\n

في هذا الدليل، سنقوم بتحليل الدورة الكاملة لنشر تطبيق Kotlin على VPS (خادم خاص افتراضي). ستتعلم كيفية بناء المشروع في ملف JAR قابل للتنفيذ، وإعداد بيئة الخادم، وتشغيل التطبيق كخدمة، وضمان عمله المستقر. المقالة موجهة للمطورين الذين لديهم بالفعل معرفة أساسية بـ Kotlin و Linux.

\n\n

1. تحضير المشروع وبناء ملف JAR

\n

قبل تحميل الكود إلى الخادم، يجب بناء التطبيق في قطعة أثرية واحدة. لمشاريع Kotlin المكتوبة باستخدام Spring Boot أو Ktor، التنسيق القياسي هو ملف JAR (أرشيف Java).

\n\n

1.1. إعداد ملف build.gradle.kts

\n

تأكد من وجود إضافة (plugin) في ملف build.gradle.kts الخاص بك لبناء JAR قابل للتنفيذ. بالنسبة لـ Spring Boot، يبدو الأمر كالتالي:

\n
plugins {\n    kotlin("jvm") version "1.9.22"\n    id("org.springframework.boot") version "3.2.2"\n    id("io.spring.dependency-management") version "1.1.4"\n}\n\ndependencies {\n    implementation("org.springframework.boot:spring-boot-starter-web")\n    implementation("com.fasterxml.jackson.module:jackson-module-kotlin")\n}\n
\n

بالنسبة لـ Ktor الخالص (بدون Spring)، استخدم الإضافة application:

\n
plugins {\n    kotlin("jvm") version "1.9.22"\n    application\n}\n\napplication {\n    mainClass.set("com.example.ApplicationKt")\n}\n
\n\n

1.2. بناء المشروع

\n

نفذ أمر البناء في المجلد الجذر للمشروع:

\n
./gradlew clean build
\n

بعد البناء الناجح، سيظهر ملف app-0.0.1-SNAPSHOT.jar في الدليل build/libs/ (الاسم يعتمد على التكوين). انسخه إلى جهاز الكمبيوتر المحلي الخاص بك.

\n
هام: بالنسبة لتطبيقات Ktor، تأكد من أن الملف src/main/resources/application.conf يحتوي على المنفذ الصحيح (عادةً 8080) ووضع التشغيل.
\n\n

2. إعداد خادم VPS

\n

للنشر، سنحتاج إلى VPS مثبت عليه نظام تشغيل Ubuntu 22.04 LTS. من المفترض أن لديك وصول عبر SSH وصلاحيات المستخدم المتميز (sudo).

\n\n

2.1. تثبيت Java (JRE)

\n

يتم تجميع Kotlin إلى كود بايت JVM، لذلك يجب تثبيت بيئة تشغيل Java (JRE) الإصدار 17 أو أعلى على الخادم:

\n
sudo apt update\nsudo apt install openjdk-17-jre -y\njava -version
\n\n

2.2. إنشاء مستخدم للتطبيق

\n

لأسباب أمنية، لا يُنصح بتشغيل التطبيق كمستخدم root. سنقوم بإنشاء مستخدم منفصل:

\n
sudo useradd -m -s /bin/bash kotlinapp\nsudo passwd kotlinapp
\n\n

2.3. تحميل ملف JAR إلى الخادم

\n

استخدم SCP لنسخ الملف من الجهاز المحلي إلى VPS:

\n
scp build/libs/app-0.0.1-SNAPSHOT.jar kotlinapp@your-server-ip:/home/kotlinapp/app.jar
\n\n

3. تشغيل التطبيق وإعداد Systemd

\n

لكي يبدأ التطبيق تلقائيًا عند بدء تشغيل النظام ولا يتوقف عند فقدان اتصال SSH، سنقوم بإعداده كخدمة Systemd.

\n\n

3.1. التشغيل اليدوي (للتحقق)

\n

اتصل بالخادم كمستخدم kotlinapp ونفذ:

\n
cd /home/kotlinapp\njava -jar app.jar
\n

إذا بدأ التطبيق واستجاب على المنفذ 8080، انتقل إلى الخطوة التالية. أوقف العملية (Ctrl+C).

\n\n

3.2. إنشاء ملف وحدة Systemd

\n

أنشئ ملف الخدمة:

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

ألصق المحتوى التالي:

\n
[Unit]\nDescription=Kotlin Application Service\nAfter=net                

المدونات

توصيات الكتب