20.9k stars · MIT · v1.11 (2026-07-20)
Real-time nginx log analyser — the first honest traffic numbers, from data already on the server, with no JavaScript and no consent banner.
▶Repo detailsthe review · specs · pros & cons · install
What it is
A log analyser written in C that reads nginx or Apache access logs and produces either a live terminal dashboard or a self-contained HTML report. It parses millions of lines in seconds on a small box.
Why it matters
Umami has now been recommended twice — 21 August and again on 30 August as the single most important thing on the page — and it is still not installed. GoAccess is not a replacement, but it is available tonight from data you already have, retroactively, going back as far as your logs are kept. It also sees three things a JavaScript tracker structurally cannot: visitors with ad blockers, everything hitting your API rather than your pages, and the AI crawlers — GPTBot, ClaudeBot, PerplexityBot, Googlebot — which is the only direct evidence you will ever get about whether entry 03's work is landing. For a founder with no analytics at all, going from zero to "1,240 real visits last month, 61% from this one page" is a bigger jump than any refinement afterwards.
- Zero instrumentation. Nothing changes on the site, nothing to consent to, and it works on last month's traffic as easily as today's.
- One binary, a few megabytes of RAM. It will not disturb a box already running two products.
--real-time-htmlgives you a live dashboard on a URL, which is genuinely pleasant to leave open on a second screen.
- Log files lie in specific ways: one page view can be dozens of lines, bots inflate everything, and separating humans from crawlers takes some config care.
- It cannot see anything that does not touch your server — no scroll depth, no clicks, no funnel, no signup conversion. Umami is still the right next step, not the loser here.
- Log rotation will silently eat your history unless you configure retention deliberately.
Runs directly on the Hetzner VPS against /var/log/nginx/access.log .