Webship documentatie

Installeer, stel in en automatiseer Webship.

Stel de AI-Native Webship edge-server in, valideer, implementeer en automatiseer deze met beknopte TOML-voorbeelden en versie-vaste operationele richtlijnen.

Documentatieversie

Webship 1.1.0Huidig

Uitgebracht 2026-08-23. Deze URL is vastgezet op de geselecteerde release.

Standaardluisteraar
127.0.0.1:4433
Configuratie
TOML
TLS
TLS 1.3

Productoverzicht

Één server tussen het netwerk en uw applicatie.

Webship is een zelfgehoste Rust edge- en statische webserver. Eén runtime beëindigt moderne protocollen, past edge-beleid toe, levert bestanden en proxyt applicatieverzoeken.

Moderne transport

Accepteer HTTP/1.1, HTTP/2 en HTTP/3, met TLS 1.3 en een optionele WebTransport-endpoint.

Statische en geproxiede levering

Dien statische bestanden met validators en voorgecomprimeerde zijwagens, of proxy applicatieverkeer via begrensde upstream-pools.

Veilige standaardinstellingen

Begin met de WAF, DDoS-controles, bot-uitdaging, responsbeveiligingsheaders, API Shield en dot-bestand bescherming ingeschakeld.

Observeerbare operaties

Gebruik geauthentiseerde statistieken, Prometheus-metrics, aanvraag-ID's, soepele herlaadacties en de optionele MCP-controlplane.

Snelle start

Van release-binaire naar gezonde listener.

Start op loopback, valideer alles voordat je bindt, en verifieer de ingebouwde health-respons voordat je publiek verkeer toevoegt.

  1. Bereid bestanden voor

    Plaats het release-binary, het TOML-configuratiebestand, de statische root, en eventuele geconfigureerde TLS-certificaat- en sleutelbestanden op de host.

  2. Valideer en inspecteer

    Voer beide configuratie-opdrachten uit. Los de eerste fout op en controleer het geanonimiseerde effectieve resultaat voordat je start.

  3. Privé starten

    Start Webship met het geselecteerde TOML-bestand. Voeg een volledig certificaatpaar of automatische TLS toe wanneer de site klaar is voor veilig openbaar verkeer.

  4. Verifieer de runtime

    Roep lokaal GET /health aan. Test daarna statische paden, TLS, proxyroutes, beveiligingsregels en geverifieerde monitoring.

Minimale config.toml
listen = "127.0.0.1:4433"
workers = 4
root = "./public"
Valideer vóór opstarten
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
Starten en verifiëren
/usr/local/bin/webship --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:4433/health

Snelle startgids voor AI-agents

Verbind een AI-agent met Webship in vijf regels.

Verbind Claude Code, OpenAI, DeepSeek of een andere compatibele MCP-client via een privé SSH-tunnel. De agent ontvangt een geverifieerde operationele interface zonder de openbare luisteraar te delen of controlegegevens bloot te stellen aan internetverkeer.

Vijfregelige MCP clientconfiguratie
{
  "mcpServers": {
    "webship": { "url": "https://localhost:19443/mcp",
      "headers": { "Authorization": "Bearer <token>" } }
  } }

Statische levering

Dien een directory met protocol-bewuste standaardinstellingen.

Stel een root globaal of per website in. TLS-sites standaard naar HTTP/3; niet-versleutelde sites standaard naar HTTP/1.1 en H2C. Overschrijf HTTP/1.1, HTTP/2 en HTTP/3 onafhankelijk voor elke site.

Domeinspecifieke statische site
[[sites]]
domain = "app.example.com"
root = "/srv/app"
listen = "0.0.0.0:443"

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

De ingebouwde router ondersteunt GET en HEAD, byte-ranges, voorwaardelijke verzoeken, validators en .br, .zst en .gz bijlagen. Paden naar dot-bestanden worden standaard geweigerd; .well-known blijft beschikbaar.

Applicatieverkeer

Routeer aanvragen naar een of meer upstreams.

Schakel reverse proxy in, stem een host en pad af, en definieer vervolgens een uiteindelijke onvoorwaardelijke policy. Webship ondersteunt begrensde pools, health checks, load balancing, circuit breakers, veilige bodyloze retries, WebSockets en caching.

Twee-upstream API-route
[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 en HTTP/3

Gebruik handmatige certificaten of laat Webship ze beheren.

Webship accepteert TLS 1.3. HTTP/3 draait over de bijpassende UDP-listener; schakel HTTP/1.1 of HTTP/2 expliciet in wanneer een TLS-site ook TCP-compatibiliteit nodig heeft.

Automatische TLS met 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-beleid

Houd de veilige basislijn intact.

Webship schakelt standaard zijn belangrijkste beschermingslagen in. Stel limieten af voor je workload en valideer na elke wijziging van regels of header-beleid.

DDoS- en response-headerbeleid
[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'"

Gebruik normale modus voor regulier verkeer, under_attack voor strengere actieve-aanvalsafhandeling, en lockdown wanneer alleen probes en expliciet toegestane paden beschikbaar moeten blijven.

Privédiagnostiek

Inspecteer de edge zonder het controlevlak bloot te stellen.

Statistieken en Prometheus-metrieken draaien op een aparte geverifieerde listener. Instrumentatie moet worden ingeschakeld wanneer een van de eindpunten actief is.

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

Veilige bewerkingen

Laad bewust opnieuw. Houd rollback dichtbij.

Configuratie herladen

Stuur SIGHUP na het bewerken van een op bestand gebaseerde configuratie. Webship valideert de vervanging voordat deze wordt geïnstalleerd en behoudt de draaiende configuratie wanneer de validatie faalt.

Upgrade en rollback

Installeer de nieuwe binary naast de vorige versie, valideer de productieconfiguratie ermee en verifieer daarna de gezondheid, TLS, proxying en metrics. Houd de vorige binary totdat alle controles slagen.

Herlaad- en systemd-commando's
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

Profielgestuurde optimalisatie

Verzamel doel-native profielen zonder training en productie te verwarren.

Elke Webship 1.1-doel heeft een apart geïnstrumenteerd CLI voor het verzamelen van doel-native LLVM-profielgegevens onder uw representatieve verkeer. Gebruik exact dezelfde versie en doeltriple, oefen de routes en protocollen die belangrijk zijn, en stop het proces op een nette manier zodat het elk .profraw-bestand kan wegschrijven.

  1. Selecteer het exacte target

    Download de PGO-trainings-CLI waarvan de releaseversie en Rust target triple exact overeenkomen met de runtime die je wilt optimaliseren. Verifieer eerst de gepubliceerde SHA-256.

  2. Vang representatief verkeer op

    Stel LLVM_PROFILE_FILE in op een schrijfbare map, start het trainings-CLI met een gevalideerde kopie van de echte configuratie, speel representatief direct en reverse-proxy verkeer opnieuw af, en stop dan Webship netjes.

  3. Ruwe profielen samenvoegen

    Gebruik llvm-profdata van de compiler generatie die is opgenomen voor de release. Voeg elk uitgegeven .profraw-bestand samen tot één sparce webship.profdata-bestand.

  4. Herbouwen en gate

    Pas het samengevoegde profiel alleen toe op de exacte bron, compiler, crypto-provider, functieset en target die het heeft gegenereerd. Voer correctheids- en prestaties-gates uit voordat je promoot.

Linux, macOS en 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
Samenvoegen met de bijbehorende LLVM-toolchain
llvm-profdata merge -sparse ./profiles/*.profraw -o ./webship.profdata

Commandoreferentie

Kleine oppervlakte, expliciete opstart.

webship [OPTIONS] | webship update [OPTIONS]

-c, --config PAD
Selecteer het TOML-bestand. Als het niet bestaat, maakt Webship het aan met een private localhost TLS-identiteit.
--check-config
Valideer de volledige configuratie en sluit af zonder listeners te starten.
--print-effective-config
Druk de samengevoegde effectieve configuratie af met verwijderde geheimen.
update
Verifieer het ondertekende communitymanifest, selecteer dit exacte platformdoel en installeer een nieuwere versie wanneer deze beschikbaar is.
--help / --version
Druk de hulp bij het commando af of de geïnstalleerde Webship-versie.

Veelvoorkomende foutmodi

Begin met de configuratie en werk dan naar buiten.

  1. Voer --check-config uit en corrigeer de eerst gemelde fout; onbekende TOML-velden worden geweigerd.
  2. Controleer of de geconfigureerde TCP- en UDP-poorten beschikbaar zijn en toegestaan door de firewall.
  3. Bevestig dat het certificaat en de sleutel bestaan, door het serviceaccount leesbaar zijn, en een bij elkaar passend paar vormen.
  4. Voor automatische TLS, bevestig dat elk geconfigureerd domein naar de Webship host resolveert.
  5. Bel /health op de lokale applicatieluisteraar voordat je test via DNS of een externe laadroute.
  6. Schakel tijdelijk geauthenticeerde observeerbaarheid in wanneer runtimebewijs vereist is.