# स्टार्टअप सेटिंग

> Portal के Startup टैब में अपने सर्वर की Docker image, install command और startup command कैसे कॉन्फ़िगर करें।

Portal में **Startup** टैब तय करता है कि आपका सर्वर कैसे बनता और शुरू होता है। इसमें तीन मुख्य सेटिंग हैं: **Docker image** (रनटाइम वर्शन), **install command** (डिपेंडेंसी सेटअप), और **startup command** (जो आपकी ऐप लॉन्च करती है)। सर्वर के सही ढंग से काम करने के लिए इन्हें सही रखना ज़रूरी है।

## आप क्या सीखेंगे

- सही Docker image (रनटाइम वर्शन) कैसे चुनें
- install command और startup command में अंतर
- Node.js और Python के सामान्य उदाहरण
- इंटरैक्टिव शेल एक्सेस के लिए Startup टैब कैसे इस्तेमाल करें

---

## Docker image

Daki हर सर्वर को एक Docker कंटेनर के अंदर चलाता है। **Docker image** तय करती है कि उस कंटेनर के अंदर कौन सा प्रोग्रामिंग भाषा वर्शन उपलब्ध होगा।

Startup टैब में image चुनने के लिए एक ड्रॉपडाउन है। इसे हमेशा वही रखें जो आपकी ऐप को चाहिए।

| रनटाइम | उदाहरण images |
| :--- | :--- |
| Node.js | Node.js 22, Node.js 24, Node.js 26 (पुराने वर्शन EOL चिह्नित) |
| Python | Python 3.11 से Python 3.15 तक (पुराने वर्शन EOL चिह्नित) |
| Java | Java 17, Java 21 |
| अन्य | Rust, C#, Lua और अन्य (पेड प्लान) |

> **चेतावनी:** गलत रनटाइम वर्शन चुनने से स्टार्टअप विफल हो जाता है। अगर आपके प्रोजेक्ट को Node.js 22 की सुविधाएँ चाहिए, तो Node.js 18 न चुनें।

Node.js और Python images **Daki Yolks** हैं, जो जब भी कोई सुरक्षा सुधार जारी होता है तब अपने-आप दोबारा बनती हैं; नवीनतम पाने के लिए अपना सर्वर रीस्टार्ट करें। **EOL** चिह्नित images को अब सुरक्षा अपडेट नहीं मिलते। देखें [Eggs और Docker Images](https://daki.cc/hi/wiki/guides/eggs-and-images#daki-yolks-security-patched-images)।

---

## Install command

**install command** सर्वर सेटअप या रीइंस्टॉल होने पर एक बार चलती है। यह डिपेंडेंसी इंस्टॉल करने और अपना वातावरण तैयार करने के लिए बनी है।

| रनटाइम | सामान्य install command |
| :--- | :--- |
| Node.js | `npm install` |
| Python | `pip install -r requirements.txt` |

इस फ़ील्ड को ऐसे सेट करें कि आपकी डिपेंडेंसी अपने-आप इंस्टॉल हो जाएँ। अपने प्रोजेक्ट की ज़रूरतों के अनुसार इस कमांड को स्वतंत्र रूप से बदला जा सकता है — उदाहरण के लिए, अगर आप कोई अलग पैकेज मैनेजर इस्तेमाल करते हैं (जैसे `yarn install` या `pnpm install`)।

---

## Startup command

**startup command** हर बार सर्वर शुरू होने पर चलती है। यही वह कमांड है जो वास्तव में आपकी ऐप लॉन्च करती है।

| ऐप का प्रकार | Startup command |
| :--- | :--- |
| Node.js — एक एंट्री फ़ाइल | `node index.js` |
| Node.js — npm start स्क्रिप्ट | `npm start` |
| Python — एक एंट्री फ़ाइल | `python main.py` |
| Python — मॉड्यूल के रूप में | `python -m mypackage` |

अपने प्रोजेक्ट की संरचना, एंट्री पॉइंट, और आपकी ऐप को ज़रूरी किसी भी फ़्लैग या आर्गुमेंट के अनुसार startup command बदलने के लिए आप स्वतंत्र हैं।

**ज़रूरी:** फ़ाइलनाम केस-सेंसिटिव होते हैं। सुनिश्चित करें कि आपकी startup command में फ़ाइलनाम बिल्कुल वैसा ही हो जैसा File Manager में दिखता है।

---

## इंटरैक्टिव शेल एक्सेस

अगर आप कंटेनर के साथ सीधे इंटरैक्ट करना चाहते हैं और कमांड मैन्युअल रूप से चलाना चाहते हैं — जैसे डीबग करने, फ़ाइलें जाँचने या एक-बार की कमांड चलाने के लिए — तो आप **startup command** को अस्थायी रूप से `bash` पर सेट कर सकते हैं।

1. **Startup** टैब पर जाएँ।
2. **startup command** को `bash` में बदलें।
3. अपना सर्वर रीस्टार्ट करें।
4. **Console** टैब खोलें — अब आप सीधे शेल कमांड टाइप कर सकते हैं।

> **चेतावनी:** जब तक startup command `bash` पर सेट है, आपकी ऐप **अपने-आप शुरू नहीं होगी**। काम खत्म होने पर अपनी मूल startup command वापस रखें। अधिक जानकारी के लिए देखें [कंसोल और पावर एक्शन](https://daki.cc/hi/wiki/guides/console)।

---

## Egg (प्रोग्रामिंग भाषा) बदलना

**egg** समग्र प्रोग्रामिंग भाषा और फ़्रेमवर्क तय करता है। एक भाषा से दूसरी पर जाने के लिए (जैसे Node.js → Python), **Startup** टैब नहीं, **Settings** टैब इस्तेमाल करें। egg बदलने से रीइंस्टॉल होता है; पहले बैकअप की दृढ़ता से अनुशंसा है। देखें [सर्वर सेटिंग](https://daki.cc/hi/wiki/guides/server-settings)।

---

## सुझाव

- Startup टैब में कोई भी सेटिंग बदलने के बाद उसके लागू होने के लिए सर्वर रीस्टार्ट करें।
- अगर सर्वर शुरू होते ही क्रैश हो जाता है, तो Console टैब का आउटपुट लगभग हमेशा बता देता है कि ऐसा क्यों हुआ।
- अपनी startup command के फ़ाइलनाम को File Manager में दिखने वाले नामों से दोबारा मिला लें।

---

## अगले कदम

- [एनवायरनमेंट वेरिएबल](https://daki.cc/hi/wiki/guides/environment-variables) — अपने बॉट टोकन और अन्य सीक्रेट के लिए `.env` फ़ाइल सेट करें।
- [कंसोल और पावर एक्शन](https://daki.cc/hi/wiki/guides/console) — अपना सर्वर शुरू करें और आउटपुट देखें।
- [सर्वर सेटिंग](https://daki.cc/hi/wiki/guides/server-settings) — अपना सर्वर रीइंस्टॉल करें या egg बदलें।

---
Source: https://daki.cc/hi/wiki/guides/startup-settings
