v2.3.0 — warp-setup.sh: install and activate WARP
The suite shipped warp-tray, warp-killswitch and netmaster warp — and no way to actually get WARP. On a fresh machine those installed fine and then failed with no explanation, because warp-cli wasn't there and nothing said so.
Added
warp-setup.sh — installs and activates Cloudflare WARP
No distribution packages WARP, so this adds Cloudflare's own repository (an RPM repo file with gpgcheck=1, or an APT list with the key dearmoured into /usr/share/keyrings), installs the client, registers the device and connects.
Fedora/RHEL and Debian/Ubuntu — what Cloudflare publishes for. Arch is told to build cloudflare-warp-bin from the AUR and re-run with --register, rather than handed a command that won't work.
sudo warp-setup.sh # repo, package, registration, connect
warp-setup.sh --check # report state, change nothing
warp-setup.sh --mode warp # switch operating mode
sudo warp-setup.sh --uninstall # remove the client and the repositoryIt sets tunnel_only mode by default, and that's the interesting decision. WARP's other modes proxy DNS themselves, which fights every other tool here — harden-dns.sh pins DNSSEC and DoT in systemd-resolved, dns-toggle switches the resolver underneath it, and checkdns audits the result. tunnel_only carries traffic and leaves resolution to resolved, so the two stop arguing. --mode overrides it.
Registration asks before running, because it creates a device record on Cloudflare's side rather than only changing local state. It flushes the resolver after connecting, for the same reason warp-tray and netmaster do.
panoptes-deps.sh now knows about warp-cli
New warp group. It's the one requirement no distribution ships, so instead of the generic "install it yourself" it reports "no distro packages WARP — run: warp-setup.sh".
Clarified
AdGuard needs no installation, and was never missing. It's a public resolver (94.140.14.14 / 94.140.15.15 over DoT), not software — the DNS tools simply point systemd-resolved at it. WARP was the only component running a local daemon, which is why it was the only gap.
Eighteen tools.