Webship दस्तावेज़ीकरण

Webship इंस्टॉल, कॉन्फ़िगर और ऑटोमेट करें।

AI-नेटिव Webship एज सर्वर को कॉन्फ़िगर, मान्य, डिप्लॉय और ऑटोमेट करें, संक्षिप्त TOML उदाहरणों और संस्करण-पिन किए गए ऑपरेटिंग मार्गदर्शन के साथ।

दस्तावेज़ संस्करण

Webship 1.0.0

रिलीज़ किया गया 2026-08-22। यह URL चयनित रिलीज़ में पिन किया गया है।

डिफ़ॉल्ट लिस्नर
127.0.0.1:4433
कन्फ़िगरेशन
TOML
टीएलएस
TLS 1.3

उत्पाद अवलोकन

नेटवर्क और आपके एप्लीकेशन के बीच एक सर्वर।

Webship एक स्व-होस्टेड Rust एज और स्थिर वेब सर्वर है। एक रनटाइम आधुनिक प्रोटोकॉल को समाप्त करता है, एज नीति लागू करता है, फ़ाइलें सर्व करता है, और एप्लीकेशन अनुरोधों का प्रॉक्सी बनाता है।

आधुनिक ट्रांसपोर्ट

HTTP/1.1, HTTP/2, और HTTP/3 स्वीकार करें, TLS 1.3 और वैकल्पिक WebTransport एंडपॉइंट के साथ।

स्थिर और प्रॉक्सी डिलीवरी

सत्यापनकर्ताओं और प्रीकंप्रेस्ड साइडकार्स के साथ स्थिर फ़ाइलें सर्व करें, या सीमित अपस्ट्रीम पूलों के माध्यम से एप्लिकेशन ट्रैफ़िक को प्रॉक्सी करें।

सुरक्षित डिफ़ॉल्ट

WAF, DDoS नियंत्रण, बॉट चुनौती, प्रतिक्रिया सुरक्षा हेडर, API शील्ड और डॉट-फ़ाइल सुरक्षा सक्षम करके शुरू करें।

देखने योग्य संचालन

प्रमाणीकृत आँकड़े, Prometheus मेट्रिक्स, अनुरोध आईडी, सहज रीलोड और वैकल्पिक MCP कंट्रोल प्लेन का उपयोग करें।

त्वरित आरंभ

रीलीज़ बाइनरी से स्वस्थ श्रोता तक।

लूपबैक पर शुरू करें, बाइंडिंग से पहले सब कुछ मान्य करें, और सार्वजनिक ट्रैफिक जोड़ने से पहले बिल्ट-इन स्वास्थ्य प्रतिक्रिया की जांच करें।

  1. फ़ाइलें तैयार करें

    रिलीज़ बाइनरी, उसका TOML कॉन्फ़िगरेशन, स्टैटिक रूट, और कोई भी कॉन्फ़िगर किया गया TLS प्रमाणपत्र और कुंजी फ़ाइलें होस्ट पर रखें।

  2. सत्यापित करें और निरीक्षण करें

    दोनों कॉन्फ़िगरेशन आदेश चलाएँ। पहली त्रुटि को सही करें और स्टार्टअप से पहले अप्रकाशित प्रभावी परिणाम की जाँच करें।

  3. निजी रूप से शुरू करें

    चयनित TOML फ़ाइल के साथ Webship शुरू करें। जब साइट सुरक्षित सार्वजनिक ट्रैफ़िक के लिए तैयार हो, तब पूर्ण प्रमाणपत्र जोड़ी या स्वचालित TLS जोड़ें।

  4. रनटाइम की पुष्टि करें

    स्थानीय रूप से GET /health कॉल करें। फिर स्थिर पाथ, TLS, प्रॉक्सी रूट, सुरक्षा नियम, और प्रमाणित मॉनिटरिंग का परीक्षण करें।

मिनिमल config.toml
listen = "127.0.0.1:4433"
workers = 4
root = "./public"
स्टार्टअप से पहले सत्यापित करें
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
शुरू करें और सत्यापित करें
/usr/local/bin/webship --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:4433/health

AI एजेंट्स के लिए त्वरित प्रारंभ गाइड

पाँच पंक्तियों में एक एआई एजेंट को Webship से कनेक्ट करें।

क्लॉड कोड, OpenAI, DeepSeek, या किसी भी संगत MCP क्लाइंट को एक निजी SSH टनल के माध्यम से कनेक्ट करें। एजेंट को एक प्रमाणीकरण योग्य संचालन सतह प्राप्त होती है बिना सार्वजनिक लिस्नर साझा किए या नियंत्रण प्रमाण-पत्रों को इंटरनेट ट्रैफ़िक के लिए उजागर किए।

पाँच-पंक्तियाँ MCP ग्राहक कॉन्फ़िगरेशन
{
  "mcpServers": {
    "webship": { "url": "https://localhost:19443/mcp",
      "headers": { "Authorization": "Bearer <token>" } }
  } }

स्टैटिक डिलीवरी

प्रोटोकॉल-संवेदनशील डिफ़ॉल्ट्स के साथ एक निर्देशिका सेवा प्रदान करें।

ग्लोबली या प्रत्येक साइट के लिए एक root सेट करें। TLS साइट्स डिफ़ॉल्ट रूप से HTTP/3 पर जाते हैं; cleartext साइट्स डिफ़ॉल्ट रूप से HTTP/1.1 और H2C पर जाती हैं। प्रत्येक साइट के लिए HTTP/1.1, HTTP/2, और HTTP/3 को स्वतंत्र रूप से ओवरराइड करें।

डोमेन-विशेष स्थिर साइट
[[sites]]
domain = "app.example.com"
root = "/srv/app"
listen = "0.0.0.0:443"

[sites.protocols]
h1 = true
h2 = true
h3 = true

बिल्ट-इन राउटर GET और HEAD, बाइट रेंज, शर्तीय अनुरोध, validators, और .br, .zst, और .gz साइडकार्स को सपोर्ट करता है। डॉट-फाइल पाथ्स को डिफ़ॉल्ट रूप से अस्वीकार कर दिया जाता है; .well-known उपलब्ध रहता है।

एप्लिकेशन ट्रैफिक

अनुरोधों को एक या अधिक अपस्ट्रीम्स पर मार्गदर्शित करें।

रिवर्स प्रॉक्सी को सक्षम करें, एक होस्ट और पाथ से मिलान करें, फिर एक अंतिम अनियंत्रित नीति परिभाषित करें। Webship सीमित पूल, स्वास्थ्य जांच, लोड बैलेंसिंग, सर्किट ब्रेकर्स, सुरक्षित बिना बॉडी वाले पुन: प्रयास, वेब सॉकेट्स और कैशिंग का समर्थन करता है।

दो-अपस्ट्रीम एपीआई मार्ग
[reverse_proxy]
enabled = true

[[reverse_proxy.routes]]
domain = "app.example.com"
path_prefix = "/api"
strip_path_prefix = true
upstreams = ["127.0.0.1:8080", "127.0.0.1:8081"]

[[reverse_proxy.policies]]
name = "default"
hosts = []
path_prefixes = ["/"]
methods = []
max_body_bytes = 1048576
total_timeout_ms = 30000

TLS और HTTP/3

मैनुअल प्रमाणपत्र का उपयोग करें या Webship को उन्हें प्रबंधित करने दें।

Webship TLS 1.3 स्वीकार करता है। HTTP/3 मेल खाने वाले UDP लिसनर पर चलता है; TLS साइट को TCP संगतता की आवश्यकता होने पर HTTP/1.1 या HTTP/2 को स्पष्ट रूप से सक्षम करें।

TLS-ALPN-01 के साथ स्वचालित TLS
listen = "0.0.0.0:443"

[automatic_tls]
enabled = true
directory_url = "https://acme-v02.api.letsencrypt.org/directory"
cache_dir = "/var/lib/webship/acme"
contacts = ["mailto:ops@example.com"]
accept_terms_of_service = true

[[sites]]
domain = "app.example.com"
root = "/srv/app"

एज नीति

सुरक्षित बेसलाइन को अक्षुण्ण रखें।

Webship डिफ़ॉल्ट रूप से अपनी मुख्य सुरक्षा स्तरों को सक्षम करता है। अपने कार्यभार के लिए सीमाओं को समायोजित करें और प्रत्येक नियम या हेडर-नीति परिवर्तन के बाद सत्यापित करें।

DDoS और प्रतिक्रिया-हेडर नीति
[ddos]
enabled = true
mode = "normal"
requests_per_minute = 600
burst = 100
block_seconds = 300

[security.response_headers]
enabled = true
nosniff = true
frame_deny = true
referrer_no_referrer = true
hsts = "max-age=31536000; includeSubDomains"
content_security_policy = "default-src 'self'; frame-ancestors 'none'"

सामान्य यातायात के लिए सामान्य मोड का उपयोग करें, सक्रिय-हमले से निपटने के लिए stricter मोड का उपयोग करें, और लॉकडाउन मोड तब उपयोग करें जब केवल probes और स्पष्ट रूप से अनुमत मार्ग उपलब्ध होने चाहिए।

निजी निदान

कंट्रोल प्लेन का प्रदर्शन किए बिना एज का निरीक्षण करें।

सांख्यिकी और Prometheus मेट्रिक्स एक अलग प्रमाणीकृत लिस्नर पर चलते हैं। जब भी कोई भी एंडपॉइंट सक्रिय हो, इंस्ट्रुमेंटेशन सक्षम होना चाहिए।

प्रमाणीकृत स्थानीय निरीक्षण
[observability]
instrumentation = true
stats = true
metrics = true
listen = "127.0.0.1:9090"
token = "replace-with-at-least-32-random-printable-ascii-characters"

सुरक्षित संचालन

जानबूझकर पुनः लोड करें। रोलबैक करीब रखें।

कॉन्फ़िगरेशन पुनः लोड

फाइल-बैक्ड कॉन्फ़िगरेशन को संपादित करने के बाद SIGHUP भेजें। Webship प्रतिस्थापन को स्थापित करने से पहले सत्यापित करता है और सत्यापन विफल होने पर चल रहे कॉन्फ़िगरेशन को बनाए रखता है।

अपग्रेड और रोलबैक

नई बाइनरी को पिछली संस्करण के बगल में इंस्टॉल करें, इसके साथ प्रोडक्शन कॉन्फ़िगरेशन को मान्य करें, फिर स्वास्थ्य, TLS, प्रॉक्सी और मेट्रिक्स को सत्यापित करें। जब तक हर गेट पास न हो जाए, तब तक पिछली बाइनरी रखें।

रिलोड और systemd कमांड
kill -HUP "$(pidof webship)"
/usr/local/bin/webship update --config /etc/webship/production.toml
sudo systemctl daemon-reload
sudo systemctl enable --now webship
sudo systemctl status webship

कमांड-लाइन संदर्भ

छोटी सतह, स्पष्ट स्टार्टअप।

webship [OPTIONS] | webship update [OPTIONS]

-सी, --कॉन्फिग पाथ
TOML फ़ाइल चुनें। अगर यह मौजूद नहीं है, तो Webship इसे निजी लोकलहोस्ट TLS पहचान के साथ बनाता है।
--चेक-कॉन्फिग
पूरा कॉन्फ़िगरेशन सत्यापित करें और लिस्नर शुरू किए बिना बाहर निकलें।
--प्रिंट-प्रभावी-विन्यास
सीक्रेट्स हटाकर मर्ज किया गया प्रभावी कॉन्फ़िगरेशन प्रिंट करें।
अद्यतन
साइन की गई कम्युनिटी मैनिफेस्ट को सत्यापित करें, इस सटीक प्लेटफ़ॉर्म लक्ष्य का चयन करें, और जब कोई नई संस्करण उपलब्ध हो तो उसे इंस्टॉल करें।
--मदद / --संस्करण
प्रिंट कमांड मदद या इंस्टॉल की गई Webship संस्करण।

सामान्य विफलता मोड

कॉन्फ़िगरेशन से शुरू करें, फिर बाहर की ओर बढ़ें।

  1. --check-config चलाएँ और सबसे पहले रिपोर्ट की गई त्रुटि को सही करें; अज्ञात TOML फ़ील्ड अस्वीकृत हैं।
  2. सुनिश्चित करें कि कॉन्फ़िगर किए गए TCP और UDP पोर्ट उपलब्ध हैं और फ़ायरवॉल द्वारा अनुमति दी गई हैं।
  3. पुष्टि करें कि प्रमाणपत्र और कुंजी मौजूद हैं, सेवा खाते द्वारा पढ़ी जा सकती हैं, और मेल खाने वाला जोड़ा बनाते हैं।
  4. स्वचालित TLS के लिए, पुष्टि करें कि हर कॉन्फ़िगर डोमेन Webship होस्ट को हल करता है।
  5. DNS या बाहरी लोड पथ के माध्यम से परीक्षण करने से पहले स्थानीय एप्लिकेशन लिसनर पर /health कॉल करें।
  6. जब रनटाइम साक्ष्य की आवश्यकता हो, तो अस्थायी रूप से प्रमाणित ऑब्ज़र्वेबिलिटी सक्षम करें।