Dokumentasi Webship

Pasang, konfigurasikan, dan automasikan Webship.

Konfigurasikan, sahkan, terapkan, dan automasikan pelayan tepi AI-Native Webship dengan contoh TOML yang ringkas dan panduan operasi yang diperingkat versi.

Versi dokumentasi

Webship 1.0.0

Dikeluarkan 2026-08-22. URL ini dipasangkan dengan pelepasan yang dipilih.

Pendengar lalai
127.0.0.1:4433
Konfigurasi
TOML
TLS
TLS 1.3

Gambaran keseluruhan produk

Satu pelayan antara rangkaian dan aplikasi anda.

Webship ialah Rust tepi dan pelayan web statik yang hos sendiri. Satu runtime menamatkan protokol moden, menerapkan polisi tepi, menyajikan fail, dan memajukan permintaan aplikasi.

Pengangkutan moden

Terima HTTP/1.1, HTTP/2, dan HTTP/3, dengan TLS 1.3 dan titik akhir WebTransport pilihan.

Penghantaran statik dan proksi

Hidangkan fail statik dengan validator dan sidecar yang terkompresi terlebih dahulu, atau proxikan trafik aplikasi melalui kolam huluan yang terbatas.

Tetapan selamat

Mula dengan WAF, kawalan DDoS, cabaran bot, header keselamatan respons, Perisai API, dan perlindungan fail titik diaktifkan.

Operasi yang boleh diperhatikan

Gunakan statistik yang disahkan, metrik Prometheus, ID permintaan, muat semula secara teratur, dan kawalan MCP pilihan.

Mula pantas

Daripada binari pelepasan kepada pendengar yang sihat.

Mula pada loopback, sahkan segala-galanya sebelum mengikat, dan sahkan respons kesihatan terbina sebelum menambahkan lalu lintas awam.

  1. Sediakan fail

    Letakkan binari pelepasan, konfigurasi TOMLnya, akar statik, dan mana-mana fail sijil dan kunci TLS yang disediakan pada hos.

  2. Sahkan dan periksa

    Jalankan kedua-dua arahan konfigurasi. Betulkan ralat pertama dan periksa hasil berkesan yang disunting sebelum permulaan.

  3. Mulakan secara peribadi

    Mulakan Webship dengan fail TOML yang dipilih. Tambah pasangan sijil lengkap atau TLS automatik apabila laman web bersedia untuk trafik awam yang selamat.

  4. Sahkan runtime

    Panggil GET /health secara tempatan. Kemudian uji laluan statik, TLS, laluan proksi, peraturan keselamatan, dan pemantauan yang disahkan.

Config.toml minimum
listen = "127.0.0.1:4433"
workers = 4
root = "./public"
Sahkan sebelum permulaan
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
Mula dan sahkan
/usr/local/bin/webship --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:4433/health

Panduan Mula Pantas untuk Ejen AI

Sambungkan ejen AI ke Webship dalam lima baris.

Sambungkan Claude Code, OpenAI, DeepSeek, atau mana-mana klien MCP yang serasi melalui terowong SSH peribadi. Ejen menerima permukaan operasi yang disahkan tanpa berkongsi pendengar awam atau mendedahkan kelayakan kawalan kepada trafik internet.

Konfigurasi klien MCP lima baris
{
  "mcpServers": {
    "webship": { "url": "https://localhost:19443/mcp",
      "headers": { "Authorization": "Bearer <token>" } }
  } }

Penghantaran statik

Melayani direktori dengan lalai yang menyedari protokol.

Tetapkan root secara global atau per tapak. Tapak TLS lalai kepada HTTP/3 sahaja; tapak teks jelas lalai kepada HTTP/1.1 dan H2C. Gantikan HTTP/1.1, HTTP/2, dan HTTP/3 secara bebas untuk setiap tapak.

Laman statik khusus domain
[[sites]]
domain = "app.example.com"
root = "/srv/app"
listen = "0.0.0.0:443"

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

Penghala terbina dalam menyokong GET dan HEAD, julat bait, permintaan bersyarat, validator, serta fail sisi .br, .zst, dan .gz. Laluan fail titik ditolak secara lalai; .well-known kekal tersedia.

Lalu lintas aplikasi

Hantar permintaan ke satu atau lebih huluan.

Dayakan pemajuan proksi terbalik, padankan host dan laluan, kemudian tetapkan polisi muktamad tanpa syarat. Webship menyokong kolam terhad, pemeriksaan kesihatan, pengimbangan beban, pemutus litar, cubaan semula selamat tanpa badan, WebSockets, dan penimbunan.

Rute API dua aliran hulu
[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 dan HTTP/3

Gunakan sijil manual atau biarkan Webship mengurusnya.

Webship menerima TLS 1.3. HTTP/3 berjalan melalui pendengar UDP yang sepadan; aktifkan HTTP/1.1 atau HTTP/2 secara eksplisit apabila tapak TLS juga memerlukan keserasian TCP.

TLS automatik dengan 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"

Polisi tepi

Kekalkan garis asas keselamatan.

Webship mengaktifkan lapisan perlindungan utamanya secara lalai. Laraskan had untuk beban kerja anda dan sahkan selepas setiap perubahan peraturan atau polisi tajuk.

Dasar DDoS dan pengepala-respons
[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'"

Gunakan mod normal untuk trafik biasa, under_attack untuk pengendalian serangan aktif yang lebih ketat, dan lockdown apabila hanya probe dan laluan yang dibenarkan secara eksplisit yang harus tersedia.

Diagnostik peribadi

Periksa tepi tanpa mendedahkan pesawat kawalan.

Statistik dan metrik Prometheus dijalankan pada pendengar yang diautentikasi secara berasingan. Instrumentasi mesti diaktifkan setiap kali salah satu titik akhir aktif.

Kesedaran tempatan yang diautentikasi
[observability]
instrumentation = true
stats = true
metrics = true
listen = "127.0.0.1:9090"
token = "replace-with-at-least-32-random-printable-ascii-characters"

Operasi selamat

Muat semula dengan sengaja. Kekalkan kembali dengan dekat.

Muat semula konfigurasi

Hantar SIGHUP selepas mengedit konfigurasi berpandukan fail. Webship mengesahkan penggantian sebelum memasangnya dan mengekalkan konfigurasi yang sedang berjalan apabila pengesahan gagal.

Kemas kini dan kembalikan

Pasang binari baru di sebelah versi sebelumnya, sahkan konfigurasi pengeluaran dengannya, kemudian periksa kesihatan, TLS, proksi, dan metrik. Simpan binari sebelumnya sehingga setiap pintu lulus.

Arahan muat semula dan 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

Rujukan baris arahan

Permukaan kecil, permulaan yang jelas.

webship [OPTIONS] | webship update [OPTIONS]

-c, --config PATH
Pilih fail TOML. Jika ia tidak wujud, Webship akan menciptanya dengan identiti TLS localhost peribadi.
--check-config
Sahkan konfigurasi lengkap dan keluar tanpa memulakan pendengar.
--print-effective-config
Cetak konfigurasi berkesan gabungan dengan rahsia dibuang.
kemaskini
Sahkan manifest komuniti yang ditandatangani, pilih sasaran platform yang tepat, dan pasang versi yang lebih baru apabila ada.
--help / --version
Cetak arahan bantuan atau versi Webship yang dipasang.

Mod kegagalan biasa

Mula dengan konfigurasi, kemudian bergerak ke luar.

  1. Jalankan --check-config dan betulkan ralat pertama yang dilaporkan; medan TOML yang tidak dikenali ditolak.
  2. Sahkan porta TCP dan UDP yang dikonfigurasi adalah tersedia dan dibenarkan oleh firewall.
  3. Sahkan sijil dan kunci wujud, boleh dibaca oleh akaun perkhidmatan, dan membentuk pasangan yang sepadan.
  4. Untuk TLS automatik, sahkan setiap domain yang dikonfigurasikan menyelesaikan kepada hos Webship.
  5. Panggil /health pada pendengar aplikasi tempatan sebelum menguji melalui DNS atau laluan beban luaran.
  6. Dayakan keterlihatan yang diautentikasi secara sementara apabila bukti masa nyata diperlukan.