FWDeck is a safety-first terminal UI for firewalld. Zones, services, ports, and rules — fast, keyboard-only, runtime vs permanent always visible, and a confirmation in front of anything that could lock you out.
Everything firewalld can do, visible and reviewable — with the guard rails you wish you had the last time a rule cut your SSH session.
Risky changes start a rollback countdown. Confirm you still have a working session — or FWDeck reverts automatically. Locking yourself out is no longer a one-way door.
Every row shows its scope, the header shows drift, and Zone Overview shows it per attribute. No more guessing what survives a reload.
Stage changes, review the batch, apply once — or export it as a
firewall-cmd script, JSON, or an Ansible playbook.
Save the configuration before maintenance. Restore diffs the snapshot against the current state and stages the exact way back — reviewed, never automatic.
A fuzzy command palette (:) with context-aware availability —
from allowing a service to panic mode. Guided rich-rule builder included.
Partial failures are reported as partial failures — never as success. JSONL audit trail. Releases checksummed and Cosign-signed (Sigstore keyless).
Every mutation shows a confirmation stating the resource, zone, scope,
and connectivity risk. y applies · s stages · n cancels.
Services view, add, type the name, review, apply.
Ranges work too: 5000-5010/udp.
Optionally add :toaddr=10.0.0.5.
The guided builder assembles valid rich-rule syntax step by step with a live preview.
A zone is active when it has interface or source bindings. Delete bindings with d to deactivate.
One confirmation lists everything that will be removed.
--read-only disables mutations in the engine, not just the buttons.--offline, no daemon needed.The install script checks the SHA-256 checksums and the Cosign keyless signature before anything touches your disk.
$ curl -fsSL https://raw.githubusercontent.com/madebydaniz/fwdeck/main/scripts/install.sh | bash $ fwdeck doctor # checks your environment — never touches the firewall $ fwdeck --read-only # look around safely first $ sudo fwdeck # full control
Prebuilt for x86_64 /
aarch64, glibc and static musl — every
archive includes shell completions and a man page. Verify any release yourself:
SECURITY.md.