दस्तावेज़
त्वरित शुरुआत + हर हिस्से और हर डिवाइस की सुविधाओं का विवरण (लगातार अपडेट हो रहा है)
इंस्टॉल और अनइंस्टॉल
यह लेख विस्तार से बताता है कि SSH Everywhere पैनल कैसे इंस्टॉल, अपग्रेड और अनइंस्टॉल करें; खास तौर पर “इंस्टॉल डायरेक्टरी बदलने के बाद अनइंस्टॉल कैसे करें” और कमांड में फ़ॉर्मेट की बारीकियाँ (स्पेस, कोट्स) समझाई गई हैं।
1. इंस्टॉल (एक पंक्ति का कमांड)
पब्लिक IP वाले Linux सर्वर पर चलाएँ:
curl -fsSL https://ssheverywhere.com/install.sh | bash
स्क्रिप्ट अपने आप यह सब करती है: सिस्टम पहचान → डिपेंडेंसी इंस्टॉल (Python3 / venv / pip / git / curl) → कोड डाउनलोड → वर्चुअल एनवायरनमेंट बनाना → Python डिपेंडेंसी इंस्टॉल → systemd सेवा रजिस्टर और शुरू।
सपोर्टेड: Debian / Ubuntu / CentOS / Rocky / AlmaLinux / Fedora / WSL (systemd न हो तो अपने आप बैकग्राउंड रन पर चला जाता है)।
इंस्टॉलेशन पैरामीटर
| पैरामीटर | विवरण | उदाहरण |
|---|---|---|
--lang <कोड> | प्रॉम्प्ट की भाषा + पैनल की डिफ़ॉल्ट भाषा (डिफ़ॉल्ट रूप से सिस्टम locale से स्वतः पहचानी जाती है; 1-16 नंबर भी स्वीकार किए जाते हैं) | --lang ja |
--dir <डायरेक्टरी> | इंस्टॉलेशन डायरेक्टरी (डिफ़ॉल्ट /opt/ssh-everywhere; लिखने योग्य न होने पर स्वतः ~/ssh-everywhere पर वापस चली जाती है और आउटपुट में बताया जाता है) | --dir /opt/my-panel |
--port <पोर्ट> | पैनल पोर्ट (डिफ़ॉल्ट 5501) | --port 8080 |
--ascii | शुद्ध ASCII प्रतीक आउटपुट के लिए बाध्य करें ([ok] / [..] / [!] / [x]), किसी भी टर्मिनल पर अक्षर खराब नहीं होंगे | --ascii |
--unicode | Unicode प्रतीक आउटपुट के लिए बाध्य करें (✓ ⟳ ⚠️ ❌); UTF-8 वातावरण में यह पहले से ही डिफ़ॉल्ट है | --unicode |
--yes / -y | अपग्रेड के समय स्वतः पुष्टि, किसी इंटरैक्शन की आवश्यकता नहीं | --yes |
समर्थित भाषा कोड (16 भाषाएँ)
| कोड | भाषा | कोड | भाषा | कोड | भाषा | कोड | भाषा |
|---|---|---|---|---|---|---|---|
zh | 中文 | en | English | ja | 日本語 | ko | 한국어 |
es | Español | fr | Français | de | Deutsch | ru | Русский |
pt | Português | it | Italiano | ar | العربية | tr | Türkçe |
vi | Tiếng Việt | th | ไทย | id | Bahasa Indonesia | hi | हिन्दी |
--lang न देने पर भाषा सिस्टम locale से स्वतः तय हो जाती है (उदाहरण: LANG=ja_JP.UTF-8 → जापानी प्रॉम्प्ट)। जब सर्वर या टर्मिनल का locale UTF-8 न हो (बड़े क्लाउड प्रदाताओं के हल्के इमेज में LANG=C आम है), तो स्क्रिप्ट स्वतः शुद्ध ASCII प्रतीक [ok] पर चली जाती है, और भाषा स्पष्ट रूप से न दी गई हो तो प्रॉम्प्ट टेक्स्ट अंग्रेज़ी में लौट जाता है तथा शुरुआत में कारण भी बताया जाता है — यह सब किसी भी तरह के अक्षर-विकार से बचने के लिए है। अपनी भाषा ज़बरदस्ती दिखाने के लिए उपयोग करें: --lang xx --unicode।
पाइप के ज़रिए पैरामीटर भेजते समय bash -s -- जोड़ें:
# जापानी प्रॉम्प्ट + जापानी पैनल curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ja # रूसी प्रॉम्प्ट + कस्टम डायरेक्टरी और पोर्ट curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ru --dir /opt/my-panel --port 8080 # पुराना / GBK टर्मिनल जहाँ अक्षर खराब होते हैं: शुद्ध ASCII आउटपुट (चीनी प्रॉम्प्ट + [ok] प्रतीक) curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang zh --ascii # अरबी (RTL इंटरफ़ेस) curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --lang ar
आप पहले डाउनलोड करके भी चला सकते हैं (इंटरैक्टिव — भाषा, डायरेक्टरी और अपग्रेड पुष्टि एक-एक करके पूछी जाएगी):
curl -fsSL https://ssheverywhere.com/install.sh -o install.sh && bash install.sh
> बड़े क्लाउड प्रदाता (Tencent Cloud / Alibaba Cloud) डिफ़ॉल्ट रूप से root लॉगिन बंद रखते हैं। स्पष्ट रूप से दी गई --dir को हमेशा प्राथमिकता मिलती है; केवल तब, जब वर्तमान उपयोगकर्ता के पास उस डायरेक्टरी में लिखने की अनुमति न हो, स्क्रिप्ट स्वतः आपकी HOME डायरेक्टरी (~/ssh-everywhere) पर चली जाती है और आउटपुट में स्पष्ट बताती है कि आपने कौन-सी डायरेक्टरी दी थी, उसे क्यों बदला गया, और वहाँ इंस्टॉल करना हो तो root के रूप में चलाएँ।
2. अपग्रेड
इंस्टॉल कमांड दोबारा चलाएँ; स्क्रिप्ट में वर्शन जाँच बिल्ट-इन है और नया वर्शन मिलने पर अपग्रेड का सुझाव देती है (डेटा सुरक्षित, पूरी तरह ऑटोमैटिक):
curl -fsSL https://ssheverywhere.com/install.sh | bash -s -- --yes
--yes का मतलब है अपग्रेड के समय अपने आप पुष्टि, इंटरैक्शन की ज़रूरत नहीं।
3. अनइंस्टॉल
डिफ़ॉल्ट डायरेक्टरी से अनइंस्टॉल (इंटरैक्टिव, अनुशंसित)
curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh
स्क्रिप्ट पहले अनइंस्टॉल होने वाली चीज़ें दिखाती है और पुष्टि पूछती है; yes टाइप करने पर ही चलती है।
नॉन-इंटरैक्टिव / स्क्रिप्टेड अनइंस्टॉल
--yes जोड़ने पर पुष्टि छूट जाती है (सुरक्षा जाँच अब भी बनी रहती है):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --yes
अनइंस्टॉल पैरामीटर
| पैरामीटर | विवरण |
|---|---|
--dir <directory> | इंस्टॉल डायरेक्टरी (डिफ़ॉल्ट /opt/ssh-everywhere, डायरेक्टरी बदली हो तो देना ज़रूरी) |
--keep-data | अनइंस्टॉल से पहले data (सर्वर कॉन्फ़िग / डेटाबेस) का tar पैकेज बना देना |
--yes | नॉन-इंटरैक्टिव मोड में अनइंस्टॉल की पुष्टि |
4. इंस्टॉल डायरेक्टरी बदली हो तो अनइंस्टॉल कैसे करें? (ज़रूरी)
अगर इंस्टॉल के समय --dir से डायरेक्टरी बदली थी, तो अनइंस्टॉल के समय वही --dir देना ज़रूरी है, वरना स्क्रिप्ट को इंस्टॉल डायरेक्टरी नहीं मिलेगी और वह अपने आप रुक जाएगी (यह सुरक्षा कवच है, ग़लती से मिटने से बचाव)।
डायरेक्टरी पथ में स्पेस नहीं
curl -fsSL https://ssheverywhere.com/uninstall.sh -o uninstall.sh && bash uninstall.sh --dir /opt/my-panel
पाइप का तरीका (--dir, bash -s -- के बाद):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir /opt/my-panel --yes
डायरेक्टरी पथ में स्पेस है
अगर डायरेक्टरी के नाम में स्पेस है, तो पूरे पथ को डबल कोट्स में रखना ज़रूरी है, वरना shell पथ को दो हिस्सों में तोड़ देगा और स्क्रिप्ट को डायरेक्टरी नहीं मिलेगी:
bash uninstall.sh --dir "/opt/my panel"
पाइप के तरीके में भी वही (कोट्स पूरे पथ को घेरें, आधा न छोड़ें):
curl -fsSL https://ssheverywhere.com/uninstall.sh | bash -s -- --dir "/opt/my panel" --yes
डेटा रखकर अनइंस्टॉल करना है
bash uninstall.sh --dir /opt/my-panel --keep-data
data (सर्वर कॉन्फ़िग / डेटाबेस) को <install-dir>-data-backup-<timestamp>.tar.gz में बैकअप किया जाएगा, अनइंस्टॉल के बाद वापस पाया जा सकता है।
> 💡 सुझाव: इंस्टॉल के समय ही डायरेक्टरी के नाम में स्पेस से बचें, हाइफ़न या अंडरस्कोर इस्तेमाल करें (जैसे my-panel, my_panel), इससे कोट्स की झंझट बच जाती है।
5. सुरक्षा नोट
अनइंस्टॉल स्क्रिप्ट में तीन स्तर की सुरक्षा है, ताकि ग़लती से डिलीट न हो:
1. पूर्ण पथ की जाँच —— रिलेटिव पथ अस्वीकार।
2. सिस्टम के ज़रूरी डायरेक्टरी ब्लैकलिस्ट —— /, /root, /etc, /usr, /var आदि अस्वीकार।
3. इंस्टॉल डायरेक्टरी की फ़िंगरप्रिंट जाँच —— तभी हटाएगा जब VERSION और app.py दोनों मौजूद हों, वरना रुक जाएगा।
> अनइंस्टॉल सिर्फ़ पैनल खुद हटाता है; लक्ष्य सर्वर/डिवाइस पर मौजूद Agent प्रभावित नहीं होता (पैनल हटने के बाद वे ऑफ़लाइन दिखेंगे)।