FAQ
I’m using Nginx Proxy Manager (or another proxy-manager container). What
log path do I use?
Point ACCESS_LOG_DIR at the host directory where the proxy container
writes its access logs (for Nginx Proxy Manager this is usually its
data/logs volume), and set LOGPARSER_LOG_PATHS to the specific
access-log file(s) inside it, using the container path
(/var/log/access/...), not the host path.
Permission denied reading my log files?
The app container runs as PUID:PGID (default 1000:1000), and log mounts
are read-only. Make the log files (and their parent directory) readable by
that uid/gid on the host with chmod, chown or an ACL entry. Read-only
mounts are intentional: GeoMetrikks never writes to your access logs.
Does this run on arm64?
Yes. The GHCR image is a multi-arch manifest for linux/amd64 and
linux/arm64.
The map is empty.
Check four things in order: (1) the geo-degraded banner; if it shows,
MaxMind credentials or the GeoLite2 database are missing; (2) that
LOGPARSER_LOG_PATHS points at a file receiving traffic in a supported
format (the nginx JSON log_format above, the legacy nginx format,
Traefik JSON, or Caddy JSON); (3) that some time has passed since you last
restarted. The map only shows events ingested after startup unless you
have run a batch import. (4) that your proxy logs the visitor’s address,
not an upstream proxy or tunnel; Settings > Status shows an advisory when
it does not. See docs/proxy-setup.md.
What does the “geo-degraded” banner mean?
The app started without a usable GeoLite2 database: either
MAXMINDDB_USER_ID/MAXMINDDB_LICENSE_KEY are not set, or the download
has not completed yet. The API and UI stay up, but log ingestion does not
start until a database is available. Add credentials and restart the app
container to clear it. The sidebar’s connection indicator also shows
“Degraded” while ingestion is stopped.