परिचय: Kotlin एप्लिकेशन को डिप्लॉय करने की विशेष आवश्यकता क्यों है
\nKotlin में डेवलपमेंट सफलता का केवल आधा हिस्सा है। दूसरा आधा हिस्सा है आपके एप्लिकेशन को रिमोट सर्वर पर सही तरीके से डिप्लॉय (तैनात) करना। इस चरण के बिना, आपका कोड सिर्फ एक लोकल प्रोजेक्ट बनकर रह जाएगा, जो उपयोगकर्ताओं के लिए उपलब्ध नहीं होगा।
\nइस गाइड में, हम Kotlin एप्लिकेशन को VPS (वर्चुअल प्राइवेट सर्वर) पर डिप्लॉय करने की पूरी प्रक्रिया को समझेंगे। आप सीखेंगे कि प्रोजेक्ट को एक्जीक्यूटेबल JAR फ़ाइल में कैसे बनाएं, सर्वर एनवायरनमेंट को कैसे कॉन्फ़िगर करें, एप्लिकेशन को एक सर्विस के रूप में कैसे चलाएं और इसके स्थिर संचालन को कैसे सुनिश्चित करें। यह लेख उन डेवलपर्स के लिए है जिन्हें Kotlin और Linux का बुनियादी ज्ञान है।
\n\n1. प्रोजेक्ट तैयार करना और JAR फ़ाइल बनाना
\nसर्वर पर कोड अपलोड करने से पहले, एप्लिकेशन को एक आर्टिफैक्ट में बदलना आवश्यक है। Spring Boot या Ktor का उपयोग करके लिखे गए Kotlin प्रोजेक्ट्स के लिए, मानक फॉर्मेट JAR फ़ाइल (Java Archive) है।
\n\n1.1. build.gradle.kts को कॉन्फ़िगर करना
\nसुनिश्चित करें कि आपकी build.gradle.kts फ़ाइल में एक्जीक्यूटेबल JAR बनाने के लिए प्लगइन मौजूद है। Spring Boot के लिए यह इस प्रकार दिखता है:
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 प्लगइन का उपयोग करें:
plugins {\n kotlin("jvm") version "1.9.22"\n application\n}\n\napplication {\n mainClass.set("com.example.ApplicationKt")\n}\n\n\n1.2. प्रोजेक्ट बनाना
\nप्रोजेक्ट की रूट डायरेक्टरी में बिल्ड कमांड चलाएं:
\n./gradlew clean build\nसफल बिल्ड के बाद, build/libs/ डायरेक्टरी में app-0.0.1-SNAPSHOT.jar फ़ाइल दिखाई देगी (नाम कॉन्फ़िगरेशन पर निर्भर करता है)। इसे अपने लोकल कंप्यूटर पर कॉपी करें।
src/main/resources/application.conf फ़ाइल में सही पोर्ट (आमतौर पर 8080) और ऑपरेशन मोड सेट हो।2. VPS सर्वर को कॉन्फ़िगर करना
\nडिप्लॉयमेंट के लिए, हमें Ubuntu 22.04 LTS OS वाले VPS की आवश्यकता है। मान लिया जाता है कि आपके पास SSH एक्सेस और सुपरयूज़र (sudo) अधिकार हैं।
\n\n2.1. Java (JRE) इंस्टॉल करना
\nKotlin JVM बाइट-कोड में कंपाइल होता है, इसलिए सर्वर पर Java Runtime Environment (JRE) संस्करण 17 या उससे ऊपर होना अनिवार्य है:
\nsudo apt update\nsudo apt install openjdk-17-jre -y\njava -version\n\n2.2. एप्लिकेशन के लिए यूज़र बनाना
\nसुरक्षा कारणों से, एप्लिकेशन को root यूज़र से चलाने की अनुशंसा नहीं की जाती है। एक अलग यूज़र बनाएं:
\nsudo useradd -m -s /bin/bash kotlinapp\nsudo passwd kotlinapp\n\n2.3. सर्वर पर JAR फ़ाइल अपलोड करना
\nलोकल मशीन से VPS पर फ़ाइल कॉपी करने के लिए SCP का उपयोग करें:
\nscp build/libs/app-0.0.1-SNAPSHOT.jar kotlinapp@your-server-ip:/home/kotlinapp/app.jar\n\n3. एप्लिकेशन चलाना और Systemd सेटअप करना
\nएप्लिकेशन को सिस्टम स्टार्ट होने पर स्वचालित रूप से चलाने और SSH कनेक्शन खोने पर क्रैश न होने के लिए, हम इसे Systemd सर्विस के रूप में कॉन्फ़िगर करेंगे।
\n\n3.1. मैन्युअल रूप से चलाना (जांच के लिए)
\nkotlinapp यूज़र के रूप में सर्वर से कनेक्ट करें और निम्न कमांड चलाएं:
cd /home/kotlinapp\njava -jar app.jar\nयदि एप्लिकेशन चलता है और पोर्ट 8080 पर रिस्पॉन्स करता है, तो अगले चरण पर जाएं। प्रक्रिया को रोकें (Ctrl+C)।
\n\n3.2. Systemd Unit फ़ाइल बनाना
\nसर्विस फ़ाइल बनाएं:
\nsudo nano /etc/systemd/system/kotlin-app.service\nनिम्न सामग्री डालें:
\n[Unit]\nDescription=Kotlin Application Service\nAfter=network.target\n\n[Service]\nUser=kotlinapp\nWorkingDirectory=/home/kotlinapp\nExecStart=/usr/bin/java -jar /home/kotlinapp/app.jar\nRestart=always\nRestartSec=10\n\n[Install]\nWantedBy=multi-user.target\n\n3.3. सर्विस को सक्षम और शुरू करना
\nSystemd को रीलोड करें और सर्विस को सक्षम करें:
\nsudo systemctl daemon-reload\nsudo systemctl enable kotlin-app.service\nsudo systemctl start kotlin-app.service\nसर्विस की स्थिति जांचें:
\nsudo systemctl status kotlin-app.service\n\n4. Nginx को रिवर्स प्रॉक्सी के रूप में सेटअप करना
\nप्रोडक्शन एनवायरनमेंट में, एप्लिकेशन को सीधे इंटरनेट पर एक्सपोज़ करने के बजाय Nginx को रिवर्स प्रॉक्सी के रूप में उपयोग करना बेहतर है। यह लोड बैलेंसिंग, SSL टर्मिनेशन और स्टैटिक फ़ाइल सर्विंग जैसी सुविधाएं प्रदान करता है।
\n\n4.1. Nginx इंस्टॉल करना
\nsudo apt install nginx -y\nsudo systemctl start nginx\nsudo systemctl enable nginx\n\n4.2. Nginx कॉन्फ़िगरेशन फ़ाइल बनाना
\nएक नई कॉन्फ़िगरेशन फ़ाइल बनाएं:
\nsudo nano /etc/nginx/sites-available/kotlin-app\nनिम्न सामग्री डालें:
\nserver {\n listen 80;\n server_name your-domain.com;\n\n location / {\n proxy_pass http://localhost:8080;\n proxy_set_header Host $host;\n proxy_set_header X-Real-IP $remote_addr;\n proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n proxy_set_header X-Forwarded-Proto $scheme;\n }\n}\n\n4.3. कॉन्फ़िगरेशन को सक्षम करना
\nsudo ln -s /etc/nginx/sites-available/kotlin-app /etc/nginx/sites-enabled/\nsudo nginx -t\nsudo systemctl reload nginx\n\nनिष्कर्ष
\nअब आपका Kotlin एप्लिकेशन VPS पर सफलतापूर्वक डिप्लॉय हो गया है और Nginx के माध्यम से एक्सेसिबल है। इस गाइड में, हमने JAR बिल्डिंग, सर्वर सेटअप, Systemd सर्विस और Nginx रिवर्स प्रॉक्सी को कवर किया। अब आप अपने एप्लिकेशन को प्रोडक्शन में चलाने के लिए तैयार हैं।