Kotlin एप्लिकेशन को VPS पर डिप्लॉय करना: संपूर्ण गाइड

शुरुआती लोगों के लिए ऑनलाइन Python प्रशिक्षक

Python आसानी से सीखें बिना सिद्धांत के बोझ के। स्वचालित जांच के साथ व्यावहारिक कार्य हल करें और ब्राउज़र में सीधे कोड लिखें।

पाठ्यक्रम शुरू करें

परिचय: Kotlin एप्लिकेशन को डिप्लॉय करने की विशेष आवश्यकता क्यों है

\n

Kotlin में डेवलपमेंट सफलता का केवल आधा हिस्सा है। दूसरा आधा हिस्सा है आपके एप्लिकेशन को रिमोट सर्वर पर सही तरीके से डिप्लॉय (तैनात) करना। इस चरण के बिना, आपका कोड सिर्फ एक लोकल प्रोजेक्ट बनकर रह जाएगा, जो उपयोगकर्ताओं के लिए उपलब्ध नहीं होगा।

\n

इस गाइड में, हम Kotlin एप्लिकेशन को VPS (वर्चुअल प्राइवेट सर्वर) पर डिप्लॉय करने की पूरी प्रक्रिया को समझेंगे। आप सीखेंगे कि प्रोजेक्ट को एक्जीक्यूटेबल JAR फ़ाइल में कैसे बनाएं, सर्वर एनवायरनमेंट को कैसे कॉन्फ़िगर करें, एप्लिकेशन को एक सर्विस के रूप में कैसे चलाएं और इसके स्थिर संचालन को कैसे सुनिश्चित करें। यह लेख उन डेवलपर्स के लिए है जिन्हें Kotlin और Linux का बुनियादी ज्ञान है।

\n\n

1. प्रोजेक्ट तैयार करना और JAR फ़ाइल बनाना

\n

सर्वर पर कोड अपलोड करने से पहले, एप्लिकेशन को एक आर्टिफैक्ट में बदलना आवश्यक है। Spring Boot या Ktor का उपयोग करके लिखे गए Kotlin प्रोजेक्ट्स के लिए, मानक फॉर्मेट JAR फ़ाइल (Java Archive) है।

\n\n

1.1. build.gradle.kts को कॉन्फ़िगर करना

\n

सुनिश्चित करें कि आपकी 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

सफल बिल्ड के बाद, build/libs/ डायरेक्टरी में app-0.0.1-SNAPSHOT.jar फ़ाइल दिखाई देगी (नाम कॉन्फ़िगरेशन पर निर्भर करता है)। इसे अपने लोकल कंप्यूटर पर कॉपी करें।

\n
महत्वपूर्ण: Ktor एप्लिकेशन के लिए, सुनिश्चित करें कि src/main/resources/application.conf फ़ाइल में सही पोर्ट (आमतौर पर 8080) और ऑपरेशन मोड सेट हो।
\n\n

2. VPS सर्वर को कॉन्फ़िगर करना

\n

डिप्लॉयमेंट के लिए, हमें Ubuntu 22.04 LTS OS वाले VPS की आवश्यकता है। मान लिया जाता है कि आपके पास SSH एक्सेस और सुपरयूज़र (sudo) अधिकार हैं।

\n\n

2.1. Java (JRE) इंस्टॉल करना

\n

Kotlin JVM बाइट-कोड में कंपाइल होता है, इसलिए सर्वर पर Java Runtime Environment (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

लोकल मशीन से VPS पर फ़ाइल कॉपी करने के लिए SCP का उपयोग करें:

\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 Unit फ़ाइल बनाना

\n

सर्विस फ़ाइल बनाएं:

\n
sudo 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\n

3.3. सर्विस को सक्षम और शुरू करना

\n

Systemd को रीलोड करें और सर्विस को सक्षम करें:

\n
sudo systemctl daemon-reload\nsudo systemctl enable kotlin-app.service\nsudo systemctl start kotlin-app.service
\n

सर्विस की स्थिति जांचें:

\n
sudo systemctl status kotlin-app.service
\n\n

4. Nginx को रिवर्स प्रॉक्सी के रूप में सेटअप करना

\n

प्रोडक्शन एनवायरनमेंट में, एप्लिकेशन को सीधे इंटरनेट पर एक्सपोज़ करने के बजाय Nginx को रिवर्स प्रॉक्सी के रूप में उपयोग करना बेहतर है। यह लोड बैलेंसिंग, SSL टर्मिनेशन और स्टैटिक फ़ाइल सर्विंग जैसी सुविधाएं प्रदान करता है।

\n\n

4.1. Nginx इंस्टॉल करना

\n
sudo apt install nginx -y\nsudo systemctl start nginx\nsudo systemctl enable nginx
\n\n

4.2. Nginx कॉन्फ़िगरेशन फ़ाइल बनाना

\n

एक नई कॉन्फ़िगरेशन फ़ाइल बनाएं:

\n
sudo nano /etc/nginx/sites-available/kotlin-app
\n

निम्न सामग्री डालें:

\n
server {\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\n

4.3. कॉन्फ़िगरेशन को सक्षम करना

\n
sudo 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 रिवर्स प्रॉक्सी को कवर किया। अब आप अपने एप्लिकेशन को प्रोडक्शन में चलाने के लिए तैयार हैं।

ब्लॉग

पुस्तक अनुशंसाएँ