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.0.0

Veröffentlicht 2026-08-22. 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

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.