Skip to content

सर्वर कनेक्ट करें

Add Server Wizard RoqueOS फ्रंटएंड (https://roqueos.com.br/app पर) को आपके RoqueOS Server से कनेक्ट करने का आधिकारिक तरीका है। यह Settings → Server → सर्वर जोड़ें में रहता है।

पुराने प्रवाह को बदलता है जो उपयोगकर्ता से ब्राउज़र में <server>:27021/admin खोलने के लिए कहता था। अब सब कुछ ऐप के अंदर होता है।

कब उपयोग करें

  • नया स्थापित सर्वर (install.sh चला, अभी तक कोई API Keys नहीं) — wizard पहली admin key बनाता है
  • पहले से उपयोग में सर्वर (आपके पास apiKey + apiSecret सहेजे गए हैं) — wizard सत्यापित करता है और सूची में जोड़ता है
  • सर्वर बदलें — दूसरा सर्वर जोड़ें, menubar में Switcher के माध्यम से उनके बीच स्विच करें

बूटस्ट्रैप फ्लो (शून्य सर्वर)

7 चरण। कुल समय: ~1 मिनट।

Step 1 — URL

server URL पेस्ट करें। स्वीकार करता है:

  • http://localhost:27021 (आपकी मशीन पर Docker चल रहा है — loopback के माध्यम से काम करता है)
  • https://server.example.com (Cloudflare Tunnel या TLS cert के पीछे)

Wizard प्रोटोकॉल को सामान्य करता है (server.example.comhttps://server.example.com स्वचालित) और आगे बढ़ने से पहले पंजीकृत सर्वरों का पता लगाता है।

⚠️ HTTP vs HTTPS — ब्राउज़र सीमा

फ्रंटएंड roqueos.com.br/app HTTPS में चलता है। आधुनिक ब्राउज़रों के डिज़ाइन (Mixed Content policy) द्वारा, एक HTTPS पृष्ठ HTTP APIs को कॉल नहीं कर सकता — ब्राउज़र मशीन छोड़ने से पहले ही चुपचाप request को ब्लॉक करता है।

इसका मतलब है कि http://192.168.1.50:27021 (LAN) या http://server.com:27021 (सार्वजनिक) से कनेक्ट करने का प्रयास "couldn't connect" के साथ विफल हो जाएगा जो सर्वर बग जैसा दिखता है लेकिन यह ब्राउज़र ब्लॉकिंग है।

Wizard आपके लिए यह पता लगाता है और request चलने से पहले समस्या समझाने वाला पीला बैनर दिखाता है। तीन समाधान, वरीयता क्रम में:

1. Cloudflare Tunnel के माध्यम से HTTPS (अनुशंसित)

मुफ्त, plug-and-play। install.sh में पहले से built-in समर्थन है:

bash
curl -fsSL https://roqueos.com.br/install.sh | bash -s -- --update
# बाद में: Settings → Server → Cloudflare Tunnel → कनेक्ट करें

परिणाम: आपका सर्वर https://<id>.cloud.roqueos.com.br या आपके स्वयं के डोमेन पर रहता है। स्वचालित TLS, firewall को छेड़ने की आवश्यकता नहीं, सार्वजनिक IP की आवश्यकता नहीं।

पूर्ण install.sh + Cloudflare Tunnel गाइड →

2. डेस्कटॉप या मोबाइल ऐप का उपयोग करें

नेटिव wrappers (Microsoft Store, Play Store, App Store) में mixed content प्रतिबंध नहीं है — वे नेटिव कोड चलाते हैं, सख्त HTTPS में वेब पेज नहीं।

के लिए अच्छा: homelab environment जहां आप tunnel कॉन्फ़िगर नहीं करना चाहते/नहीं कर सकते।

3. localhost पर सर्वर (loopback)

http://localhost:27021, http://127.0.0.1:27021 और http://[::1]:27021 को आधुनिक ब्राउज़रों द्वारा Secure Contexts spec के माध्यम से सुरक्षित संदर्भ के रूप में माना जाता है — इसलिए वे HTTPS फ्रंटएंड के साथ भी काम करते हैं।

के लिए अच्छा: स्थानीय dev, असली सर्वर पर अपलोड करने से पहले परीक्षण।

Step 2 — Detect

Wizard समानांतर में 2 अनाम endpoints hit करता है:

  • GET /health/version-info — संस्करण + minClientVersion
  • GET /admin/setup — यदि { needsSetup: true } लौटाता है, तो सर्वर शून्य

यहां संस्करण compat भी जांचता है। यदि सर्वर v1.0.10 पर है लेकिन क्लाइंट (फ्रंटएंड) को v1.0.13+ की आवश्यकता है, "पहले सर्वर अपडेट करें" मित्रवत चेतावनी + install.sh --update के लिए लिंक दिखाता है।

Step 3 — Bootstrap (शून्य सर्वर)

"admin key बनाएं" बटन → POST /admin/setup (setup race से बचने के लिए सर्वर पर IP द्वारा rate-limited)।

{ apiKey, apiSecret } लौटाता है जिसे wizard अगले step में प्रदर्शित करता है।

race handling: यदि 2 ब्राउज़र एक ही समय में setup का प्रयास करते हैं, दूसरा error: 'Setup already completed' प्राप्त करता है और wizard step 5 (manual credentials) पर transition करता है।

Step 4 — keyCreated

लौटाए गए apiKey + apiSecret को copy बटन के साथ read-only fields में दिखाता है।

⚠️ महत्वपूर्ण UX guard:

  • Modal में closeOnBackdrop=false (बाहर क्लिक करने पर बंद नहीं होता)
  • X बटन पुष्टिकरण sub-modal खोलता है ("क्या आपने credentials सहेजे?")
  • अनिवार्य चेकबॉक्स "मैंने अपने credentials सहेजे" Next बटन को सक्षम करता है
  • यदि आप बिना सहेजे बंद करते हैं, key सर्वर पर रहता है लेकिन आपके लिए खो जाता है — recovery केवल /admin HTML legacy के माध्यम से

Step 5 — credentials (सर्वर पहले से कॉन्फ़िगर)

यदि step 2 में detection ने इंगित किया कि setup पहले से किया गया था, सीधे यहां छलांग लगाता है:

  • फ़ील्ड apiKey
  • फ़ील्ड apiSecret
  • लिंक "सर्वर का admin पैनल खोलें ↗" (नए टैब में <server>/admin HTML legacy खोलता है)

legacy पेज recovery और automation के लिए पिछले दरवाजे के रूप में बना रहता है।

Step 6 — नाम

एकमात्र फ़ील्ड: सर्वर के लिए मित्रवत नाम (menubar के Server Switcher में दिखाई देता है)।

सुझाया गया डिफ़ॉल्ट: URL.hostname (उदाहरण: demo.level-hard.com या localhost)।

Step 7 — Finalize

Wizard कॉल करता है:

  • addBackendService({ name, url })backendSettings.services सूची में सहेजता है
  • setApiCredentials(apiKey, apiSecret, serviceId) — Firestore में creds रखता है
  • setActiveBackendService(serviceId) — इसे सक्रिय बनाता है

Modal बंद हो जाता है। सर्वर कनेक्ट है। आप Server Mode में हैं।

Server Switcher (menubar)

जब आपके पास 2+ सर्वर पंजीकृत हों, menubar (ऊपरी बाएं कोने) में एक dropdown दिखाई देता है जो सक्रिय सर्वर दिखाता है। उनके बीच स्विच करने के लिए क्लिक करें।

वर्तमान स्थिति (मई 2026): पिछले session के बाद घटक ROSServerSwitcher को अभी तक फिर से नहीं बनाया गया है — सुविधा की योजना है लेकिन shipped नहीं है। अभी के लिए, सर्वरों के बीच स्विच करना Settings → Server → वांछित सर्वर पर क्लिक के माध्यम से है।

सार्वजनिक डेमो सर्वर

अपनी मशीन पर कुछ भी इंस्टॉल किए बिना Server Mode का परीक्षण करने के लिए, RoqueOS पहले से ही पूर्व-कॉन्फ़िगर सार्वजनिक डेमो सर्वर के साथ आता है:

  1. https://roqueos.com.br/app पर लॉगिन करें
  2. Settings → Server पर जाएं
  3. DEMO सर्वर पहले से ही सूची में दिखाई देता है — सक्रिय करने के लिए क्लिक करें

URL, apiKey या apiSecret पेस्ट करने की आवश्यकता नहीं — credentials क्लाइंट में embedded हैं और सीधे काम करते हैं।

डेमो क्या है: RoqueOS Server की वास्तविक इंस्टेंस, founder द्वारा अपडेट, दैनिक cleanup (अनाथ containers, > 24h के agents/sessions, dangling volumes) के साथ। सीमाएं:

  • गैर-admin Server Admin Panel नहीं देखता (सुरक्षा गेट)
  • Cloud Gaming zombie session को purge कर सकता है
  • कंटेनर prune से पहले ~24h रहते हैं
  • सभी विज़िटर्स के बीच साझा

के लिए अच्छा: Containers, Terminal, embedded VS Code, Files का पता लगाना। के लिए बुरा: लंबी persistence, संवेदनशील या महत्वपूर्ण डेटा — RoqueOS में लॉग इन कोई भी समान डेमो का समानांतर में उपयोग कर सकता है।

वास्तविक उपयोग के लिए, one-liner के साथ अपना सर्वर इंस्टॉल करें।

समस्या निवारण

लक्षणसमाधान
"सर्वर पहुंच से बाहर"पुष्टि करें curl <url>/health 200 लौटाता है। शायद पोर्ट 27021 जारी नहीं या Docker रुका
"सर्वर पहले से पंजीकृत"Wizard ने duplicate का पता लगाया। Settings → Server पर जाएं और मौजूदा का चयन करें
"सर्वर पुराना"सर्वर पर --update चलाएं: curl -fsSL https://roqueos.com.br/install.sh | bash -s -- --update
"Setup already completed" लेकिन आपने कभी कॉन्फ़िगर नहीं कियारीसेट: docker exec roqueos-server sqlite3 /app/data/roqueos.db "DELETE FROM api_keys;" (सावधान — सभी मौजूदा keys हटा देता है)
सर्वर जोड़ा गया लेकिन Settings खाली लौटता हैशायद Firestore लॉगिन गायब है। DevTools console में जांचें कि क्या Firestore: PERMISSION_DENIED दिखाई देता है

संदर्भ