VPS पर Kotlin एप्लिकेशन का डिप्लॉयमेंट: A से Z तक चरण-दर-चरण
\n\nआपने Kotlin (Ktor, Spring Boot या सिर्फ एक कंसोल सर्विस) में एक शानदार एप्लिकेशन लिखा है, और अब इसे एक वास्तविक सर्वर पर चलाने की आवश्यकता है। इस लेख में, हम VPS पर Kotlin एप्लिकेशन डिप्लॉय करने के पूरे चक्र को कवर करेंगे: सर्वर खरीदने और SSH सेटअप से लेकर systemd के माध्यम से चलाने और HTTPS के साथ डोमेन कनेक्ट करने तक। सभी उदाहरण काम करने वाले हैं, Ubuntu 22.04 पर परीक्षण किए गए हैं।
\n\n1. VPS तैयार करना और कनेक्ट करना
\n\nसबसे पहले, एक VPS किराए पर लें (उदाहरण के लिए, Timeweb, Selectel या DigitalOcean से)। न्यूनतम आवश्यकताएँ: 1 vCPU, 1 GB RAM, 20 GB SSD। ऑपरेटिंग सिस्टम — Ubuntu 22.04 LTS।
\n\nIP पता और रूट पासवर्ड प्राप्त करने के बाद, SSH के माध्यम से कनेक्ट करें:
\n\nssh root@your_server_ip\n\nतुरंत सिस्टम अपडेट करें और एक अनप्रिविलेज्ड यूज़र बनाएँ (रूट के रूप में काम करना खराब प्रैक्टिस है):
\n\napt update && apt upgrade -y\nadduser kotlinuser\nusermod -aG sudo kotlinuser\nsu - kotlinuser\n\nसुविधाजनक और सुरक्षित लॉगिन के लिए SSH कुंजियाँ सेट करें:
\n\nssh-keygen -t ed25519 -C "your_email@example.com"\nssh-copy-id kotlinuser@your_server_ip\n\nअब /etc/ssh/sshd_config में पासवर्ड लॉगिन बंद करें (लाइन PasswordAuthentication no) और SSH को रीस्टार्ट करें: sudo systemctl restart sshd।
2. Java (JRE/JDK) इंस्टॉल करना और एप्लिकेशन बिल्ड करना
\n\nKotlin एप्लिकेशन JVM पर चलते हैं। OpenJDK 17 या 21 इंस्टॉल करें (आधुनिक प्रोजेक्ट्स के लिए अनुशंसित):
\n\nsudo apt install openjdk-17-jdk -y\njava -version\n\nअब अपने स्थानीय कंप्यूटर (जहाँ डेवलपमेंट हो रहा है) पर, एप्लिकेशन को JAR फ़ाइल में बिल्ड करें। Gradle (Ktor या Spring Boot) के लिए:
\n\n./gradlew clean build\n\nतैयार JAR फ़ाइल build/libs/ में होगी। उदाहरण के लिए, myapp-1.0.0.jar। इसे सर्वर पर अपलोड करें:
scp build/libs/myapp-1.0.0.jar kotlinuser@your_server_ip:~/app/\n\nसर्वर पर फ़ोल्डर संरचना बनाएँ:
\n\nmkdir -p ~/app/logs ~/app/config\n\nकॉन्फ़िगरेशन फ़ाइलें (application.conf, application.yml) ~/app/config/ में रखें। जाँचें कि एप्लिकेशन मैन्युअल रूप से शुरू होता है:
cd ~/app\njava -jar myapp-1.0.0.jar --spring.config.location=file:./config/\n\nयदि सब कुछ काम करता है — तो ऑटोमैटिक स्टार्टअप पर जाएँ।
\n\n3. ऑटोस्टार्ट के लिए systemd सेटअप करना
\n\nएप्लिकेशन को सर्वर रीबूट के बाद ऑटोमैटिक रूप से शुरू करने और त्रुटियों पर क्रैश न होने के लिए, हम एक systemd सर्विस बनाएँगे।
\n\nफ़ाइल बनाएँ /etc/systemd/system/kotlin-app.service:
sudo nano /etc/systemd/system/kotlin-app.service\n\nनिम्नलिखित सामग्री डालें (अपने पथों से बदलें):
\n\n[Unit]\nDescription=Kotlin Application Service\nAfter=network.target\n\n[Service]\nType=simple\nUser=kotlinuser\nWorkingDirectory=/home/kotlinuser/app\nExecStart=/usr/bin/java -jar /home/kotlinuser/app/myapp-1.0.0.jar --spring.config.location=file:/home/kotlinuser/app/config/\nRestart=on-failure\nRestartSec=10\nStandardOutput=append:/home/kotlinuser/app/logs/app.log\nStandardError=append:/home/kotlinuser/app/logs/error.log\n\n[Install]\nWantedBy=multi-user.target\n\nमुख्य पैरामीटर की व्याख्या:
\n- \n
- User — किसके द्वारा चलाना है (रूट नहीं); \n
- ExecStart — कॉन्फ़िगरेशन निर्दिष्ट करने के साथ पूर्ण स्टार्ट कमांड; \n
- Restart=on-failure — क्रैश होने पर ऑटोमैटिक रीस्टार्ट; \n
- StandardOutput/Error — फ़ाइलों में लॉगिंग। \n
सर्विस को सक्रिय करें:
\n\nsudo systemctl daemon-reload\nsudo systemctl enable kotlin-app.service\nsudo systemctl start kotlin-app.service\n\nस्थिति जाँचें:
\n\nsudo systemctl status kotlin-app.serviceब्लॉग
पुस्तक अनुशंसाएँ
यह भी पढ़ें