Skip to content

GoAccess

Open-source log analyzer that shows live web traffic stats in your terminal or a browser dashboard.

Stars
21.1k
Forks
1.2k
Licence
MIT
Language
C
Last update
9 days ago
Type
App

What it is

GoAccess reads your web server's access log files and turns them into traffic statistics such as hits, visitors, bandwidth, and slow requests. It shows the results live in a terminal window or in an HTML dashboard in your browser. System administrators and DevOps staff typically use it to monitor traffic and spot problems quickly.

  • Watch live traffic and error patterns on a web server from a terminal
  • Generate a self-contained HTML, JSON, or CSV report from an access log
  • Break down UTM campaign traffic by medium, source, and campaign
  • Find suspicious traffic by ASN and exclude whole networks with --exclude-asn

Great for

  • System administrators who want quick traffic stats over SSH
  • DevOps engineers monitoring Nginx, Apache, or similar servers
  • People who prefer working in the terminal
  • Anyone checking which pages are slowing down a site using response time tracking

Not ideal for

  • People who need JavaScript-based website analytics for visitors' browsers, since it reads server logs instead (inferred from its log-file design)
  • Windows-only users, because the README says Windows support is only through Cygwin
Step-by-step guide: how to use GoAccessInstall, first run, examples, tips and FAQs

How to get it

  1. 1

    Clone and build from source

    You'll need: A *nix system (Linux, macOS, BSD) · ncurses · autotools (autoreconf) for building from GitHub source

    Clone the repository

    git clone https://github.com/allinurl/goaccess.git

    Enter the directory

    cd goaccess

    Generate build files

    autoreconf -fiv

    Configure the build

    ./configure --enable-utf8 --enable-geoip=mmdb
  2. 2

    Run it

    • Install GoAccess using the build steps or your distribution's package manager
    • Point GoAccess at your web server access log file
    • Pick your log format when prompted or set it in the config
    • View the live terminal dashboard, or generate an HTML report for the browser
  3. 3

    Get the most out of it

    • Use the HTML output for a live dashboard in a browser
    • Enable on-disk persistence to process logs incrementally
    • Use --exclude-asn to drop traffic from problem networks as logs are parsed
    • Customize colors through the terminal or the HTML stylesheet
    • Use the Docker image and docker-compose documentation for containerized setups

Downloads

Strengths

  • Real-time display, with terminal panels updated every 200 ms and HTML every second
  • Works with many log formats, including Apache, Nginx, CloudFront, and Caddy JSON
  • Only needs ncurses as a dependency, and is written in C

Trade-offs

  • Some distribution packages may be an outdated version, according to the README
  • Analysis depends on your log format and an optional GeoIP database for country data

How it compares

ProjectStarsTypeLevelUpdatedBest for
goaccess (this)21.1kAppintermediate9 days agoSystem administrators who want quick traffic stats over SSH
umami39.9kAppintermediate4 days agoWebsite owners who want traffic stats without a cookie banner
linux-dash10.6kAppbeginner2.6 years agoPeople who want a quick browser view of a Linux server's health
ctop17.8kCLIbeginner2.3 years agoDevelopers running several Docker containers locally who want a quick overview of resource use
telegraf17.9kAppintermediate4 days agoEngineers setting up server or system monitoring
dashboards11kLibraryintermediate5.0 years agoDevelopers who need a starting layout for an internal analytics dashboard

Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.