# Install

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

---

LLMS index: [llms.txt](/llms.txt)

---

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.

<div id="td-nav-cards-6877386c54032f5f7cf29d2ca7820757-0" class="td-content-cards" style="--td-card-columns: 2">
<article id="td-nav-card-6877386c54032f5f7cf29d2ca7820757-nav-cards-0-0" class="td-content-card">
  <div class="td-content-card__body">
    <div class="td-content-card__head"><i class="fa-brands fa-linux td-content-card__icon" aria-hidden="true"></i><a class="td-content-card__title" href="/docs/cheesewaf/install/linux/">Linux</a></div><p class="td-content-card__description">systemd unit, system user, /etc/cheesewaf.</p>
  </div>
</article>

<article id="td-nav-card-6877386c54032f5f7cf29d2ca7820757-nav-cards-0-1" class="td-content-card">
  <div class="td-content-card__body">
    <div class="td-content-card__head"><i class="fa-brands fa-docker td-content-card__icon" aria-hidden="true"></i><a class="td-content-card__title" href="/docs/cheesewaf/install/docker/">Docker</a></div><p class="td-content-card__description">Compose, read-only root, non-root UID 10001.</p>
  </div>
</article>

<article id="td-nav-card-6877386c54032f5f7cf29d2ca7820757-nav-cards-0-2" class="td-content-card">
  <div class="td-content-card__body">
    <div class="td-content-card__head"><i class="fa-brands fa-windows td-content-card__icon" aria-hidden="true"></i><a class="td-content-card__title" href="/docs/cheesewaf/install/windows/">Windows</a></div><p class="td-content-card__description">Single exe, zip, or NSIS. Local controller on loopback.</p>
  </div>
</article>

<article id="td-nav-card-6877386c54032f5f7cf29d2ca7820757-nav-cards-0-3" class="td-content-card">
  <div class="td-content-card__body">
    <div class="td-content-card__head"><i class="fa-brands fa-apple td-content-card__icon" aria-hidden="true"></i><a class="td-content-card__title" href="/docs/cheesewaf/install/macos/">macOS</a></div><p class="td-content-card__description">DMG app or tar.gz CLI.</p>
  </div>
</article>

</div>


## Release files {#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](../tutorial/).

---

Section pages:

- [Linux (systemd)](/docs/cheesewaf/install/linux/): Install the CheeseWAF binary, create the system user, and enable the systemd unit.
- [Docker Compose](/docs/cheesewaf/install/docker/): Run CheeseWAF in Compose with a read-only root filesystem and a non-root user.
- [Windows](/docs/cheesewaf/install/windows/): Single-file CLI, portable zip, or NSIS installer. The GUI controller listens on loopback only.
- [macOS](/docs/cheesewaf/install/macos/): Install CheeseWAF from a DMG, or run the tar.gz CLI.
