|
| 1 | +{ |
| 2 | + "schemaVersion": 1, |
| 3 | + "name": "tui-firewall", |
| 4 | + "binary": "tui-firewall", |
| 5 | + "tagline": "The system firewall, with every change previewed before it runs", |
| 6 | + "description": "A terminal UI for the Linux firewall. It shows the rules you actually have — action, direction, ports, source, destination, app profile, IPv6 and `route` rules included — alongside the default policies and the logging level.\n\nThe UI never builds a command line. It talks to a backend behind an interface, which returns a firewall-neutral model and produces command values; the confirm dialog shows that value and hands the same one to the runner, so what you read is what executes. `ufw` today, `firewalld` behind the same interface next.\n\nRun `tui-firewall --demo` to drive an in-memory sample firewall: every key works, every command is built and previewed for real, and nothing touches your system.", |
| 7 | + "category": "firewall", |
| 8 | + "homepage": "https://github.com/tui-tools/tui-firewall", |
| 9 | + "repo": "https://github.com/tui-tools/tui-firewall", |
| 10 | + "license": "MIT", |
| 11 | + "platforms": ["linux/amd64", "linux/arm64"], |
| 12 | + "icon": "assets/icon.svg", |
| 13 | + "logo": "assets/logo.png", |
| 14 | + "screenshots": [ |
| 15 | + { |
| 16 | + "path": "docs/screenshots/tui-firewall-main.png", |
| 17 | + "caption": "The rules table, with status, default policies and logging in the header" |
| 18 | + }, |
| 19 | + { |
| 20 | + "path": "docs/screenshots/tui-firewall-delete.png", |
| 21 | + "caption": "Deleting a rule: the exact ufw command line, shown before it runs" |
| 22 | + }, |
| 23 | + { |
| 24 | + "path": "docs/screenshots/tui-firewall-add.png", |
| 25 | + "caption": "The add-rule form: action, direction, ports, protocol, source, destination" |
| 26 | + }, |
| 27 | + { |
| 28 | + "path": "docs/screenshots/tui-firewall-policies.png", |
| 29 | + "caption": "Changing a default policy for incoming, outgoing or routed traffic" |
| 30 | + }, |
| 31 | + { |
| 32 | + "path": "docs/screenshots/tui-firewall-help.png", |
| 33 | + "caption": "The help screen, generated from the same action table as the key map" |
| 34 | + } |
| 35 | + ], |
| 36 | + "keys": [ |
| 37 | + { "key": "a", "action": "Add a rule" }, |
| 38 | + { "key": "d", "action": "Delete the selected rule" }, |
| 39 | + { "key": "e", "action": "Enable or disable the firewall" }, |
| 40 | + { "key": "p", "action": "Change a default policy" }, |
| 41 | + { "key": "L", "action": "Change the logging level" }, |
| 42 | + { "key": "r", "action": "Reload the firewall" }, |
| 43 | + { "key": "/", "action": "Filter rules across every column" }, |
| 44 | + { "key": "[ / ]", "action": "Previous / next group, on multi-group backends" }, |
| 45 | + { "key": "R", "action": "Re-read the firewall" }, |
| 46 | + { "key": "?", "action": "Help" }, |
| 47 | + { "key": "q", "action": "Quit" } |
| 48 | + ], |
| 49 | + "install": { |
| 50 | + "pacman": { |
| 51 | + "available": false, |
| 52 | + "package": "tui-firewall", |
| 53 | + "repo": "tui-tools", |
| 54 | + "requires_repo_setup": true, |
| 55 | + "command": "sudo pacman -S tui-firewall", |
| 56 | + "url": "https://pkgs.tui.tools/arch", |
| 57 | + "note": "Add the tui-tools repository to pacman.conf first." |
| 58 | + }, |
| 59 | + "aur": { |
| 60 | + "available": false, |
| 61 | + "package": "tui-firewall-bin", |
| 62 | + "repo": "aur", |
| 63 | + "command": "paru -S tui-firewall-bin", |
| 64 | + "url": "https://aur.archlinux.org/packages/tui-firewall-bin", |
| 65 | + "note": "The -bin package installs the released static binary." |
| 66 | + }, |
| 67 | + "apt": { |
| 68 | + "available": false, |
| 69 | + "package": "tui-firewall", |
| 70 | + "repo": "tui-tools", |
| 71 | + "requires_repo_setup": true, |
| 72 | + "command": "sudo apt install tui-firewall", |
| 73 | + "url": "https://pkgs.tui.tools/deb", |
| 74 | + "note": "Add the tui-tools apt repository and its keyring first." |
| 75 | + }, |
| 76 | + "dnf": { |
| 77 | + "available": false, |
| 78 | + "package": "tui-firewall", |
| 79 | + "repo": "tui-tools", |
| 80 | + "requires_repo_setup": true, |
| 81 | + "command": "sudo dnf install tui-firewall", |
| 82 | + "url": "https://pkgs.tui.tools/rpm", |
| 83 | + "note": "Add the tui-tools.repo file first." |
| 84 | + }, |
| 85 | + "zypper": { |
| 86 | + "available": false, |
| 87 | + "package": "tui-firewall", |
| 88 | + "repo": "tui-tools", |
| 89 | + "requires_repo_setup": true, |
| 90 | + "command": "sudo zypper install tui-firewall", |
| 91 | + "url": "https://pkgs.tui.tools/rpm", |
| 92 | + "note": "Add the tui-tools repository first." |
| 93 | + }, |
| 94 | + "binary": { |
| 95 | + "available": true, |
| 96 | + "pattern": "tui-firewall_{version}_linux_{arch}.tar.gz", |
| 97 | + "command": "curl -fsSL https://github.com/tui-tools/tui-firewall/releases/download/v{version}/tui-firewall_{version}_linux_{arch}.tar.gz | tar -xz tui-firewall\nsudo install -m0755 tui-firewall /usr/local/bin/tui-firewall", |
| 98 | + "url": "https://github.com/tui-tools/tui-firewall/releases", |
| 99 | + "note": "One static binary. Verify it against checksums.txt from the same release." |
| 100 | + }, |
| 101 | + "source": { |
| 102 | + "available": true, |
| 103 | + "command": "git clone https://github.com/tui-tools/tui-firewall\ncd tui-firewall && make build\nsudo install -m0755 bin/tui-firewall /usr/local/bin/tui-firewall", |
| 104 | + "url": "https://github.com/tui-tools/tui-firewall", |
| 105 | + "note": "Needs Go 1.26 or newer." |
| 106 | + } |
| 107 | + }, |
| 108 | + "security": { |
| 109 | + "needs_sudo": "Reading ufw's state needs root, and so does every change: add, delete, enable, disable, reload, default policy and logging level. Escalation goes through `sudo -n`, which never prompts, and `--sudo \"\"` runs the command directly when you are already root.", |
| 110 | + "preview_before_run": true, |
| 111 | + "no_daemon": true, |
| 112 | + "no_network": true, |
| 113 | + "static_binary": true, |
| 114 | + "signed_releases": false, |
| 115 | + "config_paths": [ |
| 116 | + "/etc/tui-firewall/config.toml", |
| 117 | + "~/.config/tui-firewall/config.toml" |
| 118 | + ] |
| 119 | + }, |
| 120 | + "maintainers": [ |
| 121 | + { "name": "Edimar Cardoso", "github": "edimarlnx" } |
| 122 | + ], |
| 123 | + "since": "2026-08-29", |
| 124 | + "keywords": ["ufw", "firewalld", "iptables", "nftables", "firewall", "tui", "bubbletea"] |
| 125 | +} |
0 commit comments