Local Docker
./dev.sh brings up OpenResty, Redis, and the admin UI with hot-reload for Lua.
Live-config API gateway on OpenResty. Change rules, WAF, and traffic splits without reloading nginx — drive it from UI, REST, MCP, or CLI.
How traffic moves
OpenResty loads server and rule JSON on the hot path. Only server-block nginx changes need a reload flag — rules and WAF stay live.
rewrite
Load host config, score candidate rules (path, IP, country, JWT…), run rate limit and WAF, stash the winner.
access
Honor response code: proxy (305), redirect, HTML block, CAPTCHA (306), or 403 — then resolve backend and timeouts.
balancer
Weighted, canary, sticky, or least-conn selection with per-server connect/send/read timeouts.
Platform
Not a brochure CDN — a control plane you run on your POPs, VMs, or k3s.
Priority-aware rules with geo, IP, JWT, and path matching. Attach many rules per virtual host.
Detection rules, anomaly scoring, monitor or block modes, and an events API — including the v2 engine.
Canary weights, promote/rollback, topology views, and passive/active upstream health.
Declare edge locations and provision Cloudflare A records with guardrails so unmanaged DNS stays untouched.
auto-ssl / Let’s Encrypt, force HTTPS, edge static cache, optional Varnish and Docker blob cache.
Outer POP plus optional k3s wslproxy-ingress Helm chart — tune timeouts on both layers.
Control plane
Same surface whether a human clicks, a script runs, or Cursor calls MCP.
ghcr.io/bwalia/wslproxy-cli.
Get going
./dev.sh brings up OpenResty, Redis, and the admin UI with hot-reload for Lua.
Bare-metal POPs via Ansible; k3s ingress via the Helm chart under ingress-controller/.
WAF demo packs, MCP guides, CLI examples, and architecture diagrams in the repo.
Browse docs →Open source gateway, real POPs, agent-ready control plane — start from the repo and ship config like code.