इस प्रोजेक्ट के बारे में

# AliaJS AliaJS एक इन्फ्रास्ट्रक्चर ऑर्केस्ट्रेटर है जो उन छोटी ऑपरेशन-इन्फ्रास्ट्रक्चर टीमों के लिए डिज़ाइन किया गया है जो JavaScript को अपनी परिभाषा और निष्पादन भाषा के रूप में पसंद करती हैं। यह वर्तमान में अल्फा स्थिति में है। ## मुख्य विशेषताएँ - **JavaScript-आधारित इन्फ्रास्ट्रक्चर-एज़-कोड**: JavaScript का उपयोग करके इन्फ्रास्ट्रक्चर ऑर्केस्ट्रेशन को परिभाषित और निष्पादित करें। - **HTTP-प्रथम डिज़ाइन**: HTTP को इनपुट के रूप में लेता है और HTTP के माध्यम से प्रथम-श्रेणी नागरिक के रूप में संवाद कर सकता है। यह एक Express.js सेवा है जो शेल कमांड और Node.js कोड चलाती है। - **ऑल-इन-वन समाधान**: सीक्रेट वॉल्ट एकीकरण (Bitwarden), मॉनिटरिंग और अलर्टिंग सहित सेवा इन्फ्रास्ट्रक्चर का प्रबंधन करता है। - **NGINX-उन्मुख**: NGINX को ध्यान में रखकर बनाया गया है। ## आर्किटेक्चर यह प्रोजेक्ट कई मुख्य मॉड्यूल के साथ संरचित है: - `src/app.js`, `src/main.js`, `src/routes.js`: मुख्य Express.js सर्वर फ़ाइलें। - `src/deploy.js`: चल रही सेवा को अपडेट करता है। - `src/new-image.js`: निर्धारित कार्यों के आधार पर वर्चुअल मशीन इमेज बनाता और बनाए रखता है। - `src/new-instance.js`: `configurations/instances.js` में परिभाषाओं के अनुसार नए इंस्टेंस बनाता है। - `src/renew-certificates.js`: SSL प्रमाणपत्र नवीनीकरण का प्रबंधन करता है। - `src/items.js`: वॉल्ट प्रबंधन उपयोगिताएँ। - `src/logger.js` और `utils.js`: उपयोगिता कोड। - `templates/`: EJS टेम्पलेट फ़ाइलें। - `configurations/`: इंस्टेंस और इमेज कॉन्फ़िगरेशन परिभाषाएँ। ## शुरुआत करना 1. अपने Bitwarden वॉल्ट के अनुसार `.env` में पर्यावरण चर कॉन्फ़िगर करें। 2. `npm install` और `npm run dev` चलाएँ। ## उपयोग अपने शेल में `ALIAJS_AUTHORIZATION` पर्यावरण चर सेट करें। **चल रही सेवा को अपडेट करें:** ```bash curl -v -N --header "Authorization: ${ALIAJS_AUTHORIZATION}" "https://aliajs-production.rotat.io/deploy?checkout=${CHECKOUT}&service_name=aliajs&tier=production" ``` **नया इंस्टेंस शुरू करें:** ```bash curl -v -N --header "Authorization: ${ALIAJS_AUTHORIZATION}" "https://aliajs-production.rotat.io/new-instance?address=1.1.1.1&checkout=${CHECKOUT}&instance_name=aliajs-production&replace=false" ``` new-instance के लिए क्वेरी पैरामीटर: - `address`: क्लाउड प्रदाता से स्थायी IP का अनुरोध करने के लिए `allocate`, या एक विशिष्ट IP। - `ephemeral`: एक अद्वितीय DNS के साथ नया अल्पकालिक इंस्टेंस बनाएँ (डिफ़ॉल्ट `false`)। - `exclude`: ऑपरेशन प्रकारों को फ़िल्टर करें (जैसे, `exclude=backup`)। - `replace`: वर्तमान चल रहे इंस्टेंस को बदलें (डिफ़ॉल्ट `false`)। - `target`: विशिष्ट ऑपरेशन प्रकारों तक फ़िल्टर करें (जैसे, `target=initial&target=restore`)। ## सीमाएँ - बड़ी ऑपरेशन-इन्फ्रास्ट्रक्चर टीमों के लिए अभिप्रेत नहीं है। - अभी तक किसी समुदाय द्वारा अच्छी तरह समर्थित नहीं है। यह प्रोजेक्ट प्रारंभिक विकास में है और महत्वपूर्ण रूप से बदल सकता है।