مستندات Webship

نصب، پیکربندی و خودکارسازی Webship.

پیکربندی، اعتبارسنجی، استقرار و خودکارسازی سرور مرزی AI-محور 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 Shield، و حفاظت از فایل‌های نقطه‌ای فعال شروع کنید.

عملیات قابل مشاهده

استفاده از آمار احراز هویت‌شده، معیارهای Prometheus، شناسه‌های درخواست، بارگذاری مجدد با ملایمت، و صفحه کنترل اختیاری MCP.

شروع سریع

از باینری نسخه منتشر شده تا شنونده سالم.

شروع روی لوپ‌بک، اعتبارسنجی همه چیز قبل از اتصال، و بررسی پاسخ سلامت داخلی قبل از اضافه کردن ترافیک عمومی.

  1. آماده‌سازی فایل‌ها

    فایل باینری نسخه، فایل پیکربندی TOML آن، ریشه استاتیک و هر فایل گواهی و کلید TLS پیکربندی شده را روی میزبان قرار دهید.

  2. اعتبارسنجی و بررسی

    هر دو دستور پیکربندی را اجرا کنید. اولین خطا را برطرف کنید و نتیجه مؤثر حذف‌شده را قبل از راه‌اندازی بررسی کنید.

  3. به صورت خصوصی راه‌اندازی کنید

    Webship را با فایل TOML انتخاب شده راه‌اندازی کنید. یک جفت گواهی کامل یا 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

راهنمای شروع سریع برای عامل‌های هوش مصنوعی

اتصال یک عامل هوش مصنوعی به Webship در پنج خط.

اتصال به Claude Code، OpenAI، DeepSeek، یا هر کلاینت 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، محدوده‌های بایت، درخواست‌های شرطی، اعتبارسنج‌ها و فایل‌های جانبی .br، .zst و .gz پشتیبانی می‌کند. مسیرهای فایل نقطه‌ای به‌طور پیش‌فرض رد می‌شوند؛ مسیر .well-known همچنان در دسترس باقی می‌ماند.

ترافیک برنامه

هدایت درخواست‌ها به یک یا چند منبع بالادستی.

فعال‌سازی پروکسی معکوس، هماهنگی یک میزبان و مسیر، و سپس تعریف یک سیاست نهایی بدون شرط. Webship از استخرهای محدود، بررسی سلامت، متعادل‌سازی بار، مدار شکن‌ها، تلاش‌های ایمن بدون بدنه، وب‌سوکت‌ها و کشینگ پشتیبانی می‌کند.

مسیر API با دو منبع بالا (two-upstream)
[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 خودکار با TLS-ALPN-01
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 استفاده کنید.

تشخیص‌های خصوصی

لبه را بررسی کنید بدون اینکه صفحه کنترل را افشا کنید.

آمارها و متریک‌های 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
پیکربندی نهایی ادغام شده را با حذف اسرار چاپ کنید.
به روز رسانی کنید
مانیفست امضا شده جامعه را تأیید کنید، این هدف دقیق پلتفرم را انتخاب کنید و در صورت وجود نسخه جدیدتر، آن را نصب کنید.
--help / --نسخه
راهنمای دستور یا نسخه نصب شده Webship را چاپ کنید.

حالات معمول خطا

با پیکربندی شروع کنید، سپس به بیرون حرکت کنید.

  1. --check-config را اجرا کنید و اولین خطای گزارش شده را اصلاح کنید؛ فیلدهای ناشناخته TOML رد می‌شوند.
  2. تأیید کنید که پورت‌های TCP و UDP پیکربندی‌شده در دسترس بوده و توسط دیوار آتش مجاز هستند.
  3. اطمینان حاصل کنید که گواهینامه و کلید وجود دارند، قابل خواندن توسط حساب سرویس هستند و یک جفت مطابقت دارند.
  4. برای TLS خودکار، اطمینان حاصل کنید که هر دامنه پیکربندی شده به میزبان Webship حل می‌شود.
  5. قبل از تست از طریق DNS یا مسیر بارگذاری خارجی، /health را روی شنونده برنامه محلی فراخوانی کنید.
  6. فعال‌سازی موقت قابلیت مشاهده‌ی معتبر زمانی که شواهد زمان اجرا مورد نیاز است.