Files
simonchiang 7436bf6e2e v1.10.2 patches: continent persistence, city markers, dynamic map center
C changes:
- gstorage.c: encode continent into root key for --persist --restore survival
- gholder.c: decode continent from root + lat/lng storage
- commons.h: add lat/lng fields to GMetrics struct
- geoip2.c/geoip1.h: extract coordinates from MMDB
- json.c: output lat/lng in geolocation JSON

JS changes:
- Remove cityIndex guard for static HTML city dots
- TopoJSON lat/lng fallback for city coordinates
- updateMap fallback city collection
- Dynamic orthographic center based on visitor count
- Mercator stays at [0,15] for full world view

Co-Authored-By: Claude <noreply@anthropic.com>
2026-06-25 11:38:09 +08:00

1.3 KiB

Docker-compose configuration

Here are two docker-compose configurations for goaccess which combine a static site with a real-time report of goaccess. The directories used are:

  • configs - for the nginx and goaccess configuration
  • public - the files served by nginx - put your static site here
  • logs - nginx logs - there is no log rotation in place!

There are two flavors of the docker-compose files and the goaccess files:

  • *.vanilla.* which need you to take care of the TLS certificates
  • *.traefik.* using traefik for TLS and domain routing

Vanilla

For the vanilla version, you'll have to do the following:

  • put the TLS certificates into configs/certs, following the naming scheme in goaccess.vanilla.conf
  • route requests for the static webpage to port 8080

Traefik

The traefik version is setup to make it easier to do the routing. You don't need to take care of the TLS certificates, and the goaccess websocket gets its own subdomain.

To put it all together, the following environment is needed:

  • traefik configured according to Traefik-101
  • DNS configuration for two domain names pointing to your server's IP:
    • yourdomain for the static pages, e.g., a blog-post using Hugo
    • goaccess.yourdomain for the stats with goaccess