परिचय: VPS पर TypeScript एप्लिकेशन को डिप्लॉय करना सही विकल्प क्यों है
TypeScript में डेवलपमेंट सख्त टाइपिंग और बेहतर कोड पठनीयता के कारण उद्योग का मानक बन गया है। हालांकि, डेवलपमेंट पूरा होने के बाद मुख्य प्रश्न उठता है: प्रोडक्शन सर्वर पर एप्लिकेशन को सही तरीके से कैसे डिप्लॉय करें? VPS (Virtual Private Server) पर TypeScript एप्लिकेशन को डिप्लॉय करना केवल फ़ाइलों को कॉपी करना नहीं है। यह एक प्रक्रिया है जिसमें TypeScript को JavaScript में कंपाइल करना, एनवायरनमेंट सेटअप करना, प्रोसेस मैनेजमेंट और सुरक्षा सुनिश्चित करना शामिल है।
इस लेख में, हम VPS पर TypeScript एप्लिकेशन को डिप्लॉय करने की चरण-दर-चरण प्रक्रिया पर चर्चा करेंगे। आप सीखेंगे कि सर्वर कैसे तैयार करें, बिल्ड कैसे सेटअप करें, PM2 प्रोसेस मैनेजर के साथ एप्लिकेशन कैसे चलाएं और Nginx के माध्यम से इसकी उपलब्धता कैसे सुनिश्चित करें। यह सामग्री उन डेवलपर्स के लिए है जिनके पास पहले से TypeScript में बेसिक एप्लिकेशन (जैसे Express.js या NestJS) है और वे इसे रिमोट सर्वर पर डिप्लॉय करना चाहते हैं।
चरण 1: VPS तैयार करना और आवश्यक सॉफ्टवेयर इंस्टॉल करना
VPS पर TypeScript एप्लिकेशन को डिप्लॉय करने का पहला चरण सर्वर को सेटअप करना है। हम वेब सर्वर के लिए सबसे स्थिर और लोकप्रिय OS के रूप में Ubuntu 22.04 LTS का उपयोग करेंगे।
SSH के माध्यम से सर्वर से कनेक्ट करने के बाद, निम्नलिखित कमांड चलाएं:
# पैकेज अपडेट करेंsudo apt update && sudo apt upgrade -y
# Node.js इंस्टॉल करें (वर्जन 18 या उससे ऊपर)curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -sudo apt install -y nodejs
# वर्जन जांचेंnode -vnpm -v
# Git इंस्टॉल करेंsudo apt install git -y
# प्रोसेस मैनेजर PM2 इंस्टॉल करेंnpm install -g pm2ध्यान दें: TypeScript को सर्वर पर ग्लोबली इंस्टॉल करने की आवश्यकता नहीं है। इसका उपयोग केवल प्रोजेक्ट बिल्ड चरण में किया जाएगा, जो लोकल मशीन पर या CI/CD स्क्रिप्ट के माध्यम से सर्वर पर किया जा सकता है।
बेसिक फ़ायरवॉल सेटअप करने की भी सिफारिश की जाती है:
sudo ufw allow OpenSSHsudo ufw allow 'Nginx Full'sudo ufw enableचरण 2: प्रोजेक्ट क्लोन करना और TypeScript बिल्ड करना
अब जब सर्वर तैयार है, तो TypeScript एप्लिकेशन का कोड ट्रांसफर करें। सबसे सामान्य तरीका Git के माध्यम से रिपॉजिटरी को क्लोन करना है।
# रिपॉजिटरी क्लोन करेंgit clone https://github.com/your-username/your-project.gitcd your-project
# डिपेंडेंसी इंस्टॉल करेंnpm install
# TypeScript को JavaScript में कंपाइल करेंnpx tscमहत्वपूर्ण बिंदु: सुनिश्चित करें कि tsconfig.json फ़ाइल में आउटपुट फ़ोल्डर सही ढंग से निर्दिष्ट है। आमतौर पर यह dist या build होता है:
{ "compilerOptions": { "target": "ES2020", "module": "commonjs", "outDir": "./dist", "rootDir": "./src", "strict": true, "esModuleInterop": true }, "include": ["src/**/*"], "exclude": ["node_modules", "dist"]}सफल कंपाइलेशन के बाद, dist फ़ोल्डर में JavaScript कोड तैयार हो जाएगा जो चलाने के लिए तैयार है। जांचें कि एप्लिकेशन सही ढंग से चल रहा है:
node dist/index.jsचरण 3: PM2 के माध्यम से चलाना और ऑटो-स्टार्ट सेटअप करना
प्रोडक्शन के लिए node के माध्यम से सरल चलाना उपयुक्त नहीं है — SSH कनेक्शन टूटने पर प्रक्रिया रुक जाएगी। VPS पर TypeScript एप्लिकेशन को डिप्लॉय करने के लिए PM2 का उपयोग करें, जो निम्नलिखित सुविधाएं प्रदान करता है:
- क्रैश होने पर ऑटोमैटिक रीस्टार्ट
- एरर और stdout लॉगिंग
- क्लस्टरिंग (एकाधिक CPU कोर पर चलाना)
प्रोजेक्ट की रूट में ecosystem.config.js फ़ाइल बनाएं:
module.exports = { apps: [{ name: 'my-ts-app', script: './dist/index.js', instances: 'max', exec_mode: 'cluster', env: { NODE_ENV: 'production', PORT: 3000 }, error_file: './logs/err.log', out_file: './logs/out.log', merge_logs: true }]};PM2 के माध्यम से एप्लिकेशन चलाएं:
pm2 start ecosystem.config.jspm2 savepm2