Pangkalahatang-ideya ng produkto
Isang server sa pagitan ng network at ng iyong aplikasyon.
Ang Webship ay isang self-hosted na Rust edge at static web server. Isang runtime ang nagtatapos ng mga modernong protocol, nagpapatupad ng patakaran sa edge, naghahain ng mga file, at nagpo-proxy ng mga kahilingan ng aplikasyon.
Makabagong transport
Tanggapin ang HTTP/1.1, HTTP/2, at HTTP/3, na may TLS 1.3 at isang opsyonal na WebTransport endpoint.
Static at proxied na paghahatid
Maglingkod ng mga static na file gamit ang mga validator at precompressed na sidecar, o i-proxy ang traffic ng application sa pamamagitan ng bounded upstream pools.
Ligtas na mga default
Magsimula sa WAF, mga kontrol sa DDoS, hamon sa bot, mga response security header, API Shield, at proteksyon ng dot-file na naka-enable.
Observable na operasyon
Gumamit ng authenticated statistics, Prometheus metrics, request IDs, graceful reloads, at ang opsyonal na MCP control plane.
Mabilis na pagsisimula
Mula sa release binary hanggang sa malusog na tagapakinig.
Magsimula sa loopback, i-validate ang lahat bago mag-bind, at beripikahin ang built-in na health response bago magdagdag ng pampublikong traffic.
Ihanda ang mga file
Ilagay ang release binary, ang TOML configuration nito, ang static root, at anumang naka-configure na TLS certificate at key files sa host.
I-validate at suriin
Patakbuhin ang parehong configuration commands. Ayusin ang unang error at suriin ang redacted effective result bago magsimula.
Magsimula nang pribado
Simulan ang Webship gamit ang napiling TOML file. Idagdag ang kumpletong certificate pair o awtomatikong TLS kapag handa na ang site para sa secure public traffic.
Suriin ang runtime
Tumawag ng GET /health nang lokal. Pagkatapos subukan ang mga static na ruta, TLS, proxy na ruta, mga patakaran sa seguridad, at na-authenticate na pagmamanman.
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/healthMabilis na Patnubay para sa mga AI Agent
Ikonekta ang isang AI agent sa Webship sa limang linya.
Ikonekta ang Claude Code, OpenAI, DeepSeek, o anumang katugmang MCP client sa pamamagitan ng pribadong SSH tunnel. Tumatanggap ang ahente ng isang awtentikadong operations surface nang hindi ibinabahagi ang pampublikong listener o inilalantad ang control credentials sa trapiko ng internet.
{
"mcpServers": {
"webship": { "url": "https://localhost:19443/mcp",
"headers": { "Authorization": "Bearer <token>" } }
} }Static na paghahatid
Maglingkod sa isang directory na may protocol-aware defaults.
Mag-set ng root globally o para sa bawat site. Ang mga TLS site ay default sa HTTP/3 lamang; ang mga cleartext site ay default sa HTTP/1.1 at H2C. I-override ang HTTP/1.1, HTTP/2, at HTTP/3 nang paisa-isa para sa bawat site.
[[sites]]
domain = "app.example.com"
root = "/srv/app"
listen = "0.0.0.0:443"
[sites.protocols]
h1 = true
h2 = true
h3 = trueSinusuportahan ng built-in na router ang GET at HEAD, byte ranges, conditional requests, validators, at mga sidecars na .br, .zst, at .gz. Ang mga dot-file na landas ay awtomatikong tinatanggihan; ang .well-known ay nananatiling available.
Traffic ng aplikasyon
I-route ang mga kahilingan sa isa o higit pang upstreams.
Payagan ang reverse proxying, itugma ang host at path, pagkatapos tukuyin ang panghuling walang kondisyon na patakaran. Sinusuportahan ng Webship ang bounded pools, health checks, load balancing, circuit breakers, safe bodyless retries, WebSockets, at 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 at HTTP/3
Gumamit ng mga manwal na sertipiko o hayaan na pamahalaan ito ng Webship.
Tinatanggap ng Webship ang TLS 1.3. Ang HTTP/3 ay tumatakbo sa ibabaw ng katugmang UDP listener; paganahin ang HTTP/1.1 o HTTP/2 nang tahasan kapag ang isang TLS site ay nangangailangan din ng TCP compatibility.
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"Patakaran sa gilid
Panatilihin ang secure na baseline na buo.
Pinapagana ng Webship ang pangunahing mga layer ng proteksyon nito sa default. Ayusin ang mga limitasyon para sa iyong workload at suriin pagkatapos ng bawat pagbabago ng rule o header-policy.
[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'"Gamitin ang normal na mode para sa karaniwang trapiko, under_attack para sa mas mahigpit na paghawak ng aktibong pag-atake, at lockdown kapag tanging mga probe at hayagang pinapayagang mga landas lamang ang dapat manatiling available.
Pribadong diagnostic
Inspectahin ang edge nang hindi ibinubunyag ang control plane.
Ang istatistika at mga metrics ng Prometheus ay tumatakbo sa isang hiwalay na authenticated listener. Kailangang i-enable ang instrumentation tuwing aktibo ang alinmang endpoint.
[observability]
instrumentation = true
stats = true
metrics = true
listen = "127.0.0.1:9090"
token = "replace-with-at-least-32-random-printable-ascii-characters"Ligtas na operasyon
Mag-reload nang maingat. Panatilihin ang rollback na malapit.
Pag-reload ng configuration
Magpadala ng SIGHUP pagkatapos i-edit ang isang configuration na may backing file. Webship sinusuri ang kapalit bago ito i-install at pinananatili ang tumatakbong configuration kapag nabigo ang pagsusuri.
Pag-upgrade at rollback
I-install ang bagong binary sa tabi ng nakaraang bersyon, i-validate ang production configuration gamit ito, pagkatapos ay suriin ang kalusugan, TLS, proxying, at metrics. Panatilihin ang nakaraang binary hanggang sa pumasa ang bawat gate.
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 webshipSangguniang pang-command-line
Maliit na ibabaw, malinaw na pagsisimula.
webship [OPTIONS] | webship update [OPTIONS]
-c, --config PATH- Piliin ang TOML file. Kung ito ay wala, gagawin ito ng Webship na may pribadong localhost TLS identity.
--check-config- Suriin ang buong configuration at lumabas nang hindi sinisimulan ang mga listener.
--print-effective-config- I-print ang pinagsamang epektibong configuration na tinanggal ang mga sikreto.
update- Suriin ang pinirmang community manifest, piliin ang eksaktong target na platform na ito, at mag-install ng mas bagong bersyon kapag mayroon.
--help / --version- I-print ang tulong sa utos o ang naka-install na bersyon ng Webship.
Karaniwang mga paraan ng pagkabigo
Magsimula sa configuration, pagkatapos ay lumipat palabas.
- Patakbuhin ang --check-config at itama ang unang naiulat na error; tinatanggihan ang mga hindi kilalang larangan ng TOML.
- Kumpirmahin na ang naka-configure na TCP at UDP na mga port ay available at pinapayagan ng firewall.
- Kumpirmahin na umiiral ang sertipiko at key, mababasa ng service account, at bumubuo ng magkatugmang pares.
- Para sa awtomatikong TLS, kumpirmahin na bawat naka-configure na domain ay tumutugon sa Webship host.
- Tawagan ang /health sa lokal na tagapakinig ng aplikasyon bago subukan sa pamamagitan ng DNS o isang panlabas na load path.
- Pansamantalang paganahin ang nagpapatotoong obeserbabilidad kapag kinakailangan ang ebidensiya ng runtime.