unmask

docs

JA4 acquisition, LB / CDN setup, supported distros, FAQ.

Verified (release-gate matrix)

This page covers the package installs (the nginx module). The gateway container is distro-independent: it runs on any Linux with Docker Engine (a plain docker run is enough; Compose is optional), so none of the tables below apply to it.

Before every release, the gate runs this on each distro below: with the nginx module, install → nginx -t pass → plugin load → daemon healthz=200 → challenge served (http=403), and a remove-and-reinstall. The nginx column is the version the gate ran, from the distro's own packages unless noted:

distropackagenginx (tested version)status
AlmaLinux 10 / Rocky 10 / RHEL 10rpm1.26.3verified
AlmaLinux 9 / Rocky 9 / RHEL 9rpm1.20.1verified
AlmaLinux 8 / Rocky 8 / RHEL 8rpm1.24.0 (AppStream nginx:1.24 stream)verified
CentOS 7 / RHEL 7 (EOL 2024-06)rpm1.20.1 (EPEL)verified
CentOS 6 / RHEL 6 (EOL 2020-11)rpm1.18.0 (nginx.org)verified
Debian 13deb1.26.3verified
Debian 12deb1.22.1verified
Ubuntu 26.04deb1.28.3verified
Ubuntu 24.04deb1.24.0verified
Ubuntu 22.04deb1.18.0verified
Alpine 3.xapk1.28.3 (Alpine 3.23)verified

AlmaLinux / Rocky / RHEL 8: the default nginx module stream (1.14) is built without --with-compat and cannot load the module, so the gate first switches to the AppStream nginx:1.24 stream (dnf module reset nginx, then dnf module install nginx:1.24), as the install guide tells you to.

Same package format (install worth trying)

Derivatives that accept the same rpm / deb / apk packages will often install, but they are not in our CI, so the outcome isn't guaranteed. Reports either way are welcome on the issue tracker:

distroformatnotes
openSUSE Leap / TumbleweedrpmSame package lineage. AppArmor (not SELinux) — confinement may need extra tuning.
FedorarpmRHEL lineage. SELinux postinstall (setsebool automation) applies.
Linux MintdebUbuntu / Debian derivative.
Pop!_OSdebUbuntu derivative.
DevuandebDebian derivative without systemd. Ships sysvinit / openrc init scripts.
Raspbian / Raspberry Pi OSdeb (arm64)Works on a 64-bit OS via the arm64 packages (the native plugin ships arm64 too).

No packages yet

Distros below have no unmask package, so a package install won't work. Where Docker runs (Arch, Gentoo, NixOS, …), the gateway container is not affected by any of this:

environmentreason
Arch Linuxpacman .pkg.tar.zst. No AUR package yet (contributors welcome).
Gentooportage ebuild. Same — no recipe yet.
NixOSnix derivation. flake / nixpkgs entry is a future candidate.
FreeBSD / OpenBSDpkg(8). The nginx ABI differs from Linux glibc; needs a separate build.
macOSNot a production server target (docker run with a supported Linux image works for local dev).
Windows / WSLnginx for Windows is ABI-incompatible. WSL distros work using the matching Linux instructions above.

Architectures

unmask supports both x86_64 (amd64) and aarch64 (arm64). Every distro package (main / nginx plugin / web integration) is built for both, and verified on real Ampere arm64 hardware (the nginx module + JA4 extraction).