
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
How to get it
- 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.gitEnter the directory
cd goaccessGenerate build files
autoreconf -fivConfigure the build
./configure --enable-utf8 --enable-geoip=mmdb - 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
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
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| goaccess (this) | 21.1k | App | intermediate | 9 days ago | System administrators who want quick traffic stats over SSH |
| umami | 39.9k | App | intermediate | 4 days ago | Website owners who want traffic stats without a cookie banner |
| linux-dash | 10.6k | App | beginner | 2.6 years ago | People who want a quick browser view of a Linux server's health |
| ctop | 17.8k | CLI | beginner | 2.3 years ago | Developers running several Docker containers locally who want a quick overview of resource use |
| telegraf | 17.9k | App | intermediate | 4 days ago | Engineers setting up server or system monitoring |
| dashboards | 11k | Library | intermediate | 5.0 years ago | Developers 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.