Skip to content

Latest commit

 

History

401 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

fwlive — Firewall Live View for OpenWrt

Tests License

LuCI Firewall Live View: a live, filterable table of firewall LOG events on OpenWrt (firewall4/nft on 22.03+; fw3/iptables on legacy 21.02.x) — inspired by OPNsense Live View, implemented as a small, portable LuCI app.

Firewall Live View — Simple view

What it does

  • Polls firewall log lines about once per second — no page reload
  • Shows pass / drop (and related actions) with clear styling
  • Simple view (default) — compact table; click a row to expand the raw log message
  • Show Detail — one-button toggle to the full 14-column Detailed view
  • Filter by action, interface, protocol, addresses, ports; quick search across fields
  • Click-to-filter and URL hash state for shareable troubleshooting views
  • Resolves rule names from fw4/nft or iptables --log-prefix metadata where possible

Menu: Status → Firewall Live View (/cgi-bin/luci/admin/status/fwlive)

Traffic appears only when firewall rules include log. After install, run the quick-start commands (WAN zone logging or ping test) — stock configs log nothing by default.

Host unit tests: npm test (runs ./scripts/fwlive-test.sh). Legacy macOS/docs/scripts previously under archive/ were removed; see git history if needed.


Supported OpenWrt releases

Release Validated patch Firewall stack Package format
21.02.x 21.02.7 fw3 / iptables (legacy, EOL) .ipk (opkg)
22.03.x 22.03.7 firewall4 / nft (EOL) .ipk (opkg)
23.05.x 23.05.5 firewall4 / nft .ipk (opkg)
24.10.x 24.10.8 firewall4 / nft .ipk (opkg)
25.12.x 25.12.5 firewall4 / nft .apk (apk)
snapshot latest firewall4 / nft .apk (best-effort)

Not supported: releases before 21.02. Use 21.02.x for fw3/iptables; 22.03.x and 23.05.x are supported but EOL — prefer 24.10+ for new deployments.

The package is _all (LuCI JS + shell) — one artifact per OpenWrt release line works on any router architecture.

Details: Supported releases · Requirements


Install

Recommended — binary feed. Run this on the router. It picks the feed for your OpenWrt release:

BASE='https://lucas-albers-lz4.github.io/fwlive-packages'
. /etc/openwrt_release
feed="$(echo "$DISTRIB_RELEASE" | cut -d. -f1,2)"
case "$feed" in
  21.02|22.03|23.05|24.10) ;;
  *)
    echo "Release $DISTRIB_RELEASE uses apk — use the OpenWrt 25.12+ commands below" >&2
    exit 1
    ;;
esac
wget -O /tmp/fwlive.key "$BASE/public.key"
opkg-key add /tmp/fwlive.key
echo "src/gz fwlive $BASE/$feed" >> /etc/opkg/customfeeds.conf
opkg update && opkg install luci-app-fwlive

Full commands: Installation guide.

After install: enable logging — the table stays empty until you enable logging.

Other install methods

apk (25.12+) — hardcoded example for OpenWrt 25.12:

wget -O /tmp/fwlive-feed.rsa.pub https://lucas-albers-lz4.github.io/fwlive-packages/fwlive-feed.rsa.pub
mkdir -p /etc/apk/keys
cp /tmp/fwlive-feed.rsa.pub /etc/apk/keys/fwlive-feed.rsa.pub
echo 'https://lucas-albers-lz4.github.io/fwlive-packages/25.12/all/packages.adb' \
  >> /etc/apk/repositories.d/fwlive.list
apk update && apk add luci-app-fwlive

More detail: binary feed · supported releases.

GitHub Releases — download the package for your OpenWrt version and install manually:

OpenWrt Package Install
21.02.x / 22.03.x / 23.05.x / 24.10.x luci-app-fwlive_*_all.ipk opkg install /tmp/luci-app-fwlive_*.ipk
25.12+ luci-app-fwlive-*.apk apk add --allow-untrusted /tmp/luci-app-fwlive-*.apk

Build from feed (firmware/SDK builders):

git clone https://github.com/lucas-albers-lz4/fwlive.git
echo "src-link fwlive $(pwd)/fwlive/openwrt-feed" >> feeds.conf
./scripts/feeds update fwlive
./scripts/feeds install luci-app-fwlive

Full paths: Installation guide · Binary feed · Release workflow (maintainers)


Documentation

I want to… Start here
Install and use on my router User guide
Build, test, or contribute Developer guide
Browse all docs docs/README.md
Release history CHANGELOG.md
FAQ docs/FAQ.md

User guide (highlights)

Guide Summary
Overview Problem, data flow, when to use it
Requirements Supported releases, firewall4/fw3, dependencies
Installation opkg, apk, or feed
Using the UI Controls, filters, screenshots
Enabling logs nft/fw4 log rules

Developer guide (highlights)

Guide Summary
Environment Linux x86_64, Docker SDK, QEMU
Architecture LuCI JS + ubus + parser sync
Build & test SDK matrix, validation, smoke
Contributing Workflow and acceptance

Status

Basic functionality complete — validated on 21.02.7, 22.03.7, 23.05.5, 24.10.8, and 25.12.5 (x86 KVM lab). Details: acceptance criteria.

Phase State
Live table + filters + rule names Done
Multi-version x86 smoke Done
Show hostnames, server-side read Done — ROADMAP
Rule overlay, digest/SSE Backlog

Repository layout

Path Purpose
openwrt-feed/luci-app-fwlive/ Shipped package
core/fwlive-log.js Parser source of truth
docs/user/ End-user documentation
docs/developer/ Build & development documentation
scripts/ SDK, QEMU lab, tests
feeds.conf.example Feed wiring template

Quick start (developers — x86 QEMU lab)

./scripts/docker-sdk.sh build --target x86-64 --version 24.10
RELEASE=24.10.8 ./scripts/download-openwrt-x86-64.sh
sudo OWRT_IMG=lab/images/openwrt-x86-64-24.10.8.img ./scripts/qemu-lab-prepare-image.sh
OWRT_RELEASE=24.10.8 ./scripts/run-openwrt-x86-qemu.sh
./scripts/qemu-install-fwlive.sh

LuCI: http://localhost:8080/cgi-bin/luci/admin/status/fwlive

Full paths: Developer environment · QEMU lab


License

Apache-2.0 — see LICENSE. OPNsense Live View (BSD 2-Clause) UX reference — see ATTRIBUTION.md.

About

LuCI Firewall Live View: a live, filterable table of nftables / firewall4 log events on OpenWrt — inspired by OPNsense Live View, implemented as a small, portable LuCI app.

Topics

Resources

Security policy

Stars

10 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages