This guide uses Docker Compose to run GoAccess.
For Docker installation, see Docker.
allinurl/goaccessallinurl/goaccess:1.10.1 (released January 2024) allinurl/goaccess:1.10.1 with enhanced terminal bar charts, city-level geolocation, customizable panels, and refreshed HTML dashboard# Generate a static HTML report from a log file
docker run --rm -v /path/to/access.log:/srv/access.log:ro -v $(pwd):/srv/output allinurl/goaccess:1.10.1 goaccess /srv/access.log -o /srv/output/report.html --log-format=COMBINED
# Stream logs and serve real-time reports
docker run -it --rm -v /path/to/logs:/logs:ro -p 7890:7890 allinurl/goaccess:1.10.1 goaccess /logs/access.log --real-time-html --port=7890
Create a docker-compose.yml file:
version: '3.8'
services:
goaccess:
image: allinurl/goaccess:1.10.1 # Pin to specific version for stability
restart: unless-stopped
ports:
- "7890:7890" # Expose the WebSocket port for real-time updates
volumes:
- /var/log/nginx:/logs:ro # Mount your log directory (read-only)
- ./config/goaccess.conf:/etc/goaccess/goaccess.conf:ro # Optional: custom config
- ./reports:/var/www/goaccess:rw # Volume for generated reports
command: >
goaccess
--config-file=/etc/goaccess/goaccess.conf
--real-time-html
--port=7890
Create a basic configuration file at ./config/goaccess.conf:
# GoAccess Configuration for Docker
log-format COMBINED
time-format %H:%M:%S
date-format %d/%b/%Y
log-file /logs/access.log
output /var/www/goaccess/index.html
real-time-html true
ws-url ws://localhost:7890
port 7890
max-items 100
hl-header on
color-scheme 2
no-query-string yes
Start the service:
docker-compose up -d
# Stream a log file to generate real-time reports
tail -f /var/log/nginx/access.log | docker run -i --rm -p 7890:7890 allinurl/goaccess:1.10.1 goaccess --log-format=COMBINED --real-time-html --port=7890
# Process compressed log files
zcat access.log.gz | docker run --rm -i allinurl/goaccess:1.10.1 goaccess - -o report.html --log-format=COMBINED
1.10.1) instead of latest for consistency and predictabilitydocker logs goaccess-goaccess-1
docker exec -it goaccess-goaccess-1 /bin/sh
docker exec goaccess-goaccess-1 goaccess --help
Any questions?
Feel free to contact us. Find all contact information on our contact page.