systemd unit, system user, /etc/cheesewaf.
This is the multi-page printable view of this section. .
Install
- 1: Linux (systemd)
- 2: Docker Compose
- 3: Windows
- 4: macOS
Pick one install path. Do not mix an NSIS install with a hand-copied Linux tree on the same host unless you know which process owns the ports.
Release files
Download Alpha pre-releases, or take the same files from Actions artifacts.
| File | Platform |
|---|---|
cheesewaf-*-linux-amd64.tar.gz | Linux x86_64 |
cheesewaf-*-linux-arm64.tar.gz | Linux ARM64 |
cheesewaf-*-linux-loong64.tar.gz | Linux LoongArch |
cheesewaf-*-darwin-amd64.tar.gz / .dmg | macOS Intel |
cheesewaf-*-darwin-arm64.tar.gz / .dmg | macOS Apple Silicon |
cheesewaf-*-windows-amd64.exe | Windows x86_64 CLI |
cheesewaf-*-windows-arm64.exe | Windows ARM64 CLI |
cheesewaf-*-windows-amd64.zip | Windows x86_64 portable tree |
cheesewaf-*-windows-arm64.zip | Windows ARM64 portable tree |
CheeseWAF-*-windows-*-setup.exe | Windows NSIS installer |
After install, continue with Quick start.
1 - Linux (systemd)
Use this path on a Linux VM or bare metal host.
Unpack
Replace amd64 with arm64 or loong64 when that is the CPU.
Install files
The Linux tarball includes systemd/cheesewaf.service.
Open http://<host>:9443/setup and continue with Initialize.
Paths
| Path | Role |
|---|---|
/usr/local/bin/cheesewaf | Binary |
/etc/cheesewaf/cheesewaf.yaml | Config |
/var/lib/cheesewaf | Data, SQLite, certs |
/var/log/cheesewaf | Logs |
Bind the data plane to a public address only after you have a site, an upstream, and a paranoia level you accept.
2 - Docker Compose
Use this path in a container host.
docker compose build produces linux/amd64 or linux/arm64 for the host CPU.
The image runs as UID 10001.
The root filesystem is read-only.
Compose file
The repository file is deploy/docker/docker-compose.yml.
A minimal copy:
Build context must be the CheeseWAF repository root when you use that Dockerfile.
Start
Open https://<host>:9443/setup.
The container uses a self-signed admin certificate by default.
The first-run token is in the startup log.
docker compose down keeps the named volumes.
Site config and SQLite live in cheesewaf-data.
3 - Windows
Windows has three shapes. They are not three different WAFs.
A. Single-file CLI
- Download
cheesewaf-*-windows-amd64.exeor thearm64file. - Run:
The forwarding process does not need the installer.
The Web UI assets live in web/dist next to the executable in zip / DMG / tar packages.
B. Portable zip
- Unpack
cheesewaf-*-windows-amd64.zipto a directory such asD:\CheeseWAF. - Run:
C. NSIS installer
- Run
CheeseWAF-*-windows-amd64-setup.exeor thearm64setup. - Follow the wizard.
- Uninstall keeps
data\by default.
The installer may register a Windows service (sc.exe create CheeseWAF …). Treat that as best-effort.
Local controller
cheesewaf-gui is not a second admin console.
It only starts, stops, and opens the real management UI.
- Bind address:
127.0.0.1:17943 - Shows PID and running state
- Opens the Web console and the config folder
- Optional current-user autostart (
HKCU\Run)
The browser opens http://127.0.0.1:17943/.
4 - macOS
DMG
- Download
cheesewaf-*-darwin-arm64.dmg(Apple Silicon) orcheesewaf-*-darwin-amd64.dmg(Intel). - Open the image and drag CheeseWAF into Applications.
- Launch CheeseWAF from Launchpad or Applications.
The app starts the local controller. Use it to start, stop, and open the Web console.
Runtime data is under ~/Library/Application Support/CheeseWAF.
CLI tarball
If you only want the command line:
Then open http://127.0.0.1:9443/setup.