Webship dokumentation

Installera, konfigurera och automatisera Webship.

Konfigurera, validera, distribuera och automatisera den AI-native Webship kantservern med koncisa TOML-exempel och versionslåst driftvägledning.

Dokumentationsversion

Webship 1.1.0Aktuell

Släppt 2026-08-23. Denna URL är fastlåst till den valda utgåvan.

Standardlyssnare
127.0.0.1:4433
Konfiguration
TOML
TLS
TLS 1.3

Produktöversikt

En server mellan nätverket och din applikation.

Webship är en självhystad Rust edge- och statisk webbserver. En runtime hanterar moderna protokoll, tillämpar edge-policy, serverar filer och proxar applikationsförfrågningar.

Modern transport

Acceptera HTTP/1.1, HTTP/2 och HTTP/3, med TLS 1.3 och en frivillig WebTransport endpoint.

Statisk och proxyd leverans

Servera statiska filer med validatorer och förkomprimerade sidobilar, eller proxya applikationstrafik genom begränsade upstream-pooler.

Säkra standardinställningar

Börja med att aktivera WAF, DDoS-kontroller, bot-utmaning, säkerhetsrubriker i svar, API Shield och skydd av punktfiler.

Observerbara operationer

Använd autentiserad statistik, Prometheus-metriker, förfrågnings-ID:n, smidiga omladdningar, och det frivilliga MCP kontrollplanet.

Snabbstart

Från release-binär till hälsosam lyssnare.

Starta på loopback, validera allt innan bindning, och verifiera det inbyggda hälso-svaret innan du lägger till offentlig trafik.

  1. Förbered filer

    Placera release-binären, dess TOML-konfiguration, den statiska roten och eventuella konfigurerade TLS-certifikat- och nyckelfiler på värden.

  2. Validera och inspektera

    Kör båda konfigurationskommandona. Åtgärda det första felet och inspektera det raderade effektiva resultatet innan start.

  3. Starta privat

    Starta Webship med den valda TOML-filen. Lägg till ett komplett certifikatpar eller automatisk TLS när webbplatsen är redo för säker offentlig trafik.

  4. Verifiera körningen

    Anropa GET /health lokalt. Testa sedan statiska sökvägar, TLS, proxyrutter, säkerhetsregler och autentiserad övervakning.

Minimal config.toml
listen = "127.0.0.1:4433"
workers = 4
root = "./public"
Verifiera innan uppstart
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
Starta och verifiera
/usr/local/bin/webship --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:4433/health

Snabbstartsguide för AI-agenter

Anslut en AI-agent till Webship på fem rader.

Anslut Claude Code, OpenAI, DeepSeek eller någon kompatibel MCP-klient genom en privat SSH-tunnel. Agenten får en autentiserad operationsyta utan att dela den offentliga lyssnaren eller exponera kontrolluppgifter för internettrafik.

Fem-raders MCP klientkonfiguration
{
  "mcpServers": {
    "webship": { "url": "https://localhost:19443/mcp",
      "headers": { "Authorization": "Bearer <token>" } }
  } }

Statisk leverans

Servera en katalog med protokollmedvetna standarder.

Ställ in en rot globalt eller per webbplats. TLS-webbplatser använder som standard endast HTTP/3; klartextwebbplatser använder som standard HTTP/1.1 och H2C. Åsidosätt HTTP/1.1, HTTP/2 och HTTP/3 oberoende för varje webbplats.

Domänspecifik statisk webbplats
[[sites]]
domain = "app.example.com"
root = "/srv/app"
listen = "0.0.0.0:443"

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

Den inbyggda routern stöder GET och HEAD, byte-intervall, villkorliga förfrågningar, validatorer och .br, .zst och .gz sidvagnar. Dot-filvägar nekar som standard; .well-known förblir tillgängligt.

Applikationstrafik

Rikta begäranden till en eller flera upstreams.

Aktivera omvänd proxy, matcha en värd och väg, och definiera sedan en slutlig ovillkorlig policy. Webship stöder begränsade pooler, hälsokontroller, lastbalansering, kretsbrytare, säkra återförsök utan kropp, WebSockets och caching.

Två-upstream API-rutt
[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 och HTTP/3

Använd manuella certifikat eller låt Webship hantera dem.

Webship accepterar TLS 1.3. HTTP/3 körs över den matchande UDP-lyssnaren; aktivera HTTP/1.1 eller HTTP/2 uttryckligen när en TLS-webbplats också behöver TCP-kompatibilitet.

Automatisk TLS med 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"

Edge-policy

Behåll den säkra baslinjen intakt.

Webship aktiverar sina huvudsakliga skyddslager som standard. Justera gränser för din arbetsbelastning och validera efter varje regel- eller header-policyändring.

DDoS- och svarshuvudspolicy
[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'"

Använd normalt läge för vanlig trafik, under_attack för striktare hantering av aktiva attacker, och lockdown när endast sonder och uttryckligen tillåtna vägar ska vara tillgängliga.

Privat diagnostik

Inspektera kanten utan att exponera kontrollplanet.

Statistik och Prometheus-metriker körs på en separat autentiserad lyssnare. Instrumentering måste vara aktiverad när någon av ändpunkterna är aktiva.

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

Säkra operationer

Ladda om medvetet. Håll återställning nära.

Konfigurationsomladdning

Skicka SIGHUP efter att ha redigerat en filbaserad konfiguration. Webship validerar ersättningen innan den installeras och behåller den körande konfigurationen när valideringen misslyckas.

Uppgradera och återställ

Installera den nya binären bredvid den tidigare versionen, validera produktionskonfigurationen med den, och verifiera sedan hälsa, TLS, proxy och mätvärden. Behåll den tidigare binären tills alla kontroller är godkända.

Kommandon för omstart och 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

Profilstyrd optimering

Samla in mål-nativa profiler utan att förväxla träning och produktion.

Varje Webship 1.1-mål har en separat instrumenterad CLI för att samla in mål-nativ LLVM-profilinformation under din representativa trafik. Använd exakt version och måltrippel, testa de rutter och protokoll som är viktiga, och stoppa processen på ett ordnat sätt så att den kan tömma varje .profraw-fil.

  1. Välj exakt mål

    Ladda ner PGO-tränings-CLI:n vars utgivningsversion och Rust måltrippel exakt matchar den runtime du avser att optimera. Kontrollera först dess publicerade SHA-256.

  2. Fånga representativ trafik

    Ställ in LLVM_PROFILE_FILE till en skrivbar katalog, starta tränings-CLI med en validerad kopia av den riktiga konfigurationen, spela upp representativ direkt- och omvänd-proxy-trafik, och stoppa sedan Webship på ett säkert sätt.

  3. Sammanfoga råa profiler

    Använd llvm-profdata från den kompilatorgeneration som registrerades för releasen. Slå ihop varje emitterad .profraw-fil till en enda sparsam webship.profdata-fil.

  4. Bygg om och kör grind

    Applicera den sammanslagna profilen endast på exakt den källkod, kompilator, kryptoleverantör, funktionsuppsättning och mål som genererade den. Kör korrekthets- och prestandagrindar innan befordran.

Linux, macOS och 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
Sammanfoga med den matchande LLVM-verktygskedjan
llvm-profdata merge -sparse ./profiles/*.profraw -o ./webship.profdata

Kommando-rad referens

Liten yta, tydlig start.

webship [OPTIONS] | webship update [OPTIONS]

-c, --config PATH
Välj TOML-filen. Om den inte finns, skapar Webship den med en privat localhost TLS-identitet.
--check-config
Validera den kompletta konfigurationen och avsluta utan att starta lyssnare.
--print-effective-config
Skriv ut den sammanslagna effektiva konfigurationen med borttagna hemligheter.
uppdatera
Verifiera det signerade communitymanifestet, välj detta exakta plattforms mål, och installera en nyare version när en finns.
--help / --version
Skriv ut kommandohjälp eller den installerade Webship-versionen.

Vanliga felmod

Börja med konfigurationen, sedan gå utåt.

  1. Kör --check-config och korrigera det första rapporterade felet; okända TOML-fält avvisas.
  2. Bekräfta att de konfigurerade TCP- och UDP-portarna är tillgängliga och tillåtna av brandväggen.
  3. Bekräfta att certifikatet och nyckeln finns, kan läsas av tjänstekontot och bildar ett matchande par.
  4. För automatisk TLS, bekräfta att varje konfigurerad domän pekar på Webship-värden.
  5. Anropa /health på den lokala applikationslyssnaren innan testning via DNS eller en extern lastväg.
  6. Aktivera autentiserad observerbarhet tillfälligt när runtime-bevis krävs.