Add ban management features and update documentation
- Implement ban model, service, and router endpoints in backend - Add ban table component and dashboard integration in frontend - Update ban-related types and API endpoints - Add comprehensive tests for ban service and dashboard router - Update documentation (Features, Tasks, Architecture, Web-Design) - Clean up old fail2ban configuration files - Update Makefile with new commands
This commit is contained in:
@@ -302,8 +302,8 @@ frontend/
|
||||
│ ├── pages/ # Route-level page components (one per route)
|
||||
│ │ ├── SetupPage.tsx # First-run wizard
|
||||
│ │ ├── LoginPage.tsx # Password prompt
|
||||
│ │ ├── DashboardPage.tsx # Ban overview, status bar, access list
|
||||
│ │ ├── WorldMapPage.tsx # Geographical ban map + access table
|
||||
│ │ ├── DashboardPage.tsx # Ban overview, status bar
|
||||
│ │ ├── WorldMapPage.tsx # Geographical ban map
|
||||
│ │ ├── JailsPage.tsx # Jail list, detail, controls, ban/unban
|
||||
│ │ ├── ConfigPage.tsx # Configuration viewer/editor
|
||||
│ │ ├── HistoryPage.tsx # Ban history browser
|
||||
@@ -347,8 +347,8 @@ Top-level route components. Each page composes layout, components, and hooks to
|
||||
|---|---|---|
|
||||
| `SetupPage` | `/setup` | First-run wizard: set master password, database path, fail2ban connection, preferences |
|
||||
| `LoginPage` | `/login` | Single-field password prompt; redirects to requested page after success |
|
||||
| `DashboardPage` | `/` | Server status bar, ban list table, access list tab, time-range selector |
|
||||
| `WorldMapPage` | `/map` | World map with per-country ban counts, companion access table, country filter |
|
||||
| `DashboardPage` | `/` | Server status bar, ban list table, time-range selector |
|
||||
| `WorldMapPage` | `/map` | World map with per-country ban counts, country filter |
|
||||
| `JailsPage` | `/jails` | Jail overview list, jail detail panel, controls (start/stop/reload), ban/unban forms, IP lookup, whitelist management |
|
||||
| `ConfigPage` | `/config` | View and edit jail parameters, filter regex, server settings, regex tester, add log observation |
|
||||
| `HistoryPage` | `/history` | Browse all past bans, filter by jail/IP/time, per-IP timeline drill-down |
|
||||
|
||||
@@ -53,12 +53,6 @@ The main landing page after login. Shows recent ban activity at a glance.
|
||||
- Last 30 days (month)
|
||||
- Last 365 days (year)
|
||||
|
||||
### Access List
|
||||
|
||||
- A secondary view (tab or toggle) on the same page showing **all recorded accesses**, not just bans.
|
||||
- Uses the same table format: time, IP address, requested URL, country, domain, subdomain.
|
||||
- Shares the same time-range presets so the user can compare total traffic against banned traffic for the same period.
|
||||
|
||||
---
|
||||
|
||||
## 4. World Map View
|
||||
@@ -76,12 +70,6 @@ A geographical overview of ban activity.
|
||||
- Last 30 days
|
||||
- Last 365 days
|
||||
|
||||
### Access List (Map context)
|
||||
|
||||
- A companion table below or beside the map listing all accesses for the selected time range.
|
||||
- Same columns as the Ban Overview tables: time, IP, URL, country, domain, subdomain.
|
||||
- Selecting a country on the map filters the table to show only entries from that country.
|
||||
|
||||
---
|
||||
|
||||
## 5. Jail Management
|
||||
|
||||
@@ -3,12 +3,9 @@
|
||||
This document breaks the entire BanGUI project into development stages, ordered so that each stage builds on the previous one. Every task is described in prose with enough detail for a developer to begin work. References point to the relevant documentation.
|
||||
|
||||
---
|
||||
1. config not found issue — **DONE**
|
||||
|
||||
Have not found any log file for bangui-access jail
|
||||
1d6112acb250 2026-03-06 18:51:31,995 fail2ban [352]: ERROR Failed during configuration: Have not found any log file for bangui-access jail
|
||||
1d6112acb250 2026-03-06 18:51:33,074 fail2ban [355]: ERROR Failed during configuration: Have not found any log file for bangui-access jail
|
||||
## Remove the Access List Feature
|
||||
|
||||
**Fix:** Two root causes identified and resolved:
|
||||
1. `Docker/compose.debug.yml` had an incorrect volume mount path `./Docker/logs` (which resolved to the empty `Docker/Docker/logs/` relative to the compose file). Corrected to `./logs` so it correctly mounts `Docker/logs/` at `/remotelogs/bangui` inside the container.
|
||||
2. `Docker/logs/access.log` did not exist. Created the empty file so fail2ban can open and watch it for the `bangui-access` jail.
|
||||
The "access list" feature displays individual log-line matches (the raw lines that triggered fail2ban bans) in a dedicated tab on the Dashboard and as a companion table on the World Map page. It is being removed entirely. The tasks below must be executed in order. After completion, no code, config, test, type, or documentation reference to access lists should remain.
|
||||
|
||||
---
|
||||
|
||||
@@ -204,7 +204,7 @@ Use Fluent UI React components as the building blocks. The following mapping sho
|
||||
|---|---|---|
|
||||
| Side navigation | `Nav` | Persistent on large screens, collapsible on small. Groups: Dashboard, Map, Jails, Config, History, Blocklists. |
|
||||
| Breadcrumbs | `Breadcrumb` | Show on detail pages (Jail > sshd, History > IP detail). |
|
||||
| Page tabs | `Pivot` | Dashboard (Ban List / Access List), Map (Map / Access List). |
|
||||
| Page tabs | `Pivot` | None currently (previous tabs removed). |
|
||||
|
||||
### Data Display
|
||||
|
||||
|
||||
Reference in New Issue
Block a user