Documentația Webship

Instalează, configurează și automatizează Webship.

Configurează, validează, implementează și automatizează serverul de margine AI-Native Webship cu exemple concise în TOML și ghid de funcționare cu versiuni fixate.

Versiunea documentației

Webship 1.0.0

A fost lansat 2026-08-22. Această adresă URL este fixată la versiunea selectată.

Ascultător implicit
127.0.0.1:4433
Configurație
TOML
TLS
TLS 1.3

Prezentare generală a produsului

Un singur server între rețea și aplicația ta.

Webship este un server web edge și static Rust auto-gazduit. Un singur runtime gestionează protocoale moderne, aplică politici edge, servește fișiere și face proxy pentru cererile aplicației.

Transport modern

Acceptă HTTP/1.1, HTTP/2 și HTTP/3, cu TLS 1.3 și un endpoint WebTransport opțional.

Livrare statică și prin proxy

Servește fișiere statice cu validatori și fișiere auxiliare pre-comprimate sau proxy a traficului aplicației prin pool-uri upstream limitate.

Setări implicite de securitate

Începe cu WAF, controale DDoS, provocare împotriva roboților, antete de securitate pentru răspuns, API Shield și protecție pentru fișierele dot activate.

Operațiuni observabile

Folosește statistici autentificate, metrici Prometheus, ID-uri de cerere, reîncărcări line și planul de control opțional MCP.

Pornire rapidă

De la binar de release la ascultător sănătos.

Pornește pe loopback, validează tot înainte de a lega, și verifică răspunsul de sănătate încorporat înainte de a adăuga traficul public.

  1. Pregătiți fișierele

    Plasați pe gazdă binarul de release, configurația sa TOML, root-ul static și orice fișiere TLS și chei configurate.

  2. Validează și inspectează

    Rulează ambele comenzi de configurare. Remediază prima eroare și inspectează rezultatul efectiv redactat înainte de pornire.

  3. Începe privat

    Porniți Webship cu fișierul TOML selectat. Adăugați o pereche completă de certificate sau TLS automat când site-ul este gata pentru trafic public securizat.

  4. Verifică timpul de execuție

    Apelează GET /health local. Apoi testează căile statice, TLS, rutele proxy, regulile de securitate și monitorizarea autentificată.

Config.toml minimal
listen = "127.0.0.1:4433"
workers = 4
root = "./public"
Validare înainte de pornire
/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
Pornire și verificare
/usr/local/bin/webship --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:4433/health

Ghid rapid de pornire pentru agenți AI

Conectați un agent AI la Webship în cinci linii.

Conectați Claude Code, OpenAI, DeepSeek sau orice client MCP compatibil printr-un tunel SSH privat. Agentul primește o suprafață de operațiuni autentificată fără a partaja ascultătorul public sau a expune credențialele de control traficului de internet.

Configurare client MCP în cinci linii
{
  "mcpServers": {
    "webship": { "url": "https://localhost:19443/mcp",
      "headers": { "Authorization": "Bearer <token>" } }
  } }

Livrare statică

Serviți un director cu setări implicite conștiente de protocol.

Setați un root la nivel global sau pentru fiecare site. Site-urile TLS implicite folosesc doar HTTP/3; site-urile necriptate folosesc implicit HTTP/1.1 și H2C. Suprascrieți HTTP/1.1, HTTP/2 și HTTP/3 în mod independent pentru fiecare site.

Site static specific domeniului
[[sites]]
domain = "app.example.com"
root = "/srv/app"
listen = "0.0.0.0:443"

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

Routerul încorporat suportă GET și HEAD, intervale de octeți, cereri condiționale, validatori și anteturi .br, .zst și .gz. Căile către fișierele cu punct sunt refuzate implicit; .well-known rămâne disponibil.

Traficul aplicației

Direcționează cererile către unul sau mai mulți upstream-uri.

Activați proxy invers, potriviți un host și o cale, apoi definiți o politică finală necondiționată. Webship suportă pooluri limitate, verificări de sănătate, echilibrare a încărcării, întrerupătoare de circuit, încercări sigure fără corp, WebSockets și caching.

Rută API cu doi upstream
[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

Folosiți certificate manual sau lăsați Webship să le gestioneze.

Webship acceptă TLS 1.3. HTTP/3 rulează peste ascultătorul UDP corespunzător; activează HTTP/1.1 sau HTTP/2 explicit atunci când un site TLS are nevoie și de compatibilitate TCP.

TLS automat cu 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"

Politica la margine

Mențineți baza de securitate intactă.

Webship activează implicit principalele sale straturi de protecție. Ajustați limitele pentru sarcina de lucru și validați după fiecare modificare de regulă sau politică de antet.

Politică DDoS și antet de răspuns
[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'"

Folosiți modul normal pentru trafic obișnuit, under_attack pentru gestionarea mai strictă a atacurilor active și lockdown când doar sondele și căile explicit permise trebuie să rămână disponibile.

Diagnosticare privată

Inspectează marginea fără a expune planul de control.

Statisticile și metricele Prometheus rulează pe un listener autentificat separat. Instrumentarea trebuie activată ori de câte ori unul dintre endpoint-uri este activ.

Observabilitate locală autentificată
[observability]
instrumentation = true
stats = true
metrics = true
listen = "127.0.0.1:9090"
token = "replace-with-at-least-32-random-printable-ascii-characters"

Operațiuni sigure

Reîncarcă deliberat. Menține revenirea aproape.

Reîncărcare configurație

Trimite SIGHUP după editarea unei configurații bazate pe fișiere. Webship validează înlocuirea înainte de instalare și păstrează configurația curentă când validarea eșuează.

Actualizare și revenire

Instalați noul binar lângă versiunea anterioară, validați configurația de producție cu acesta, apoi verificați sănătatea, TLS, proxy-ul și metricile. Păstrați binarul anterior până când toate verificările trec.

Comenzi de reîncărcare ș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

Referință linie de comandă

Suprafață mică, pornire explicită.

webship [OPTIONS] | webship update [OPTIONS]

-c, --config CĂI
Selectează fișierul TOML. Dacă nu există, Webship îl creează cu o identitate TLS privată localhost.
--check-config
Validează configurația completă și ieși fără a porni ascultătorii.
--print-effective-config
Afișează configurația efectivă îmbinată cu secretele eliminate.
update
Verifică manifestul comunității semnat, selectează acest țintă exactă a platformei și instalează o versiune mai nouă dacă există.
--help / --version
Afișează ajutorul pentru comandă sau versiunea instalată Webship.

Moduri comune de eșec

Începeți cu configurarea, apoi mergeți către exterior.

  1. Rulați --check-config și corectați prima eroare raportată; câmpurile TOML necunoscute sunt respinse.
  2. Confirmați că porturile TCP și UDP configurate sunt disponibile și permise de firewall.
  3. Confirmați că certificatul și cheia există, pot fi citite de contul de serviciu și formează o pereche corespunzătoare.
  4. Pentru TLS automat, confirmați că fiecare domeniu configurat se rezolvă către gazda Webship.
  5. Apelați /health pe ascultătorul aplicației locale înainte de a testa prin DNS sau o cale de încărcare externă.
  6. Activați temporar observabilitatea autentificată atunci când sunt necesare dovezi de rulare.