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

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

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

ابدأ الدورة

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

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



1. تحضير الخادم والبيئة

قبل تحميل الكود، يجب تحضير VPS. سنستخدم Ubuntu 22.04 LTS. اتصل بالخادم عبر SSH:

ssh root@your-server-ip

قم بتحديث الحزم وتثبيت المكونات الضرورية:

sudo apt update && sudo apt upgrade -ysudo apt install openjdk-17-jdk git nginx certbot python3-certbot-nginx -y

تحقق من إصدار Java:

java -version

الآن سننشئ مستخدمًا للتطبيق (تشغيل العمليات من root غير آمن):

sudo useradd -m -s /bin/bash kotlinappsudo usermod -aG sudo kotlinappsu - kotlinapp

تأكد من أن المستخدم يمكنه تشغيل Java.



2. بناء وتحميل تطبيق Kotlin

سننظر في إطارين شائعين: Ktor و Spring Boot. كلاهما يتم بناؤهما في ملف JAR قابل للتنفيذ. مثال لـ Ktor:

// build.gradle.kts (مقتطف)plugins {    kotlin("jvm") version "1.9.22"    application    id("io.ktor.plugin") version "2.3.7"}

application { mainClass.set("com.example.ApplicationKt")}

ktor { fatJar { archiveFileName.set("myapp.jar") }}

قم ببناء fat JAR محليًا:

./gradlew buildFatJar

قم بتحميل JAR إلى الخادم عبر SCP (نفذ على جهازك المحلي):

scp build/libs/myapp.jar kotlinapp@your-ip:/home/kotlinapp/app/

على الخادم، أنشئ الهيكل:

mkdir -p /home/kotlinapp/app/logs


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

لكي يعمل التطبيق تلقائيًا عند بدء تشغيل الخادم ويعاد تشغيله عند الأعطال، سننشئ خدمة systemd. أنشئ ملف /etc/systemd/system/kotlinapp.service:

sudo nano /etc/systemd/system/kotlinapp.service

ألصق التكوين التالي:

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

[Service]User=kotlinappGroup=kotlinappWorkingDirectory=/home/kotlinapp/appExecStart=/usr/bin/java -jar myapp.jarRestart=alwaysRestartSec=10StandardOutput=append:/home/kotlinapp/app/logs/out.logStandardError=append:/home/kotlinapp/app/logs/err.logEnvironment="PORT=8080"

[Install]WantedBy=multi-user.target

قم بتمكين وبدء الخدمة:

sudo systemctl daemon-reloadsudo systemctl enable kotlinappsudo systemctl start kotlinapp

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

sudo systemctl status kotlinapp

يمكن عرض السجلات باستخدام الأمر:

journalctl -u kotlinapp -f


4. إعداد Nginx و HTTPS (SSL)

سيقوم الخادم الوكيل Nginx بتوجيه الطلبات من المنفذ 80/443 إلى المنفذ 8080 الخاص بتطبيق Kotlin الخاص بك. أنشئ التكوين:

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

مثال على التكوين:

server {    listen 80;    server_name yourdomain.com www.yourdomain.com;

location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }}

قم بتفعيل الموقع والحصول على شهادة SSL:

sudo ln -s /etc/ngin                

المدونات

توصيات الكتب