Repolode
allinurl

allinurl/goaccess

GoAccess is a real-time web log analyzer that shows traffic stats in the terminal or a live HTML dashboard.

Open-source alternative to:Google Analytics

Stars
21,069
Forks
1,202
Open issues
450
Last commit
yesterday

What is it?

GoAccess parses web server access logs and turns them into traffic statistics such as hits, visitors, bandwidth, status codes and slowest requests. Output goes either to an interactive terminal dashboard or to a self-contained HTML, JSON or CSV report, and both can update live as new log lines arrive.

It is written in C and depends only on ncurses for the terminal interface. It supports predefined formats for Apache, Nginx, Caddy, AWS CloudFront, S3 and Elastic Load Balancing, along with custom log format strings. Logs can be read from files, multiple files at once, or piped input such as tail -f.

Optional features include GeoIP and ASN lookups, UTM campaign breakdowns, bot classification, on-disk persistence for incremental processing, and multi-threaded parsing with the -j option.

Key features

  • 01Real-time updates in both the terminal and the HTML dashboard.
  • 02Predefined parsers for Apache, Nginx, Caddy, CloudFront, S3 and ELB logs, plus custom formats.
  • 03Response time tracking to find slow pages.
  • 04Per-virtual-host metrics and UTM campaign breakdowns.
  • 05Exports reports as HTML, JSON or CSV.
  • 06Persists data to disk so logs can be processed incrementally.

Use cases

  • Checking live traffic and errors on a server over SSH without a browser.
  • Generating a shareable static HTML report from nightly access logs.
  • Spotting scanners, brute-force attempts or unusual bot traffic in logs.
  • Analyzing rotated and compressed logs across several days.

Quick start

  1. 1

    Install GoAccess with Homebrew on macOS (other platforms: see the README's distribution list)

    brew install goaccess
  2. 2

    Run it against your access log to open the terminal dashboard

    goaccess access.log
  3. 3

    Generate a self-contained HTML report instead

    goaccess access.log -a > report.html

Things to know

  • The terminal mode runs on *nix systems; Windows support requires Cygwin or the WSL.

Topics

FAQ

What is goaccess?
GoAccess is a real-time web log analyzer that shows traffic stats in the terminal or a live HTML dashboard. GoAccess parses web server access logs and turns them into traffic statistics such as hits, visitors, bandwidth, status codes and slowest requests. Output goes either to an interactive terminal dashboard or to a self-contained HTML, JSON or CSV report, and both can update live as new log lines arrive.
Is goaccess free to use? What license does it have?
goaccess is open source under the MIT license. Check the license terms before using it in commercial products.
Is goaccess still maintained?
Actively maintained. The last commit to goaccess was on Oct 21, 2026.
What can I use goaccess for?
Checking live traffic and errors on a server over SSH without a browser. Generating a shareable static HTML report from nightly access logs. Spotting scanners, brute-force attempts or unusual bot traffic in logs. Analyzing rotated and compressed logs across several days.
How do I install goaccess?
Install GoAccess with Homebrew on macOS (other platforms: see the README's distribution list): brew install goaccess Run it against your access log to open the terminal dashboard: goaccess access.log Generate a self-contained HTML report instead: goaccess access.log -a > report.html
Where can I get goaccess?
The source code and installation instructions are on GitHub: https://github.com/allinurl/goaccess

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects