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.
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.
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.
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.
Überprüfen Sie die Laufzeit
Ruf GET /health lokal an. Dann testet man statische Pfade, TLS, Proxy-Routen, Sicherheitsregeln und authentifizierte Überwachung.
listen = "127.0.0.1:4433"
workers = 4
root = "./public"/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml/usr/local/bin/webship --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:4433/healthSchnellstartanleitung 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.
{
"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.
[[sites]]
domain = "app.example.com"
root = "/srv/app"
listen = "0.0.0.0:443"
[sites.protocols]
h1 = true
h2 = true
h3 = trueDer 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.
[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 = 30000TLS 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.
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]
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.
[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.
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 webshipBefehlszeilenreferenz
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.
- Führen Sie --check-config aus und korrigieren Sie den zuerst gemeldeten Fehler; unbekannte TOML-Felder werden abgelehnt.
- Bestätigen Sie, dass die konfigurierten TCP- und UDP-Ports verfügbar und von der Firewall erlaubt sind.
- Stellen Sie sicher, dass das Zertifikat und der Schlüssel vorhanden sind, vom Dienstkonto gelesen werden können und ein passendes Paar bilden.
- Für automatisches TLS bestätigen Sie, dass jede konfigurierte Domain auf den Webship Host aufgelöst wird.
- Rufen Sie /health beim lokalen Anwendungslistener auf, bevor Sie Tests über DNS oder einen externen Ladepfad durchführen.
- Aktivieren Sie vorübergehend authentifizierte Beobachtbarkeit, wenn Laufzeitevidenz erforderlich ist.