Webship Dokumentation

Installieren, konfigurieren und automatisieren Sie Webship.

Konfigurieren, validieren, bereitstellen und automatisieren Sie den AI-nativen Webship Edge-Server mit prägnanten TOML-Beispielen und versionsgesicherter Betriebsanleitung.

Dokumentationsversion

Webship 1.1.0Aktuell

Veröffentlicht 2026-08-23. Diese URL ist auf die gewählte Version festgelegt.

Standard-Listener
127.0.0.1:4433
Konfiguration
TOML
TLS
TLS 1.3

Produktübersicht

Ein Server zwischen dem Netzwerk und Ihrer Anwendung.

Webship ist ein selbst gehosteter Rust Edge- und statischer Webserver. Eine Runtime beendet moderne Protokolle, wendet Edge-Richtlinien an, liefert Dateien aus und leitet Anwendungsanfragen weiter.

Moderne Transportmöglichkeiten

Akzeptieren Sie HTTP/1.1, HTTP/2 und HTTP/3 mit TLS 1.3 und einem optionalen WebTransport-Endpunkt.

Statische und weitergeleitete Bereitstellung

Statische Dateien mit Validatoren und vorkompilierten Sidecars ausliefern oder Anwendungsverkehr über begrenzte Upstream-Pools weiterleiten.

Sichere Standardwerte

Beginnen Sie mit aktiviertem WAF, DDoS-Kontrollen, Bot-Herausforderung, Sicherheits-Headern für Antworten, API-Schutz und Schutz von Punktdateien.

Beobachtbare Vorgänge

Verwenden Sie authentifizierte Statistiken, Prometheus-Metriken, Anfrage-IDs, sanfte Neustarts und die optionale MCP-Steuerungsebene.

Schneller Start

Vom Release-Binär zu einem gesunden Listener.

Starten Sie auf dem Loopback, validieren Sie alles vor dem Binden und überprüfen Sie die integrierte Gesundheitsantwort, bevor Sie öffentlichen Datenverkehr hinzufügen.

  1. Dateien vorbereiten

    Platzieren Sie die Release-Binärdatei, ihre TOML-Konfiguration, das statische Root-Verzeichnis und alle konfigurierten TLS-Zertifikats- und Schlüsseldateien auf dem Host.

  2. Validieren und inspizieren

    Führe beide Konfigurationsbefehle aus. Beheben Sie den ersten Fehler und überprüfen Sie das geschwärzte effektive Ergebnis vor dem Start.

  3. Fang privat an

    Starten Sie Webship mit der ausgewählten TOML-Datei. Fügen Sie ein vollständiges Zertifikatspaar oder automatisches TLS hinzu, wenn die Seite für sicheren öffentlichen Verkehr bereit ist.

  4. Überprüfen Sie die Laufzeit

    Ruf GET /health lokal an. Dann testet man statische Pfade, TLS, Proxy-Routen, Sicherheitsregeln und authentifizierte Überwachung.

Minimale config.toml
listen = "127.0.0.1:4433"
workers = 4
root = "./public"
Vor dem Start validieren
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
Starten und überprüfen
/usr/local/bin/webship --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:4433/health

Schnellstartanleitung für KI-Agenten

Verbinden Sie einen KI-Agenten in fünf Zeilen mit Webship.

Verbinden Sie Claude Code, OpenAI, DeepSeek oder einen beliebigen kompatiblen MCP-Client über einen privaten SSH-Tunnel. Der Agent erhält eine authentifizierte Operationsoberfläche, ohne den öffentlichen Listener zu teilen oder Steuerungsanmeldeinformationen dem Internetverkehr auszusetzen.

Fünfzeilige MCP-Clientkonfiguration
{
  "mcpServers": {
    "webship": { "url": "https://localhost:19443/mcp",
      "headers": { "Authorization": "Bearer <token>" } }
  } }

Statische Bereitstellung

Stellen Sie ein Verzeichnis mit protokollbewussten Standardeinstellungen bereit.

Setzen Sie ein Root global oder pro Seite. TLS-Seiten standardmäßig nur auf HTTP/3; Klartext-Seiten standardmäßig auf HTTP/1.1 und H2C. Überschreiben Sie HTTP/1.1, HTTP/2 und HTTP/3 unabhängig für jede Seite.

Domänenspezifische statische Website
[[sites]]
domain = "app.example.com"
root = "/srv/app"
listen = "0.0.0.0:443"

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

Der eingebaute Router unterstützt GET und HEAD, Byte-Range-Anfragen, bedingte Anfragen, Validatoren sowie .br-, .zst- und .gz-Sidecars. Dot-Dateipfade werden standardmäßig verweigert; .well-known bleibt verfügbar.

Anwendungsverkehr

Routen Sie Anfragen zu einem oder mehreren Upstreams.

Aktivieren Sie Reverse-Proxying, stimmen Sie einen Host und Pfad ab und definieren Sie dann eine endgültige bedingungslose Richtlinie. Webship unterstützt begrenzte Pools, Gesundheitsprüfungen, Lastenausgleich, Schaltkreise, sichere wiederholte Versuche ohne Body, WebSockets und Caching.

Zwei-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 und HTTP/3

Verwenden Sie manuelle Zertifikate oder lassen Sie Webship diese verwalten.

Webship nimmt TLS 1.3 an. HTTP/3 läuft über den entsprechenden UDP-Hörer; aktivieren Sie HTTP/1.1 oder HTTP/2 explizit, wenn eine TLS-Seite ebenfalls TCP-Kompatibilität benötigt.

Automatisches TLS mit 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-Richtlinie

Halten Sie die sichere Basislinie intakt.

Webship aktiviert standardmäßig seine Hauptschutzschichten. Passen Sie die Limits an Ihre Arbeitslast an und validieren Sie nach jeder Regel- oder Header-Policy-Änderung.

DDoS- und Response-Header-Richtlinie
[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'"

Verwenden Sie den Normalmodus für regulären Traffic, unter_attack für strengere aktive Angriffserkennung und Lockdown, wenn nur noch Sondierungen und ausdrücklich erlaubte Pfade verfügbar sein sollen.

Private Diagnostik

Untersuchen Sie den Edge, ohne die Steuerungsebene offenzulegen.

Statistiken und Prometheus-Metriken laufen auf einem separaten authentifizierten Listener. Die Instrumentierung muss aktiviert sein, sobald einer der Endpunkte aktiv ist.

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

Sichere Operationen

Bewusst neu laden. Halten Sie die Rückrollfunktion bereit.

Konfigurations-Neuladen

Senden Sie SIGHUP nach dem Bearbeiten einer dateibasierten Konfiguration. Webship validiert den Ersatz, bevor er installiert wird, und behält die laufende Konfiguration bei, wenn die Validierung fehlschlägt.

Upgrade und Rollback

Installieren Sie das neue Binary neben der vorherigen Version, validieren Sie die Produktionskonfiguration damit und überprüfen Sie dann Gesundheit, TLS, Proxy und Metriken. Behalten Sie das vorherige Binary, bis alle Gates bestanden sind.

Reload- und systemd-Befehle
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

Profilgesteuerte Optimierung

Sammeln Sie zielnative Profile, ohne Training und Produktion zu verwechseln.

Jedes Webship 1.1-Ziel verfügt über ein separates instrumentiertes CLI zum Sammeln von ziel-nativen LLVM-Profil-Daten unter Ihrer repräsentativen Last. Verwenden Sie die genaue Version und das Zieltriple, üben Sie die relevanten Routen und Protokolle aus, und beenden Sie den Prozess ordnungsgemäß, damit jede .profraw-Datei geschrieben werden kann.

  1. Wählen Sie das genaue Ziel

    Laden Sie die PGO-Trainings-CLI herunter, deren Release-Version und Rust Zieltriple exakt der Runtime entsprechen, die Sie optimieren möchten. Überprüfen Sie zuerst deren veröffentlichten SHA-256.

  2. Repräsentativen Verkehr erfassen

    Setzen Sie LLVM_PROFILE_FILE auf ein beschreibbares Verzeichnis, starten Sie die Trainings-CLI mit einer validierten Kopie der echten Konfiguration, spielen Sie repräsentativen Direkt- und Reverse-Proxy-Verkehr ab, und stoppen Sie dann Webship ordnungsgemäß.

  3. Rohe Profile zusammenführen

    Verwenden Sie llvm-profdata aus der für die Veröffentlichung aufgezeichneten Compiler-Generation. Führen Sie jede ausgegebene .profraw-Datei zu einer einzelnen sparse webship.profdata-Datei zusammen.

  4. Neu erstellen und prüfen

    Wenden Sie das zusammengeführte Profil nur auf die genaue Quelle, den Compiler, den Kryptografie-Anbieter, den Funktionssatz und das Ziel an, die es erzeugt haben. Führen Sie Korrektheits- und Leistungstests vor der Freigabe durch.

Linux, macOS und 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
Mit dem passenden LLVM-Toolchain zusammenführen
llvm-profdata merge -sparse ./profiles/*.profraw -o ./webship.profdata

Befehlszeilenreferenz

Kleine Oberfläche, expliziter Start.

webship [OPTIONS] | webship update [OPTIONS]

-c, --config PFAD
Wählen Sie die TOML-Datei aus. Falls sie nicht existiert, erstellt Webship sie mit einer privaten localhost-TLS-Identität.
--check-config
Überprüfen Sie die vollständige Konfiguration und beenden Sie, ohne Listener zu starten.
--print-effektive-config
Drucken Sie die zusammengeführte effektive Konfiguration ohne Geheimnisse.
aktualisieren
Überprüfen Sie das signierte Community-Manifest, wählen Sie dieses exakte Plattformziel aus und installieren Sie eine neuere Version, falls eine vorhanden ist.
--help / --version
Drucken Sie die Befehls-Hilfe oder die installierte Webship-Version.

Häufige Fehlerarten

Beginnen Sie mit der Konfiguration und arbeiten Sie sich dann nach außen vor.

  1. Führen Sie --check-config aus und korrigieren Sie den zuerst gemeldeten Fehler; unbekannte TOML-Felder werden abgelehnt.
  2. Bestätigen Sie, dass die konfigurierten TCP- und UDP-Ports verfügbar und von der Firewall erlaubt sind.
  3. Stellen Sie sicher, dass das Zertifikat und der Schlüssel vorhanden sind, vom Dienstkonto gelesen werden können und ein passendes Paar bilden.
  4. Für automatisches TLS bestätigen Sie, dass jede konfigurierte Domain auf den Webship Host aufgelöst wird.
  5. Rufen Sie /health beim lokalen Anwendungslistener auf, bevor Sie Tests über DNS oder einen externen Ladepfad durchführen.
  6. Aktivieren Sie vorübergehend authentifizierte Beobachtbarkeit, wenn Laufzeitevidenz erforderlich ist.