Getting found · Edition No. 8 · 2 Sep 2026

allinurl/goaccess

A log reader that turns a web server access log into a terminal dashboard or an HTML report.

← Getting foundRead the whole edition →
GoAccess: web server log analyser. Turns an existing access log into a readable report.

20.9k stars · MIT · v1.11 (2026-07-20) · Track this in Rising ↗

Real-time nginx log analyser — the first honest traffic numbers, from data already on the server, with no JavaScript and no consent banner.

Verified25 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive100

Last code pushed 21 Oct 2026, 7 days before this check.

Releases—

No releases published on GitHub; the code date above is the one to trust.

Maturity100

Public since July 2013, a little over 13 years.

Adoption86

21,080 stars and 1,203 forks.

Activity65

56 commits and 14 new issues in the last 90 days.

Community100

190 contributors. 4 pull requests merged in 90 days.

Security80

A security policy says how to report a problem. 4 published security advisories.

Licence MIT | 1.12: permissive: use it for anything, keep the noticeSetup effort 1 of 5Payoff 4 of 5
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 25 Oct 2026 from the repository on GitHub. Covered in Edition 8.

▶Repo detailsthe review · specs · pros & cons · install

What it does

It reads the access logs that nginx and Apache already write. It parses them and produces either a live dashboard in a terminal window or one self-contained HTML file you can open in a browser. It reports visitor counts, the most requested pages, referring sites, status codes, bandwidth and the user agents that made each request. Because it reads the server's own records, it sees requests from visitors with ad blockers, requests to an API rather than a page, and AI crawlers such as GPTBot, ClaudeBot and PerplexityBot. It is written in C, uses a few megabytes of memory, and parses millions of lines in seconds. The current stable version is 1.12, published on the project's own site. It cannot see anything that never reaches the server, so there is no scroll depth, no click tracking and no signup funnel.

Why it matters

Who it suits. Anyone running a site with no analytics at all, who wants a real number today rather than a better number next month. It also suits people who need to know which AI crawlers are visiting, because a JavaScript tracker cannot see them. Skip it if the site is hosted somewhere that gives you no access to the raw logs.

Verdict. The best twenty minutes on this page. Going from nothing to a real visitor count is a bigger step than any refinement afterwards. Two cautions: log files count robots as visitors unless you configure the filters, and log rotation will quietly delete history unless retention is set deliberately. Umami remains the right next step for behaviour on the page, and Matomo is the fuller self-hosted option if a complete analytics product is wanted.

Stars20.9k
LicenceMIT
Latestv1.11 (2026-07-20)checked 7 Sep 2026
Written inC
NeedsDocker Compose and Docker
RunsLocally, on your own machine
Summary (Key Points)from the README
Key features
  • Live updates: Terminal panels refresh every 200 ms, and the HTML output refreshes every second.
  • Response time tracking: Measures how long requests take to serve, which helps find slow pages.
  • Broad log format support: Accepts custom format strings and predefined formats such as Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, Caddy JSON, and IIS W3C.
  • Incremental processing: On-disk persistence lets new log data be appended to a saved dataset with `--persist` and `--restore`.
  • Single dependency: Written in C, it needs only ncurses and includes its own WebSocket server.
  • Virtual host panel: Shows which virtual host uses the most server resources.
  • UTM campaign breakdown: Splits campaign traffic by medium, source, campaign, content, and term, taken from the requested URL.
  • Bot classification: Places AI crawlers and Fediverse (ActivityPub) traffic in categories separate from search engine crawlers.
  • ASN filtering: Maps traffic to autonomous systems, and `--exclude-asn` drops whole networks during parsing.
  • Large dataset handling: Uses in-memory hash tables with multi-threaded parsing via `--jobs`, and `--chunk-size` ranges from 256 to 32768 (default 1024).
Ways to install
Platform or methodWhat it needsEffort
Build from releaseA *nix system, ncurses, and build tools such as gcc and autoconfCompile from source
Build from GitHub (development)Git, ncurses, and build toolsCompile from source
Debian/Ubuntu (distribution repo)System package managerPackage install, possibly an outdated version
Official GoAccess Debian/Ubuntu repoRepository setup, with apt-transport-https if using HTTPSPackage install, latest stable version
Fedora, Arch, Gentoo, openSUSE, OpenIndiana, FreeBSD, OpenBSD, pkgsrcDistribution package managerPackage install, version varies by distro
OS X / HomebrewHomebrewPackage install
Windows via Cygwin or WSLCygwin packages or the Windows Subsystem for LinuxEnvironment setup, then install
DockerDocker, with volume mapping and goaccess.conf for configurationPull or build image, plus configuration
Isolated container buildDocker, to build a Debian-based binary without local dev librariesContainer build
Important
  • Outdated packages: Distribution packages, especially Debian/Ubuntu's default, may lag behind the latest version.
  • Windows support: Windows works only through Cygwin or the Windows Subsystem for Linux, not natively.
  • Piped input: Piping data does not prompt for log format, date, or time settings, so these must be set in the config file or on the command line first.
  • TLS for real-time output: Real-time output over TLS/SSL requires both `--ssl-cert` and `--ssl-key`.
  • Memory limit: In-memory storage is limited by available physical memory.
  • Restore compatibility: `--http-method` and `--http-protocol` must match the settings used to create the database, or the restore is rejected.
  • Exclusions and persisted data: ASN exclusions apply only to newly read records, not to data already restored from persistent storage.
  • SSH usage: Use `-n` with SSH so GoAccess can read from stdin, and use SSH keys, since passphrase prompts will break the pipe.
  • Mac command difference: On Mac OS X, use `gunzip -c` in place of `zcat`.
  • Map data: The bundled country map includes a Crimea adjustment that should be preserved when updating `resources/countries-110m.json`. Country assignments come from the GeoIP database, not the map.

Written by an AI model from the project’s README; not part of the review, and it can be wrong.

Setup effort
1 / 5
Payoff
4 / 5
Good
  • Nothing is added to the website. No tracking code, no consent banner, no change to any page.
  • It works retroactively, as far back as the logs are kept.
  • --real-time-html produces a live dashboard at a URL, which is pleasant to leave open.
Watch for
  • Logs mislead in specific ways. One page view can be many lines, and robots inflate every count.
  • It sees only what touches the server. No clicks, no scrolling, no conversion tracking.
  • Log rotation deletes history silently unless retention is configured on purpose.
Install
sudo apt install goaccess
goaccess /var/log/nginx/access.log --log-format=COMBINED -o report.html
# live dashboard at a URL
goaccess /var/log/nginx/access.log --log-format=COMBINED \
  --real-time-html -o /var/www/html/report.html
Screenshots
allinurl/goaccess: GitHub preview cardallinurl/goaccess: Screenshot 1

On Stack Radar: Marketing & Growth › SEO & Organic Search › Technical SEO.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.