Webship dokumentasyon

I-install, i-configure, at i-automate ang Webship.

I-configure, suriin, i-deploy, at i-automate ang AI-Native Webship edge server gamit ang malinaw na mga halimbawa ng TOML at gabay sa pagpapatakbo na naka-pin sa bersyon.

Bersyon ng dokumentasyon

Webship 1.1.0Kasalukuyan

Ipinakawalang 2026-08-23. Ang URL na ito ay naka-pabaskug sa napiling release.

Default na tagapakinig
127.0.0.1:4433
Konfigurasyon
TOML
TLS
TLS 1.3

Pangkalahatang-ideya ng produkto

Isang server sa pagitan ng network at ng iyong aplikasyon.

Ang Webship ay isang self-hosted na Rust edge at static web server. Isang runtime ang nagtatapos ng mga modernong protocol, nagpapatupad ng patakaran sa edge, naghahain ng mga file, at nagpo-proxy ng mga kahilingan ng aplikasyon.

Makabagong transport

Tanggapin ang HTTP/1.1, HTTP/2, at HTTP/3, na may TLS 1.3 at isang opsyonal na WebTransport endpoint.

Static at proxied na paghahatid

Maglingkod ng mga static na file gamit ang mga validator at precompressed na sidecar, o i-proxy ang traffic ng application sa pamamagitan ng bounded upstream pools.

Ligtas na mga default

Magsimula sa WAF, mga kontrol sa DDoS, hamon sa bot, mga response security header, API Shield, at proteksyon ng dot-file na naka-enable.

Observable na operasyon

Gumamit ng authenticated statistics, Prometheus metrics, request IDs, graceful reloads, at ang opsyonal na MCP control plane.

Mabilis na pagsisimula

Mula sa release binary hanggang sa malusog na tagapakinig.

Magsimula sa loopback, i-validate ang lahat bago mag-bind, at beripikahin ang built-in na health response bago magdagdag ng pampublikong traffic.

  1. Ihanda ang mga file

    Ilagay ang release binary, ang TOML configuration nito, ang static root, at anumang naka-configure na TLS certificate at key files sa host.

  2. I-validate at suriin

    Patakbuhin ang parehong configuration commands. Ayusin ang unang error at suriin ang redacted effective result bago magsimula.

  3. Magsimula nang pribado

    Simulan ang Webship gamit ang napiling TOML file. Idagdag ang kumpletong certificate pair o awtomatikong TLS kapag handa na ang site para sa secure public traffic.

  4. Suriin ang runtime

    Tumawag ng GET /health nang lokal. Pagkatapos subukan ang mga static na ruta, TLS, proxy na ruta, mga patakaran sa seguridad, at na-authenticate na pagmamanman.

Minimal na config.toml
listen = "127.0.0.1:4433"
workers = 4
root = "./public"
Beripikahin bago magsimula
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
Simulan at beripikahin
/usr/local/bin/webship --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:4433/health

Mabilis na Patnubay para sa mga AI Agent

Ikonekta ang isang AI agent sa Webship sa limang linya.

Ikonekta ang Claude Code, OpenAI, DeepSeek, o anumang katugmang MCP client sa pamamagitan ng pribadong SSH tunnel. Tumatanggap ang ahente ng isang awtentikadong operations surface nang hindi ibinabahagi ang pampublikong listener o inilalantad ang control credentials sa trapiko ng internet.

Limang-linyang MCP na konfigurasyon ng kliyente
{
  "mcpServers": {
    "webship": { "url": "https://localhost:19443/mcp",
      "headers": { "Authorization": "Bearer <token>" } }
  } }

Static na paghahatid

Maglingkod sa isang directory na may protocol-aware defaults.

Mag-set ng root globally o para sa bawat site. Ang mga TLS site ay default sa HTTP/3 lamang; ang mga cleartext site ay default sa HTTP/1.1 at H2C. I-override ang HTTP/1.1, HTTP/2, at HTTP/3 nang paisa-isa para sa bawat site.

Domain-specific na static na site
[[sites]]
domain = "app.example.com"
root = "/srv/app"
listen = "0.0.0.0:443"

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

Sinusuportahan ng built-in na router ang GET at HEAD, byte ranges, conditional requests, validators, at mga sidecars na .br, .zst, at .gz. Ang mga dot-file na landas ay awtomatikong tinatanggihan; ang .well-known ay nananatiling available.

Traffic ng aplikasyon

I-route ang mga kahilingan sa isa o higit pang upstreams.

Payagan ang reverse proxying, itugma ang host at path, pagkatapos tukuyin ang panghuling walang kondisyon na patakaran. Sinusuportahan ng Webship ang bounded pools, health checks, load balancing, circuit breakers, safe bodyless retries, WebSockets, at caching.

Dalawang paunang API ruta
[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 at HTTP/3

Gumamit ng mga manwal na sertipiko o hayaan na pamahalaan ito ng Webship.

Tinatanggap ng Webship ang TLS 1.3. Ang HTTP/3 ay tumatakbo sa ibabaw ng katugmang UDP listener; paganahin ang HTTP/1.1 o HTTP/2 nang tahasan kapag ang isang TLS site ay nangangailangan din ng TCP compatibility.

Awtomatikong TLS gamit ang 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"

Patakaran sa gilid

Panatilihin ang secure na baseline na buo.

Pinapagana ng Webship ang pangunahing mga layer ng proteksyon nito sa default. Ayusin ang mga limitasyon para sa iyong workload at suriin pagkatapos ng bawat pagbabago ng rule o header-policy.

DDoS at patakaran sa response-header
[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'"

Gamitin ang normal na mode para sa karaniwang trapiko, under_attack para sa mas mahigpit na paghawak ng aktibong pag-atake, at lockdown kapag tanging mga probe at hayagang pinapayagang mga landas lamang ang dapat manatiling available.

Pribadong diagnostic

Inspectahin ang edge nang hindi ibinubunyag ang control plane.

Ang istatistika at mga metrics ng Prometheus ay tumatakbo sa isang hiwalay na authenticated listener. Kailangang i-enable ang instrumentation tuwing aktibo ang alinmang endpoint.

Na-authenticate na lokal na obserbabilidad
[observability]
instrumentation = true
stats = true
metrics = true
listen = "127.0.0.1:9090"
token = "replace-with-at-least-32-random-printable-ascii-characters"

Ligtas na operasyon

Mag-reload nang maingat. Panatilihin ang rollback na malapit.

Pag-reload ng configuration

Magpadala ng SIGHUP pagkatapos i-edit ang isang configuration na may backing file. Webship sinusuri ang kapalit bago ito i-install at pinananatili ang tumatakbong configuration kapag nabigo ang pagsusuri.

Pag-upgrade at rollback

I-install ang bagong binary sa tabi ng nakaraang bersyon, i-validate ang production configuration gamit ito, pagkatapos ay suriin ang kalusugan, TLS, proxying, at metrics. Panatilihin ang nakaraang binary hanggang sa pumasa ang bawat gate.

I-reload at mga utos ng 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

Optimization na gabay sa profile

Mangolekta ng mga target-native na profile nang hindi inililito ang training at production.

Bawat Webship 1.1 na target ay may hiwalay na instrumentadong CLI para mangolekta ng target-native na LLVM profile data sa ilalim ng iyong kinatawan na traffic. Gamitin ang eksaktong bersyon at target triple, gamitin ang mga ruta at protocol na mahalaga, at ihinto ang proseso nang maayos upang ma-flush nito ang bawat .profraw file.

  1. Piliin ang eksaktong target

    I-download ang PGO training CLI na ang release version at Rust target triple ay eksaktong tumutugma sa runtime na nais mong i-optimize. Beripikahin muna ang inilathalang SHA-256 nito.

  2. Kunin ang kinatawan na traffic

    Itakda ang LLVM_PROFILE_FILE sa isang direktoryo na maaaring sulatan, simulan ang training CLI gamit ang beripikadong kopya ng totoong configuration, ulitin ang kinatawan na diretso at reverse-proxy na traffic, pagkatapos ay ihinto ang Webship nang maayos.

  3. Pagsamahin ang raw profiles

    Gamitin ang llvm-profdata mula sa compiler generation na naitala para sa release. Pagsamahin ang bawat inilabas na .profraw file sa isang sparse webship.profdata file.

  4. I-rebuild at gate

    Ilapat ang pinagsamang profile lamang sa eksaktong source, compiler, crypto provider, feature set, at target na nag-generate nito. Patakbuhin ang correctness at performance gates bago i-promote.

Linux, macOS, at OpenHarmony
mkdir -p ./profiles
export LLVM_PROFILE_FILE="$PWD/profiles/webship-%p-%m.profraw"
./webship-pgo-training-1.1.0-<target> --config ./webship.toml
Windows PowerShell
New-Item -ItemType Directory -Force ./profiles
$env:LLVM_PROFILE_FILE = "$PWD/profiles/webship-%p-%m.profraw"
.\webship-pgo-training-1.1.0-<target>.exe --config .\webship.toml
Pagsamahin sa tamang LLVM toolchain
llvm-profdata merge -sparse ./profiles/*.profraw -o ./webship.profdata

Sangguniang pang-command-line

Maliit na ibabaw, malinaw na pagsisimula.

webship [OPTIONS] | webship update [OPTIONS]

-c, --config PATH
Piliin ang TOML file. Kung ito ay wala, gagawin ito ng Webship na may pribadong localhost TLS identity.
--check-config
Suriin ang buong configuration at lumabas nang hindi sinisimulan ang mga listener.
--print-effective-config
I-print ang pinagsamang epektibong configuration na tinanggal ang mga sikreto.
update
Suriin ang pinirmang community manifest, piliin ang eksaktong target na platform na ito, at mag-install ng mas bagong bersyon kapag mayroon.
--help / --version
I-print ang tulong sa utos o ang naka-install na bersyon ng Webship.

Karaniwang mga paraan ng pagkabigo

Magsimula sa configuration, pagkatapos ay lumipat palabas.

  1. Patakbuhin ang --check-config at itama ang unang naiulat na error; tinatanggihan ang mga hindi kilalang larangan ng TOML.
  2. Kumpirmahin na ang naka-configure na TCP at UDP na mga port ay available at pinapayagan ng firewall.
  3. Kumpirmahin na umiiral ang sertipiko at key, mababasa ng service account, at bumubuo ng magkatugmang pares.
  4. Para sa awtomatikong TLS, kumpirmahin na bawat naka-configure na domain ay tumutugon sa Webship host.
  5. Tawagan ang /health sa lokal na tagapakinig ng aplikasyon bago subukan sa pamamagitan ng DNS o isang panlabas na load path.
  6. Pansamantalang paganahin ang nagpapatotoong obeserbabilidad kapag kinakailangan ang ebidensiya ng runtime.