Per-domain Nginx log analytics with hybrid static reports and live insights.
Find a file
2025-07-18 00:03:03 -05:00
scripts Update last_dt during log import 2025-07-17 23:58:50 -05:00
templates Update requirements and AGENTS instructions 2025-07-17 00:17:46 -05:00
tests Add idempotent import test 2025-07-18 00:03:03 -05:00
.gitignore Update requirements and AGENTS instructions 2025-07-17 00:17:46 -05:00
AGENTS.md Unify import script 2025-07-17 23:40:59 -05:00
LICENSE Initial commit 2025-07-16 22:42:28 -05:00
README.md Unify import script 2025-07-17 23:40:59 -05:00
requirements.txt Update requirements and AGENTS instructions 2025-07-17 00:17:46 -05:00
run-import.sh Unify import script 2025-07-17 23:40:59 -05:00

ngxstat

Per-domain Nginx log analytics with hybrid static reports and live insights.

Generating Reports

Use the generate_reports.py script to build aggregated JSON and HTML files from database/ngxstat.db.

Create a virtual environment and install dependencies:

python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

Then run one or more of the interval commands:

python scripts/generate_reports.py hourly
python scripts/generate_reports.py daily
python scripts/generate_reports.py weekly
python scripts/generate_reports.py monthly

Reports are written under the output/ directory. Each command updates the corresponding <interval>.json file and produces an HTML dashboard using Chart.js.

Importing Logs

Use the run-import.sh script to set up the Python environment if needed and import the latest Nginx log entries into database/ngxstat.db.

./run-import.sh

This script is suitable for cron jobs as it creates the virtual environment on first run, installs dependencies and reuses the environment on subsequent runs.