CheeseWAF

Self-hosted Web Application Firewall. Install, configure, and operate it.

CheeseWAF is a self-hosted Web Application Firewall. It ships as one Go binary with an embedded SQLite store, a Web console, a CLI / TUI, and a REST management API.

The data plane inspects requests, then proxies them upstream. It does not call a large language model on every request. After the response is sent, an optional ALAP queue can review suspicious samples.

Download packaged builds from GitHub Releases. The project is licensed under Apache License 2.0.

How it works

  1. Data plane. Parameters are decoded, then parsed. Deterministic SQL injection, XSS, and command execution can be blocked immediately.
  2. ALAP. After the response is sent, ambiguous or embedded samples go to a background queue. Any OpenAI-compatible model can review them.
  3. Review results. Findings marked high or critical can become lasting IP, fingerprint, or signature rules when auto-agree is on.

ALAP stands for AI Large-Language-Model Auto Pilot.

Default listeners

PlaneDefault addressRole
Data planehttp://127.0.0.1:8080Receive site traffic, inspect, proxy upstream
Management planehttp://127.0.0.1:9443Web console, REST API, setup wizard. Docker defaults to HTTPS
Cluster planehttp://127.0.0.1:9444Node sync in cluster mode
Local controllerhttp://127.0.0.1:17943Windows / macOS desktop controller only

Start here

Linux, Docker, Windows, and macOS.

Pipeline, paranoia levels, isolated vs embedded.

Semantic engine, IP, bot, rate limit, ACL.

How CheeseWAF works

Data plane vs ALAP, why requests are not sent to a model in line, and what ships in one binary.

Install

Choose a CheeseWAF package for Linux, Docker, Windows, or macOS.

Quick start

Initialize CheeseWAF, add the first site, and connect a model for ALAP.

Concepts

Pipeline, paranoia levels, isolated vs embedded payloads, and the three management surfaces.

Sites and reverse proxy

Domains, upstreams, load balancing, health checks, and per-site WAF switches.

Protection

Semantic engine, custom rules, IP and geo, bot challenges, rate limits, ACL, and block pages.

API security

Endpoint discovery, schema checks, JWT / JWKS, per-route rate limits, and RBAC.

Edge headers, cache, and compression

Set or delete response headers, cache static prefixes, and compress JSON or HTML.

TLS and certificates

Admin TLS, site certificates, ACME issuance, HTTP/3, and HSTS.

ALAP and the review queue

Asynchronous model review, auto-agree, the assistant, tool approvals, and self-learning.

Monitor, logs, and attack map

Dashboard stats, access logs, Prometheus, alerts, notifications, and the attack map.

Cluster

Join tokens, mTLS interconnect, builtin consensus, rolling upgrade, and traffic peers.

Storage and scheduler

SQLite, optional PostgreSQL and log sinks, backups, cleanup, and scheduled reports.

Web console

Pages in the management UI and how they map to this manual.

CLI and TUI

cheesewaf and waf-cli share one binary. Default commands depend on the executable name.

REST API

Health endpoints, session login, management tokens, CSRF, and the permission map.

Configuration reference

Top-level keys in cheesewaf.yaml and where this manual explains each block.

Operations

Users, 2FA, time sync, OTA updates, and system maintenance.

Build from source

Go and Node versions, frontend build, tests, and the attack corpus tool.

License and related repositories

Apache-2.0 for CheeseWAF source. Names and logos are not a trademark grant.