Web Hosting
Web Hosting एक ऐसा संसाधन है जो आपकी बनाई हुई स्टैटिक वेबसाइट को Space पर अपलोड करके {subdomain}.weegloo.app पते से सेवा देता है। कपड़ों की दुकान वाले ऑनलाइन स्टोर का उदाहरण लें, तो बनाई हुई शॉपिंग मॉल साइट को dailywear-shop.weegloo.app पर चलाना एक Web Hosting है।
अपलोड करने का क्रम इस प्रकार है। पहले बिल्ड के परिणाम को ZIP या tar.gz में पैक करके Upload API से अपलोड करके एक Upload प्राप्त करें। उस Upload को संदर्भित करके POST /web-hostings से Web Hosting बनाएं। सिस्टम अपलोड की गई फ़ाइलों को प्रोसेस करता है और जब sys.state COMPLETED हो जाता है, तो आप url से साइट तक पहुंच सकते हैं। CMA में Web Hosting Space का उप-संसाधन है, और इसका पथ /spaces/{spaceId}/web-hostings पर आधारित होता है।
संसाधन संरचना
नीचे प्रोसेसिंग पूरी हो चुके Web Hosting "DailyWear स्टोर साइट" के एकल पुनर्प्राप्ति की प्रतिक्रिया दी गई है। यह sys (सिस्टम विशेषताएं) के साथ मुख्य विशेषताएं (name, description, isSpa, subdomain, url, pageMetas) रखता है।
{
"sys": {
"id": "3trmXRM3RqbgSnifyg7PWeb01Examp",
"type": "WebHosting",
"space": { "sys": { "id": "HnQ32YiH", "type": "Refer", "targetType": "Space" } },
"createdBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"updatedBy": { "sys": { "id": "3p4tcFbQRwz503VXdtHXNI5dZH5TVB", "type": "Refer", "targetType": "User" } },
"createdAt": "2026-06-18T11:40:00.000Z",
"updatedAt": "2026-06-18T11:40:05.000Z",
"state": "COMPLETED",
"totalFileSize": 245786,
"originMetas": [
{
"file": "index.html",
"meta": {
"title": "Daily Wear Store",
"description": "Everyday clothing store"
}
}
],
"version": 3
},
"name": "DailyWear स्टोर साइट",
"description": "कपड़ा और एक्सेसरीज़ स्टोर के लिए स्थैतिक साइट",
"isSpa": true,
"subdomain": "dailywear-shop",
"url": "https://dailywear-shop.weegloo.app",
"pageMetas": [
{
"file": "index.html",
"meta": {
"title": "DailyWear - clothes for every day",
"description": "Everyday pieces you can wear to work and on weekends.",
"image": "https://dailywear-shop.weegloo.app/og-cover.png"
}
}
]
}मुख्य कुंजियां:
subdomain: वह सबडोमेन जिस पर साइट सेवा देगी। ऊपर के उदाहरण में यहdailywear-shopहै, और अंतिम पताdailywear-shop.weegloo.appबनता है।url: प्रोसेसिंग पूरी होने के बाद जिस पते पर पहुंचा जा सकता है, वह साइट का पता है।isSpa: सिंगल-पेज ऐप (SPA) है या नहीं।trueहोने पर सभी पथ अनुरोधों कोindex.htmlपर भेजता है।state: अपलोड की गई फ़ाइलों की परिनियोजन प्रोसेसिंग स्थिति। इसे नीचे सिस्टम विशेषताएं (sys) में समझाया गया है।pageMetas: दस्तावेज़ के अनुसार अधिलेखित मेटा टैग मान।sys.originMetasमें अधिलेखित करने से पहले के मान रहते हैं। दोनों को नीचे दस्तावेज़ अनुसार मेटाडेटा में समझाया गया है।
सिस्टम विशेषताएं (sys)
हर Web Hosting सामान्य सिस्टम विशेषताओं को sys ऑब्जेक्ट में रखता है। space, createdBy, updatedBy Refer आकार ({ "sys": { "id", "type": "Refer", "targetType" } }) में आते हैं।
| विशेषता | प्रकार | विवरण |
|---|---|---|
id | string | संसाधन का विशिष्ट पहचानकर्ता। एकल पुनर्प्राप्ति, संशोधन, विलोपन पथों के {webHostingId} में आता है। |
type | string | संसाधन का प्रकार। Web Hosting हमेशा "WebHosting"। |
space | Refer<Space> | वह Space जिससे यह Web Hosting संबंधित है। |
createdBy | Refer<User> | बनाने वाला उपयोगकर्ता। |
createdAt | string (date-time) | बनाने का समय। |
updatedBy | Refer<User> | अंतिम बार संशोधित करने वाला उपयोगकर्ता। |
updatedAt | string (date-time) | अंतिम संशोधन का समय। |
state | string (enum) | परिनियोजन प्रोसेसिंग स्थिति। नीचे दिए गए 4 में से एक। |
error | string | प्रोसेसिंग विफल होने पर उसका कारण। विफलता न होने पर खाली रहता है। |
totalFileSize | integer | अपलोड की गई फ़ाइलों का कुल आकार (बाइट)। |
originMetas | PageMeta[] | दस्तावेज़ों में मूल रूप से मौजूद मेटा टैग मान। यह केवल उस Web Hosting में भरा जाता है जो MarketApp इंस्टॉल करने से बना हो। नीचे दस्तावेज़ अनुसार मेटाडेटा में समझाया गया है। |
version | integer (≥1) | संसाधन संस्करण। बनाने, संशोधन पर हर बार 1 बढ़ता है। संशोधन, आंशिक संशोधन अनुरोध में x-weegloo-version के रूप में भेजा जाने वाला मान। |
state अपलोड की गई फ़ाइलों को परिनियोजित करने के प्रोसेसिंग चरण को दर्शाता है। यह Content की प्रकाशन स्थिति नहीं है, और Web Hosting में प्रकाशन या संग्रह की कोई अवधारणा नहीं है। फ़ाइलों को प्रोसेस करके COMPLETED हो जाने पर url से साइट तक पहुंचा जा सकता है।
state | अर्थ |
|---|---|
PENDING | प्रोसेसिंग की प्रतीक्षा में। |
PROCESSING | प्रोसेसिंग जारी है। |
COMPLETED | प्रोसेसिंग पूरी। url से पहुंचा जा सकता है। |
FAILED | प्रोसेसिंग विफल। कारण sys.error में रखा जाता है। |
मुख्य विशेषताएं
Web Hosting की मुख्य विशेषताएं इस प्रकार हैं।
| विशेषता | प्रकार | विवरण |
|---|---|---|
name | string (1~64) | Web Hosting का नाम। बनाते समय आवश्यक। |
description | string (≤128) | विवरण। वैकल्पिक। |
isSpa | boolean | सिंगल-पेज ऐप है या नहीं। true होने पर सभी पथ अनुरोधों को index.html पर भेजता है (SPA रूटिंग के लिए)। बनाते समय आवश्यक। |
subdomain | string (3~32) | सेवा सबडोमेन। पैटर्न ^[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$ (छोटे अक्षर, संख्या, हाइफ़न, शुरुआत और अंत में हाइफ़न मान्य नहीं)। बनाते समय आवश्यक। |
upload | Refer<Upload> | अपलोड की जाने वाली फ़ाइल को इंगित करने वाला संदर्भ। ZIP या tar.gz हो, जिसके रूट में index.html हो और एसेट्स सापेक्ष पथ से संदर्भित हों। |
url | string | प्रोसेसिंग पूरी होने के बाद पहुंच URL। सिस्टम इसे भरता है। |
pageMetas | PageMeta[] | दस्तावेज़ के अनुसार अधिलेखित किए जाने वाले मेटा टैग मान। वैकल्पिक। नीचे दस्तावेज़ अनुसार मेटाडेटा में समझाया गया है। |
customDomain | string | जोड़ा गया कस्टम डोमेन। वैकल्पिक। इसे नीचे कस्टम डोमेन में समझाया गया है। |
सबडोमेन की जांच
Web Hosting बनाने से पहले आप यह जांच सकते हैं कि जिस सबडोमेन का उपयोग करना है वह खाली है या नहीं। GET /web-hostings/availability?subdomain=... पर जांच किए जाने वाले सबडोमेन को subdomain क्वेरी के रूप में भेजें।
प्रतिक्रिया निम्नलिखित आकार की होती है, और यदि available true है, तो उस सबडोमेन का उपयोग किया जा सकता है।
{ "subdomain": "dailywear-shop", "available": true }कस्टम डोमेन
डिफ़ॉल्ट पते {subdomain}.weegloo.app के बजाय आप अपने स्वामित्व वाले डोमेन को Web Hosting से जोड़ सकते हैं। जोड़े गए डोमेन की स्थिति customDomain ऑब्जेक्ट से दर्शाई जाती है, और इसका आकार { id, domain, dns, cert } है। dns और cert क्रमशः डोमेन स्वामित्व सत्यापन (DNS) और प्रमाणपत्र जारी होने (cert) की स्थिति हैं, और दोनों का आकार { status, txtName, txtContent } है। txtName, txtContent डोमेन की ओर पंजीकृत किए जाने वाले DNS TXT रिकॉर्ड का नाम और मान हैं।
{
"id": 1024,
"domain": "shop.dailywear.example",
"dns": {
"status": "pending",
"txtName": "_weegloo.shop.dailywear.example",
"txtContent": "weegloo-verify=3trmXRM3RqbgSnifyg7PWebVerifyEx"
},
"cert": {
"status": "pending",
"txtName": "_acme-challenge.shop.dailywear.example",
"txtContent": "acme-verify=3trmXRM3RqbgSnifyg7PWebCertEx"
}
}डोमेन की ओर TXT रिकॉर्ड पंजीकृत करने के बाद PUT /web-hostings/{webHostingId}/custom-domain/status/verify से सत्यापन ट्रिगर करें, और वर्तमान स्थिति GET /web-hostings/{webHostingId}/custom-domain/status से पुनर्प्राप्त करें। सत्यापन पूरा होने पर dns.status active और cert.status ok हो जाता है। जिस Web Hosting से कस्टम डोमेन नहीं जोड़ा गया है, उस पर स्थिति पुनर्प्राप्ति कॉल करने पर त्रुटि के साथ प्रतिक्रिया मिलती है (त्रुटियाँ देखें)।
दस्तावेज़ अनुसार मेटाडेटा
अपलोड की गई साइट के हर दस्तावेज़ के <head> में मौजूद मेटा टैग को अधिलेखित किया जा सकता है। खोज परिणामों और मैसेंजर लिंक प्रीव्यू में दिखने वाले शीर्षक, विवरण और चित्र इन्हीं मानों में बदल जाते हैं। उद्देश्य यह है कि फ़ाइलें दोबारा बिल्ड करके अपलोड किए बिना, एक ही अनुरोध से इन्हें बदला जा सके।
संपादन केवल उस Web Hosting पर काम करता है जो MarketApp इंस्टॉल करने से बना हो। upload से फ़ाइलें बदलते ही संपादन संभव नहीं रहता और sys.originMetas भी खाली हो जाता है। शर्त तोड़ने वाला अनुरोध अस्वीकार कर दिया जाता है (त्रुटियाँ देखें)।
मान pageMetas सरणी में रखे जाते हैं, और एक प्रविष्टि एक दस्तावेज़ को लक्षित करती है।
| विशेषता | प्रकार | विवरण |
|---|---|---|
file | string (1-1024) | लक्षित दस्तावेज़ का सापेक्ष पथ। उदाहरण के लिए index.html, about/index.html। |
meta | WebHostingMeta | उस दस्तावेज़ पर लागू किए जाने वाले स्लॉट मान। |
sys.originMetas का रूप वही है और उसमें अधिलेखित करने से पहले दस्तावेज़ों में मौजूद मान रहते हैं। वापस लौटाने के लिए वही मान दोबारा भेजें।
स्लॉट
meta की कुंजियों को स्लॉट कहते हैं। एक स्लॉट कई टैग एक साथ बदलता है।
| स्लॉट | अधिकतम लंबाई | बदले जाने वाले टैग |
|---|---|---|
title | 200 | <title>, og:title, twitter:title |
description | 500 | description, og:description, twitter:description |
canonical | 2048 | link[rel=canonical], og:url |
image | 2048 | og:image, twitter:image |
siteName | 200 | og:site_name |
favicon | 2048 | link[rel=icon], link[rel="shortcut icon"], link[rel=apple-touch-icon] |
themeColor | 32 | theme-color |
यदि कोई टैग दस्तावेज़ में नहीं है तो उसे बनाकर जोड़ दिया जाता है। पाँच अपवाद हैं: twitter:title, twitter:description, twitter:image, link[rel="shortcut icon"] और link[rel=apple-touch-icon] तभी बदलते हैं जब दस्तावेज़ में वे पहले से हों, और न होने पर नए नहीं बनाए जाते।
किस मान का क्या असर होता है
भेजे गए मान के रूप के अनुसार परिणाम अलग होता है।
| अनुरोध में आपने क्या रखा | परिणाम |
|---|---|
| स्लॉट कुंजी नहीं है | मौजूदा सेटिंग वैसी ही रहती है। |
स्लॉट कुंजी null है | मौजूदा सेटिंग वैसी ही रहती है। |
| स्लॉट कुंजी खाली स्ट्रिंग है | वह टैग दस्तावेज़ से हटा दिया जाता है। |
| स्लॉट कुंजी में मान है | उसी मान से अधिलेखित हो जाता है। |
pageMetas से किसी दस्तावेज़ की प्रविष्टि छोड़ दी गई | उस दस्तावेज़ की सेटिंग वैसी ही रहती है। |
pageMetas नहीं है | सभी दस्तावेज़ों की सेटिंग वैसी ही रहती है। |
अंतिम दो पंक्तियों पर विशेष ध्यान दें। सर्वर भेजे गए मान को दस्तावेज़ और स्लॉट के स्तर पर मिलाता है। इसलिए सरणी से प्रविष्टि हटाने भर से सेटिंग नहीं मिटती; मिटाने के लिए उस स्लॉट पर खाली स्ट्रिंग देनी होगी।
खाली स्ट्रिंग टैग हटाती है, मूल स्थिति वापस नहीं लाती। दस्तावेज़ में मूल रूप से मौजूद टैग भी उसके साथ चला जाता है। मूल मान वापस लाने के लिए sys.originMetas में बचा मान दोबारा भेजें।
नीचे दिया अनुरोध निकाय index.html का केवल शीर्षक बदलता है और उसका विवरण टैग हटा देता है।
{
"pageMetas": [
{
"file": "index.html",
"meta": {
"title": "DailyWear - हर दिन पहनने के कपड़े",
"description": ""
}
}
]
}pageMetas बदलने पर वह प्रसंस्करण फिर से चलता है जो इन मानों को वास्तविक दस्तावेज़ों पर लागू करता है। sys.state PENDING पर लौटकर फिर COMPLETED पर आता है, और इस बीच संशोधन और विलोपन अस्वीकार कर दिए जाते हैं।
त्रुटियाँ
ये कोड Web Hosting के साथ काम करते समय मिलते हैं। सभी संसाधनों में समान रूप से मिलने वाले कोड के लिए सामान्य त्रुटियाँ देखें।
| कोड | शर्त |
|---|---|
WGL422031 | ऐसे Web Hosting को संशोधित करने या हटाने का प्रयास किया गया जिसकी परिनियोजन फ़ाइलें अभी प्रोसेस हो रही हैं। प्रोसेसिंग पूरी होने के बाद फिर से प्रयास करें। |
WGL422113 | ऐसे Web Hosting को pageMetas भेजा गया जिसका दस्तावेज़ अनुसार मेटाडेटा संपादित नहीं किया जा सकता। या तो वह MarketApp इंस्टॉल करने से नहीं बना, या उसके बाद उसकी फ़ाइलें अपलोड से बदल दी गईं। |
WGL500039 | जोड़े गए कस्टम डोमेन की जानकारी डिलीवरी नेटवर्क से पढ़ी नहीं जा सकी। |
WGL429001 | जिस Web Hosting से कोई कस्टम डोमेन जुड़ा नहीं था, उससे नया डोमेन जोड़ने के समय Organization के कस्टम डोमेन की संख्या पहले ही प्लान की सीमा तक पहुँच चुकी है। पहले से जुड़े डोमेन को बदलने पर संख्या नहीं बढ़ती, इसलिए उस पर यह जाँच नहीं लगती। |
API
नीचे दिए गए सभी एंडपॉइंट्स का आधार URL https://cma.weegloo.com/v1 है, और Authorization हेडर में CMA को प्रमाणित करने वाला Bearer टोकन आवश्यक है। संशोधन, आंशिक संशोधन के लिए आशावादी समवर्तीता नियंत्रण हेतु X-Weegloo-Version हेडर (वर्तमान संसाधन का sys.version) भी भेजना आवश्यक है। बनाने, विलोपन अनुरोधों में यह हेडर नहीं होता।
संबंधित दस्तावेज़
- Upload API: स्टैटिक फ़ाइल ZIP अपलोड करके Web Hosting निर्माण में उपयोग होने वाला Upload प्राप्त करने का अनुरोध।
- Space: वह Space जिससे Web Hosting संबंधित है।
