Dokumentacja Webship

Instaluj, konfiguruj i automatyzuj Webship.

Konfiguruj, weryfikuj, wdrażaj i automatyzuj natywny dla AI Webship serwer brzegowy za pomocą zwięzłych przykładów TOML oraz wskazówek operacyjnych z przypiętymi wersjami.

Wersja dokumentacji

Webship 1.0.0

Wydano 2026-08-22. Ten URL jest przypięty do wybranego wydania.

Domyślny nasłuchiwacz
127.0.0.1:4433
Konfiguracja
TOML
TLS
TLS 1.3

Przegląd produktu

Jeden serwer między siecią a Twoją aplikacją.

Webship to samodzielnie hostowany Rust edge i serwer statycznych stron internetowych. Jedno środowisko uruchomieniowe obsługuje nowoczesne protokoły, stosuje politykę krawędziową, serwuje pliki i pośredniczy w żądaniach aplikacji.

Nowoczesny transport

Akceptuj HTTP/1.1, HTTP/2 i HTTP/3, z TLS 1.3 oraz opcjonalnym punktem końcowym WebTransport.

Statyczna i pośrednia dostawa

Serwowanie statycznych plików z walidatorami i wstępnie skompresowanymi dodatkami lub przekazywanie ruchu aplikacji przez ograniczone pule upstream.

Bezpieczne ustawienia domyślne

Rozpocznij od WAF, kontroli DDoS, wyzwania dla botów, nagłówków bezpieczeństwa odpowiedzi, API Shield i ochrony plików kropkowanych.

Operacje obserwowalne

Używaj uwierzytelnionych statystyk, metryk Prometheus, identyfikatorów żądań, łagodnych przeładowań oraz opcjonalnej płaszczyzny kontrolnej MCP.

Szybki start

Od binarnego wydania do zdrowego nasłuchiwacza.

Uruchom na loopback, zweryfikuj wszystko przed powiązaniem i sprawdź wbudowaną odpowiedź stanu przed dodaniem publicznego ruchu.

  1. Przygotuj pliki

    Umieść binarkę wydania, jej konfigurację TOML, statyczny katalog główny oraz wszelkie skonfigurowane pliki certyfikatu i klucza TLS na hoście.

  2. Waliduj i sprawdź

    Uruchom oba polecenia konfiguracyjne. Napraw pierwszy błąd i sprawdź zredagowany efekt końcowy przed uruchomieniem.

  3. Uruchom prywatnie

    Uruchom Webship z wybranym plikiem TOML. Dodaj kompletną parę certyfikatów lub automatyczne TLS, gdy strona będzie gotowa na bezpieczny ruch publiczny.

  4. Zweryfikuj środowisko uruchomieniowe

    Wywołaj GET /health lokalnie. Następnie przetestuj statyczne ścieżki, TLS, trasy proxy, zasady bezpieczeństwa oraz monitorowanie z uwierzytelnieniem.

Minimalny config.toml
listen = "127.0.0.1:4433"
workers = 4
root = "./public"
Sprawdź przed uruchomieniem
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
Uruchom i zweryfikuj
/usr/local/bin/webship --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:4433/health

Szybki przewodnik rozpoczęcia pracy z agentami AI

Połącz agenta AI z Webship w pięciu liniach.

Połącz Claude Code, OpenAI, DeepSeek lub dowolnego kompatybilnego klienta MCP przez prywatny tunel SSH. Agent otrzymuje uwierzytelniony interfejs operacyjny bez udostępniania publicznego nasłuchiwacza ani narażania poświadczeń kontrolnych na ruch w internecie.

Konfiguracja klienta MCP w pięciu liniach
{
  "mcpServers": {
    "webship": { "url": "https://localhost:19443/mcp",
      "headers": { "Authorization": "Bearer <token>" } }
  } }

Dostarczenie statyczne

Serwuj katalog z domyślnymi ustawieniami rozpoznającymi protokół.

Ustaw root globalnie lub dla każdej witryny osobno. Witryny TLS domyślnie używają HTTP/3; witryny w czystym tekście domyślnie używają HTTP/1.1 i H2C. Nadpisz HTTP/1.1, HTTP/2 i HTTP/3 niezależnie dla każdej witryny.

Statyczna strona specyficzna dla domeny
[[sites]]
domain = "app.example.com"
root = "/srv/app"
listen = "0.0.0.0:443"

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

Wbudowany router obsługuje GET i HEAD, zakresy bajtów, żądania warunkowe, walidatory oraz pliki pomocnicze .br, .zst i .gz. Ścieżki do plików zaczynających się od kropki są domyślnie odrzucane; .well-known pozostaje dostępne.

Ruch aplikacji

Kieruj żądania do jednego lub więcej upstreamów.

Włącz odwrotne proxy, dopasuj hosta i ścieżkę, a następnie zdefiniuj ostateczną, bezwarunkową politykę. Webship obsługuje ograniczone pule, kontrole stanu, równoważenie obciążenia, obwody zabezpieczające, bezpieczne ponowne próby bez ciała, WebSockety i buforowanie.

Trasa API dwóch upstreamów
[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 i HTTP/3

Używaj certyfikatów ręcznych lub pozwól, aby Webship nimi zarządzał.

Webship akceptuje TLS 1.3. HTTP/3 działa na pasującym słuchaczu UDP; włącz wyraźnie HTTP/1.1 lub HTTP/2, gdy strona TLS wymaga również zgodności z TCP.

Automatyczne TLS z 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"

Polityka krawędzi

Utrzymuj bezpieczną bazę w nienaruszonym stanie.

Webship domyślnie włącza swoje główne warstwy ochrony. Dostosuj limity do swojego obciążenia i weryfikuj po każdej zmianie reguły lub polityki nagłówków.

Polityka DDoS i nagłówków odpowiedzi
[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'"

Używaj trybu normalnego dla regularnego ruchu, under_attack dla surowszego radzenia sobie z aktywnymi atakami oraz lockdown, gdy dostępne powinny być tylko sondy i wyraźnie dozwolone ścieżki.

Diagnostyka prywatna

Inspektuj krawędź bez ujawniania płaszczyzny kontroli.

Statystyki i metryki Prometheus działają na osobnym uwierzytelnionym słuchaczu. Instrumentacja musi być włączona, gdy którekolwiek z punktów końcowych jest aktywne.

Uwierzytelniona lokalna obserwowalność
[observability]
instrumentation = true
stats = true
metrics = true
listen = "127.0.0.1:9090"
token = "replace-with-at-least-32-random-printable-ascii-characters"

Bezpieczne operacje

Przeładuj celowo. Trzymaj możliwość wycofania blisko.

Ponowne wczytanie konfiguracji

Wyślij SIGHUP po edycji konfiguracji opartej na plikach. Webship weryfikuje zamiennik przed jego zainstalowaniem i zachowuje działającą konfigurację w przypadku niepowodzenia weryfikacji.

Aktualizacja i przywracanie

Zainstaluj nowy binarny obok poprzedniej wersji, zweryfikuj konfigurację produkcyjną z jego użyciem, a następnie sprawdź stan zdrowia, TLS, proxy i metryki. Zachowaj poprzedni binarny, dopóki wszystkie bramki nie zostaną zaliczone.

Polecenia przeładowania i 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

Odwołanie do linii poleceń

Mała powierzchnia, jawne uruchamianie.

webship [OPTIONS] | webship update [OPTIONS]

-c, --config ŚCIEŻKA
Wybierz plik TOML. Jeśli nie istnieje, Webship tworzy go z prywatną tożsamością TLS dla localhost.
--check-config
Zweryfikuj pełną konfigurację i zakończ działanie bez uruchamiania nasłuchiwaczy.
--print-effective-config
Wyświetl scaloną efektywną konfigurację z usuniętymi sekretami.
update
Zweryfikuj podpisany manifest społecznościowy, wybierz dokładnie ten cel platformy i zainstaluj nowszą wersję, gdy taka istnieje.
--help / --version
Wyświetl pomoc do polecenia lub zainstalowaną wersję Webship.

Typowe tryby awarii

Rozpocznij od konfiguracji, a następnie przejdź na zewnątrz.

  1. Uruchom --check-config i popraw pierwszy zgłoszony błąd; nieznane pola TOML są odrzucane.
  2. Potwierdź, że skonfigurowane porty TCP i UDP są dostępne i dozwolone przez zaporę.
  3. Potwierdź, że certyfikat i klucz istnieją, są czytelne dla konta usługowego i tworzą dopasowaną parę.
  4. Dla automatycznego TLS, potwierdź, że każda skonfigurowana domena rozwiązuje się do hosta Webship.
  5. Wywołaj /health na lokalnym nasłuchu aplikacji przed testowaniem przez DNS lub zewnętrzną ścieżkę obciążenia.
  6. Tymczasowo włącz uwierzytelnioną obserwowalność, gdy wymagane są dowody w czasie działania.