Webship دستاویزات

Webship انسٹال کریں، ترتیب دیں، اور خودکار بنائیں۔

AI-Native Webship ایج سرور کو مختصر TOML مثالوں اور ورژن پِنڈ آپریٹنگ رہنمائی کے ساتھ ترتیب دیں، تصدیق کریں، تعینات کریں اور خودکار بنائیں۔

دستاویزی ورژن

Webship 1.0.0

ریلیز شدہ 2026-08-22۔ یہ URL منتخب شدہ ریلیز سے منسلک ہے۔

ڈیفالٹ سننے والا
127.0.0.1:4433
ترتیب
TOML
TLS
TLS 1.3

پروڈکٹ کا جائزہ

نیٹ ورک اور آپ کی ایپلیکیشن کے درمیان ایک سرور۔

Webship ایک سیلف ہوسٹڈ Rust ایج اور سٹیٹک ویب سرور ہے۔ ایک رن ٹائم جدید پروٹوکولز کو ختم کرتا ہے، ایج پالیسی نافذ کرتا ہے، فائلیں فراہم کرتا ہے، اور ایپلیکیشن کی درخواستوں کو پراکسی کرتا ہے۔

جدید ٹرانسپورٹ

HTTP/1.1، HTTP/2، اور HTTP/3 قبول کریں، TLS 1.3 کے ساتھ اور اختیاری WebTransport اینڈ پوائنٹ کے ساتھ۔

اسٹیٹک اور پراکسیڈ ترسیل

ویلیڈیٹرز اور پری کمپریسڈ سائیڈ کارز کے ساتھ اسٹیٹک فائلیں فراہم کریں، یا منسلک اپ اسٹریم پولز کے ذریعے ایپلیکیشن ٹریفک کو پراکسی کریں۔

محفوظ ڈیفالٹس

WAF، DDoS کنٹرولز، بوٹ چیلنج، ریسپانس سیکیورٹی ہیڈرز، API شیلڈ، اور ڈاٹ فائل پروٹیکشن کو فعال کرکے شروع کریں۔

قابل مشاہدہ آپریشنز

مصدقہ اعداد و شمار، پرومیٹھیئس میٹرکس، ریکویسٹ آئی ڈیز، نگہداشت سے ری لوڈز، اور اختیاری 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 ایجنٹس کے لیے فوری شروع کرنے کی رہنمائی

پانچ لائنوں میں ایک AI ایجنٹ کو Webship سے جوڑیں۔

کلاؤڈ کوڈ، اوپن اے آئی، ڈیپ سییک، یا کسی بھی ہم آہنگ MCP کلائنٹ کو نجی SSH ٹنل کے ذریعے کنیکٹ کریں۔ ایجنٹ ایک مستند آپریشن سطح وصول کرتا ہے بغیر یہ کہ پبلک لسنر شیئر کرے یا کنٹرول کے اسناد کو انٹرنیٹ ٹریفک کے سامنے ظاہر کرے۔

پانچ لائنوں کا MCP کلائنٹ کنفیگریشن
{
  "mcpServers": {
    "webship": { "url": "https://localhost:19443/mcp",
      "headers": { "Authorization": "Bearer <token>" } }
  } }

اسٹیٹک ڈیلیوری

پروٹوکول سے آگاہ ڈیفالٹس کے ساتھ ایک ڈائریکٹری کی سروس کریں۔

گلوبلی یا ہر سائٹ کے لیے ایک روٹ سیٹ کریں۔ TLS سائٹس کا ڈیفالٹ صرف HTTP/3 ہے؛ کلیر ٹیکسٹ سائٹس کا ڈیفالٹ 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 محدود پولز، صحت کی جانچ، لوڈ بیلنسنگ، سرکٹ بریکرز، محفوظ بغیر باڈی کے ریٹریز، ویب ساکٹس، اور کیشنگ کو سپورٹ کرتا ہے۔

دو اپ اسٹریم API روٹ
[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'"

ریگولر ٹریفک کے لیے نارمل موڈ استعمال کریں، فعال حملے کی سخت ہینڈلنگ کے لیے under_attack، اور lockdown جب صرف 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]

-c, --config PATH
TOML فائل منتخب کریں۔ اگر یہ موجود نہ ہو، تو Webship اسے پرائیویٹ لوکل ہوسٹ TLS شناخت کے ساتھ بناتا ہے۔
--check-config
مکمل کنفیگرشن کی تصدیق کریں اور لسنرز شروع کیے بغیر باہر نکلیں۔
--print-effective-config
مرج شدہ مؤثر کنفیگرشن پرنٹ کریں جس سے سیکریٹس ہٹا دیے گئے ہوں۔
update
سائن شدہ کمیونٹی مینفسٹ کی تصدیق کریں، اس مخصوص پلیٹ فارم ہدف کو منتخب کریں، اور جب نیا ورژن دستیاب ہو تو انسٹال کریں۔
--help / --version
پرنٹ کمانڈ کی ہیلپ یا نصب شدہ Webship ورژن۔

عام ناکامی کے طریقے

ترتیب سے شروع کریں، پھر باہر کی طرف بڑھیں۔

  1. --check-config چلائیں اور پہلی رپورٹ شدہ غلطی کو درست کریں؛ نامعلوم TOML فیلڈز مسترد کر دی جاتی ہیں۔
  2. یقین دہانی کریں کہ ترتیب شدہ TCP اور UDP پورٹس دستیاب ہیں اور فائر وال کے ذریعہ اجازت یافتہ ہیں۔
  3. تصدیق کریں کہ سرٹیفکیٹ اور کلید موجود ہیں، سروس اکاؤنٹ کے ذریعہ پڑھی جا سکتی ہیں، اور ایک جوڑا بناتی ہیں۔
  4. خودکار TLS کے لیے، اس بات کی تصدیق کریں کہ ہر تشکیل شدہ ڈومین Webship ہوسٹ کی طرف حل ہوتا ہے۔
  5. DNS یا کسی خارجی لوڈ راستے کے ذریعے جانچ سے پہلے مقامی ایپلیکیشن لسنر پر /health کال کریں۔
  6. جب رن ٹائم شواہد کی ضرورت ہو تو وقتی طور پر تصدیق شدہ مشاہداتی صلاحیت کو فعال کریں۔