Upgrade note for Docker users: this beta consolidates nfsen-ng's own mutable data (RRD database, saved preferences, alert rules/state/log) into a single nfsen-data volume under NFSEN_STATE_DIR. Previously the standard compose persisted neither the RRD database nor the saved preferences, so recreating the container on every image update silently wiped them. If you are coming from an earlier beta with a rrd-data volume, copy its contents into nfsen-data/rrd once (or run a Force Rescan). On Unraid, the UI template gained a matching App data path (/var/lib/nfsen-ng, defaulting to /mnt/user/appdata/nfsen-ng-data) that existing installs must add when updating the container. See the upgrade guide in the book.
Highlights:
- Configuration is now env-var first. Every environment variable is defined once in a single typed registry, with one parse, validator, and default apiece, replacing the scattered
getenv() ?: defaultreads and the per-code-path default drift they had accumulated.settings.phpis deprecated and now acts as an overlay on the env baseline instead of silently disablingNFSEN_SOURCES/PORTS/FILTERS/PROCESSOR. - A new Configuration group on Settings → Health surfaces misconfiguration that used to fail silently: values set but invalid (so a default quietly applied), deprecated variable names still in use, unknown
NFSEN_-prefixed variables (typos that do nothing), malformed NetBox URLs or alert-email addresses, and a saved preference overridingNFSEN_LOG_LEVEL. - Upgrade-safe app data: one
nfsen-datavolume, declaredVOLUMEin the image so even a baredocker runpersists it. The nfcapd capture tree keeps its own separate volume. NFSEN_DEFAULT_THEME(auto/dark/light) sets a deployment-level default for dark mode, seeding a fresh browser that has no saved choice yet. An explicit user toggle still wins.- Mixed IPv4/IPv6 flow tables are fixed (#157): both families now share one Source/Destination IP column instead of showing one family's addresses and blanking the other's.
- Docs moved into the repo: the operational guides now live in the in-repo mdBook, so they version and ship with the code.
Help us test v1.0.0-beta.3 before the stable release:
curl -O https://raw.githubusercontent.com/mbolli/nfsen-ng/master/deploy/docker-compose.yml
# set image: ghcr.io/mbolli/nfsen-ng:1.0.0-beta.3 (or :latest)
# and set your nfcapd source path
docker compose up -dPlease open issues at https://github.com/mbolli/nfsen-ng/issues. The goal is a stable v1.0.0 shortly after.
Added
- Environment-variable registry with Health-page validation: every variable defined once with one typed parse, validator, and default, resolved through by
Settings, the bootstrap,Config, and the import daemon; a new Configuration group on Settings → Health reports invalid values, deprecated names, unknownNFSEN_*variables, malformed NetBox/alert-email values, an active (deprecated)settings.php, and a saved preference overridingNFSEN_LOG_LEVEL - Consolidated, upgrade-safe app data via
NFSEN_STATE_DIR: RRD database plus preferences and alert rules/state/log under onenfsen-datavolume, declaredVOLUMEin the image NFSEN_DEFAULT_THEME(auto/dark/light) for a deployment-level dark-mode default, also settable asfrontend.defaults.theme
Changed
settings.phpis deprecated in favour of environment variables, and now overlays the env baseline per key instead of all-or-nothingVM_HOST/VM_PORTrenamed toNFSEN_VM_HOST/NFSEN_VM_PORT; old names keep working as deprecated aliases- Docker volumes consolidated:
rrd-datafolded intonfsen-data(one-time copy needed when upgrading from an earlier beta) preferences.jsonis no longer tracked in git; it is runtime user state and is recreated on first saveNFSEN_DATASOURCE/NFSEN_PROCESSORaccepted values now derive from the internal class maps, so the lists cannot drift- Documentation moved from the GitHub wiki into the in-repo mdBook (
book/) - Dev/packaging housekeeping:
deploy/unraid/ca_profile.xmlfor the Unraid CA submission,phpunit.xmlrenamed tophpunit.xml.dist, stale env-var comments tidied
Fixed
- Mixed IPv4/IPv6 flow results only showed the addresses of one family, leaving the other family's rows with blank Src/Dst cells; both families now share one Source/Destination IP column, and table columns are the union of all rows' keys, which also restores per-protocol fields such as
icmp_type/icmp_code(#157) NFSEN_DEFAULT_THEMEnever actually seeded a fresh or cache-wiped browser; explicitdark/lightinstalls also no longer flash light before Datastar boots (#156)- Flow/statistics/Sankey results were blanked when a backgrounded tab's context was revived (#151)
- Reloaded graphs could render light on a dark page (#151)
- nfdump binary default drift between the settings-file path and the env/Docker path; both now resolve
/usr/local/nfdump/bin/nfdump
Full changelog: v1.0.0-beta.2...v1.0.0-beta.3