Directories
¶
| Path | Synopsis |
|---|---|
|
Package analytics provides efficient batch operations for report generation
|
Package analytics provides efficient batch operations for report generation |
|
Package api provides HTTP handlers for the NFTBan web interface and REST API.
|
Package api provides HTTP handlers for the NFTBan web interface and REST API. |
|
Package authproto defines shared authentication protocol types Used by both pkg/auth and cmd/nftban-ui-auth to ensure consistency
|
Package authproto defines shared authentication protocol types Used by both pkg/auth and cmd/nftban-ui-auth to ensure consistency |
|
SPDX-License-Identifier: MPL-2.0 Copyright (c) 2025 Antonios Voulvoulis <contact@nftban.com>
|
SPDX-License-Identifier: MPL-2.0 Copyright (c) 2025 Antonios Voulvoulis <contact@nftban.com> |
|
============================================================================= NFTBan v1.29.0 - Centralized Timeout & Interval Constants ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="constants/timeouts" meta:type="package" meta:version="1.0.0" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:description="Centralized timeout, interval, and duration constants" meta:inventory.files="timeouts.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
|
============================================================================= NFTBan v1.29.0 - Centralized Timeout & Interval Constants ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="constants/timeouts" meta:type="package" meta:version="1.0.0" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:description="Centralized timeout, interval, and duration constants" meta:inventory.files="timeouts.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" ============================================================================= |
|
Package feeds handles threat intelligence feed processing for NFTBan.
|
Package feeds handles threat intelligence feed processing for NFTBan. |
|
installer
|
|
|
authority
============================================================================= NFTBan v1.73 - Installer Authority Classification ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-authority-classify" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Authority decision tree: UPDATE/TAKEOVER/FRESH/ABORT" meta:inventory.files="internal/installer/authority/classify.go" meta:inventory.binaries="" meta:inventory.env_vars="NFTBAN_TAKEOVER" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
|
============================================================================= NFTBan v1.73 - Installer Authority Classification ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-authority-classify" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Authority decision tree: UPDATE/TAKEOVER/FRESH/ABORT" meta:inventory.files="internal/installer/authority/classify.go" meta:inventory.binaries="" meta:inventory.env_vars="NFTBAN_TAKEOVER" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" ============================================================================= |
|
deps
============================================================================= NFTBan v1.76.0 - Installer Dependency Auto-Install ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-deps" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-05" meta:description="Auto-install missing dependencies during postinst (dpkg lock released)" meta:inventory.files="internal/installer/deps/deps.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
|
============================================================================= NFTBan v1.76.0 - Installer Dependency Auto-Install ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-deps" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-05" meta:description="Auto-install missing dependencies during postinst (dpkg lock released)" meta:inventory.files="internal/installer/deps/deps.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" ============================================================================= |
|
detect
============================================================================= NFTBan v1.73 - Installer Conflict Detection ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-detect-conflicts" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Conflicting firewall detection (services + ghost nft tables)" meta:inventory.files="internal/installer/detect/conflicts.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
|
============================================================================= NFTBan v1.73 - Installer Conflict Detection ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-detect-conflicts" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Conflicting firewall detection (services + ghost nft tables)" meta:inventory.files="internal/installer/detect/conflicts.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" ============================================================================= |
|
executor
============================================================================= NFTBan v1.73 - Installer Executor Interface ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-executor" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Executor interface abstracting system commands for testability" meta:inventory.files="internal/installer/executor/executor.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
|
============================================================================= NFTBan v1.73 - Installer Executor Interface ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-executor" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Executor interface abstracting system commands for testability" meta:inventory.files="internal/installer/executor/executor.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" ============================================================================= |
|
fhs
============================================================================= NFTBan v1.76 - Installer FHS Path Constants ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-fhs-paths" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="FHS-compliant path constants matching fhs-spec.yaml" meta:inventory.files="internal/installer/fhs/paths.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
|
============================================================================= NFTBan v1.76 - Installer FHS Path Constants ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-fhs-paths" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="FHS-compliant path constants matching fhs-spec.yaml" meta:inventory.files="internal/installer/fhs/paths.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" ============================================================================= |
|
history
============================================================================= NFTBan v1.73 - Installer Update History Writer ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-history" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="JSON update history compatible with nftban update history --json" meta:inventory.files="internal/installer/history/history.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/var/lib/nftban/update-history.json" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
|
============================================================================= NFTBan v1.73 - Installer Update History Writer ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-history" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="JSON update history compatible with nftban update history --json" meta:inventory.files="internal/installer/history/history.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/var/lib/nftban/update-history.json" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" ============================================================================= |
|
logging
============================================================================= NFTBan v1.73 - Installer Dual Logger ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-logger" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Dual console+file logger for installer output" meta:inventory.files="internal/installer/logging/logger.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/var/log/nftban/installer.log" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
|
============================================================================= NFTBan v1.73 - Installer Dual Logger ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-logger" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Dual console+file logger for installer output" meta:inventory.files="internal/installer/logging/logger.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/var/log/nftban/installer.log" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" ============================================================================= |
|
render
============================================================================= NFTBan v1.73 - Installer Config Persistence ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-render-config" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Persist SSH port and config values to conf.local and state" meta:inventory.files="internal/installer/render/config.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/etc/nftban/nftban.conf.local" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
|
============================================================================= NFTBan v1.73 - Installer Config Persistence ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-render-config" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Persist SSH port and config values to conf.local and state" meta:inventory.files="internal/installer/render/config.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/etc/nftban/nftban.conf.local" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" ============================================================================= |
|
services
============================================================================= NFTBan v1.73 - Installer Stale File Cleanup ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-services-cleanup" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Remove stale files, polkit rules, and legacy units from prior versions" meta:inventory.files="internal/installer/services/cleanup.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
|
============================================================================= NFTBan v1.73 - Installer Stale File Cleanup ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-services-cleanup" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Remove stale files, polkit rules, and legacy units from prior versions" meta:inventory.files="internal/installer/services/cleanup.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" ============================================================================= |
|
state
============================================================================= NFTBan v1.73 - Installer State File I/O ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-state-file" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="State file struct, atomic write, read, transition persistence" meta:inventory.files="internal/installer/state/file.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/var/lib/nftban/state/install_state" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
|
============================================================================= NFTBan v1.73 - Installer State File I/O ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-state-file" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="State file struct, atomic write, read, transition persistence" meta:inventory.files="internal/installer/state/file.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="/var/lib/nftban/state/install_state" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" ============================================================================= |
|
switchop
============================================================================= NFTBan v1.75.1 - Installer nftables Service Enable ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-switchop-enable" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Enable and start nftables service with xt-compat pre-check" meta:inventory.files="internal/installer/switchop/enable.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="nftables.service" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
|
============================================================================= NFTBan v1.75.1 - Installer nftables Service Enable ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-switchop-enable" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Enable and start nftables service with xt-compat pre-check" meta:inventory.files="internal/installer/switchop/enable.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="nftables.service" meta:inventory.network="" meta:inventory.privileges="root" ============================================================================= |
|
validate
============================================================================= NFTBan v1.73 - Installer Post-Install Assertions ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-validate-assertions" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Post-install kernel + service + state assertions" meta:inventory.files="internal/installer/validate/assertions.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" =============================================================================
|
============================================================================= NFTBan v1.73 - Installer Post-Install Assertions ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="installer-validate-assertions" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-04" meta:description="Post-install kernel + service + state assertions" meta:inventory.files="internal/installer/validate/assertions.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="root" ============================================================================= |
|
detector/cmd/test-detector
command
|
|
|
distroconf
============================================================================= NFTBan v1.79.2 - distroconf reader (BUG-15) ============================================================================= SPDX-License-Identifier: MPL-2.0 Package: distroconf Purpose: Read /etc/nftban/distros/<distro>.conf and expose [paths] as the
|
============================================================================= NFTBan v1.79.2 - distroconf reader (BUG-15) ============================================================================= SPDX-License-Identifier: MPL-2.0 Package: distroconf Purpose: Read /etc/nftban/distros/<distro>.conf and expose [paths] as the |
|
pipeline
Package pipeline contains the v1.80 Go detection pipeline foundation.
|
Package pipeline contains the v1.80 Go detection pipeline foundation. |
|
pipeline/aggregate
Package aggregate implements the v1.80 aggregation layer.
|
Package aggregate implements the v1.80 aggregation layer. |
|
pipeline/dedup
Package dedup provides a bounded LRU sieve that suppresses duplicate events.
|
Package dedup provides a bounded LRU sieve that suppresses duplicate events. |
|
pipeline/event
Package event defines the canonical data types passed through the v1.80 detection pipeline.
|
Package event defines the canonical data types passed through the v1.80 detection pipeline. |
|
pipeline/normalize
Package normalize canonicalizes NormalizedEvent fields so downstream stages (dedup, aggregate) operate on stable, comparable values.
|
Package normalize canonicalizes NormalizedEvent fields so downstream stages (dedup, aggregate) operate on stable, comparable values. |
|
pipeline/parser/directadmin
Package directadmin implements a Parser for DirectAdmin's login.log format.
|
Package directadmin implements a Parser for DirectAdmin's login.log format. |
|
pipeline/parser/dovecot
Package dovecot implements a Parser for Dovecot imap-login/pop3-login auth-failed lines.
|
Package dovecot implements a Parser for Dovecot imap-login/pop3-login auth-failed lines. |
|
pipeline/parser/exim
Package exim implements a Parser for Exim mainlog auth-failure lines.
|
Package exim implements a Parser for Exim mainlog auth-failure lines. |
|
pipeline/runtime
Package runtime is the composition root of the v1.80 pipeline.
|
Package runtime is the composition root of the v1.80 pipeline. |
|
pipeline/source
Package source defines the Source abstraction for the v1.80 pipeline.
|
Package source defines the Source abstraction for the v1.80 pipeline. |
|
pipeline/watcher
Package watcher defines the file-tailing abstraction for the v1.80 pipeline.
|
Package watcher defines the file-tailing abstraction for the v1.80 pipeline. |
|
Package logx provides structured logging wrappers for NFTBan This centralizes log prefixes and makes future enhancements (JSON logs, levels) easier
|
Package logx provides structured logging wrappers for NFTBan This centralizes log prefixes and makes future enhancements (JSON logs, levels) easier |
|
Package metrics provides efficient metrics collection for NFTBan This collector replaces slow bash-based metrics with fast Go implementation
|
Package metrics provides efficient metrics collection for NFTBan This collector replaces slow bash-based metrics with fast Go implementation |
|
Package netutil provides network utility functions for NFTBan Centralizes IP address handling, whitelist checking, and CIDR operations
|
Package netutil provides network utility functions for NFTBan Centralizes IP address handling, whitelist checking, and CIDR operations |
|
Package nftbackend provides the core interface to nftables operations.
|
Package nftbackend provides the core interface to nftables operations. |
|
Package safeconv provides safe integer conversion functions that check bounds before converting between integer types, preventing silent overflow bugs.
|
Package safeconv provides safe integer conversion functions that check bounds before converting between integer types, preventing silent overflow bugs. |
|
Package safety provides protection mechanisms to prevent self-lockout and ensure system stability during firewall operations.
|
Package safety provides protection mechanisms to prevent self-lockout and ensure system stability during firewall operations. |
|
Package session provides simple in-memory session management for nftban-ui.
|
Package session provides simple in-memory session management for nftban-ui. |
|
Package setsync provides efficient synchronization of IP sets with nftables.
|
Package setsync provides efficient synchronization of IP sets with nftables. |
|
Package system provides unified system lookup utilities
|
Package system provides unified system lookup utilities |
|
Package testutil provides shared test utilities and fixtures for NFTBan tests.
|
Package testutil provides shared test utilities and fixtures for NFTBan tests. |
|
SPDX-License-Identifier: MPL-2.0 Copyright (c) 2025 Antonios Voulvoulis <contact@nftban.com>
|
SPDX-License-Identifier: MPL-2.0 Copyright (c) 2025 Antonios Voulvoulis <contact@nftban.com> |
|
SPDX-License-Identifier: MPL-2.0 Copyright (c) 2025 Antonios Voulvoulis <contact@nftban.com>
|
SPDX-License-Identifier: MPL-2.0 Copyright (c) 2025 Antonios Voulvoulis <contact@nftban.com> |
|
============================================================================= NFTBan v1.78 - Validator CLI Helpers ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="validator-cli" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-05" meta:description="CLI output helpers for the validator" meta:inventory.files="internal/validator/cli.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
|
============================================================================= NFTBan v1.78 - Validator CLI Helpers ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="validator-cli" meta:type="lib" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:created_date="2026-04-05" meta:description="CLI output helpers for the validator" meta:inventory.files="internal/validator/cli.go" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" ============================================================================= |
|
============================================================================= NFTBan v1.0 - Dynamic Watchdog Package ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="doc" meta:type="package" meta:version="1.0.0" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:description="Package documentation for NFTBan watchdog system" meta:inventory.files="" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" =============================================================================
|
============================================================================= NFTBan v1.0 - Dynamic Watchdog Package ============================================================================= SPDX-License-Identifier: MPL-2.0 meta:name="doc" meta:type="package" meta:version="1.0.0" meta:owner="Antonios Voulvoulis <contact@nftban.com>" meta:description="Package documentation for NFTBan watchdog system" meta:inventory.files="" meta:inventory.binaries="" meta:inventory.env_vars="" meta:inventory.config_files="" meta:inventory.systemd_units="" meta:inventory.network="" meta:inventory.privileges="none" ============================================================================= |
Click to show internal directories.
Click to hide internal directories.