Professional nftables Web Dashboard for Linux.
3.2K
English 🇬🇧 | Українська 🇺🇦\n\n---\n Making Linux Firewalls Transparent, Smart, and Beautiful.
NiftyWall is a professional web dashboard for managing the nftables firewall. In the v3.0.0 update, the project underwent a full audit to achieve Enterprise-grade stability and security. This edition (main) is optimized for rapid deployment in an isolated Docker environment.





niftywall table completely — all unauthorized active connections are dropped.SIGSTOP) malicious processes with a single click. Frozen processes are automatically pinned to the top of the monitor, releasing resources without a full kill, preserving their state for analysis.Note: SAFE Mode manages the network, while Panic Mode manages resources (processes).
graph TD
User((Administrator)) -->|HTTPS / PWA| UI[Web Dashboard]
subgraph "Docker Container (Host Network)"
subgraph "NiftyWall Core"
UI -->|REST API / JWT| API[FastAPI Backend]
API -->|Pydantic| VAL{Input Validator}
VAL -->|Subprocess / JSON| NFT[nftables Engine]
VAL -->|Socket / Logs| F2B[Fail2Ban Parser]
VAL -->|Metrics| SYS[psutil System Monitor]
API -->|Persistence| DB[(SQLite Database)]
API -->|Isolated Backup| TM[Time Machine]
end
end
subgraph "Host OS"
F2B -.->|Volume Mount| HostF2B[fail2ban sockets & logs]
subgraph "Linux Kernel"
NFT -->|Netlink| Netfilter[Kernel Hooks]
Netfilter -->|Packet Counters| NFT
end
end
F2B -.->|GeoIP| WHO[Whois API]
niftywall table, without affecting Docker or VPN rules.fail2ban-client.This method ensures full code isolation from the host system while utilizing necessary Kernel Hooks.
nftables present on the host system (for kernel module loading).Create docker-compose.yml:
services:
niftywall:
image: webyhomelab/niftywall:latest
container_name: niftywall
privileged: true # Required for nftables management
network_mode: host # Required for direct interface access
restart: always
environment:
- SECRET_KEY=${SECRET_KEY} # openssl rand -hex 32
- PANIC_ALLOWED_PORTS=22,80,443,54322
- TZ=Europe/Kyiv
volumes:
- /var/log/fail2ban.log:/var/log/fail2ban.log:ro
- /var/run/fail2ban:/var/run/fail2ban
- /opt/niftywall/data:/app/data
- /opt/niftywall/snapshots:/app/snapshots
docker compose up -d
NiftyWall is built on the principle of absolute autonomy. By utilizing an isolated inet niftywall table with high-priority chains, the system ensures stability in complex network environments.
Servers without additional third-party firewall layers.
input and forward chains with type filter and priority -100, allowing packet processing at the very beginning of the kernel network stack.Servers actively utilizing containerization.
table inet niftywall) prevents accidental deletion of Docker rules during configuration resets.Servers where another high-level manager is already active.
nftables allows multiple tables to work in parallel. A packet must be allowed in both systems simultaneously. If NiftyWall allows traffic but a forgotten UFW blocks it, you will face hard-to-diagnose issues.systemctl disable --now ufw or firewalld before using NiftyWall. If you specifically need a GUI for them, use: UFW-GUI or Firewalld-GUI.
Built in Ukraine under air raid sirens & blackouts ⚡
© 2026 Weby Homelab
Making Linux Firewalls Transparent, Smart, and Beautiful.
NiftyWall — це професійний веб-дашборд для керування фаєрволом nftables. У версії v3.0.0 проект пройшов повний аудит для досягнення Enterprise-стабільності та безпеки. Ця редакція (main) оптимізована для швидкого розгортання в ізольованому середовищі Docker.





niftywall — усі неавторизовані з'єднання розриваються.SIGSTOP) шкідливі процеси одним кліком. Заморожені процеси автоматично закріплюються вгорі списку, звільняючи ресурси без повної зупинки (kill), що дозволяє зберегти їх стан для аналізу.Примітка: SAFE Mode керує мережею, тоді як Panic Mode керує ресурсами (процесами).
graph TD
User((Адміністратор)) -->|HTTPS / PWA| UI[Web Dashboard]
subgraph "Docker Container (Host Network)"
subgraph "NiftyWall Core"
UI -->|REST API / JWT| API[FastAPI Backend]
API -->|Pydantic| VAL{Input Validator}
VAL -->|Subprocess / JSON| NFT[nftables Engine]
VAL -->|Socket / Logs| F2B[Fail2Ban Parser]
VAL -->|Metrics| SYS[psutil System Monitor]
API -->|Persistence| DB[(SQLite Database)]
API -->|Isolated Backup| TM[Time Machine]
end
end
subgraph "Host OS"
F2B -.->|Volume Mount| HostF2B[fail2ban sockets & logs]
subgraph "Linux Kernel"
NFT -->|Netlink| Netfilter[Kernel Hooks]
Netfilter -->|Packet Counters| NFT
end
end
F2B -.->|GeoIP| WHO[Whois API]
niftywall, не зачіпаючи правила Docker чи VPN.fail2ban-client.Цей метод забезпечує повну ізоляцію коду від хост-системи, використовуючи лише необхідні Kernel Hooks.
nftables у хост-системі (для завантаження модулів ядра).Створіть docker-compose.yml:
services:
niftywall:
image: webyhomelab/niftywall:latest
container_name: niftywall
privileged: true # Необхідно для керування nftables
network_mode: host # Необхідно для прямого доступу до інтерфейсів
restart: always
environment:
- SECRET_KEY=${SECRET_KEY} # openssl rand -hex 32
- PANIC_ALLOWED_PORTS=22,80,443
- TZ=Europe/Kyiv
volumes:
- /var/log/fail2ban.log:/var/log/fail2ban.log:ro
- /var/run/fail2ban:/var/run/fail2ban
- /opt/niftywall/data:/app/data
- /opt/niftywall/snapshots:/app/snapshots
docker compose up -d
Проект NiftyWall побудовано за принципом абсолютної автономії. Завдяки використанню ізольованої таблиці inet niftywall з найвищим пріоритетом ланцюгів, система гарантує стабільність у складних мережевих середовищах.
Сервери без додаткових прошарків сторонніх фаєрволів.
input та forward з типом filter та пріоритетом -100, що дозволяє обробляти пакети на самому початку мережевого стеку ядра.Сервери, де активно використовується контейнеризація.
table inet niftywall) виключає випадкове видалення правил Docker при скиданні конфігурації.Сервери, де вже активний інший високорівневий менеджер.
nftables дозволяє паралельну роботу кількох таблиць. Пакет має бути дозволений в обох системах одночасно. Якщо NiftyWall дозволяє трафік, а забутий UFW його блокує — ви отримаєте важку в діагностиці проблему.systemctl disable --now ufw або firewalld перед використанням NiftyWall. Якщо вам потрібен GUI саме для них, використовуйте: UFW-GUI або Firewalld-GUI.
Built in Ukraine under air raid sirens & blackouts ⚡
© 2026 Weby Homelab
Made with ❤️ in Kyiv ✦ 2026 Weby Homelab ✦
Content type
Image
Digest
sha256:d7021c57a…
Size
68.4 MB
Last updated
3 months ago
docker pull webyhomelab/niftywall