caddy-analytics

command module
v0.0.0-...-58cc6c8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 4, 2021 License: MIT Imports: 23 Imported by: 0

README

Caddy Analytics

Caddy web server log analyzer with web interface written in Go. It is akin to GoAccess, but specialized for Caddy.

Building

A Makefile is included to build a binary. It first bundles the web interface and then builds a Go binary with the web interface embedded. To build, simply run:

make

The executable binary can then be found in the bin directory. There is also a Dockerfile included with which a Docker image can be built by running:

docker build --tag caddy-analytics https://github.com/ldobbelsteen/caddy-analytics.git

Pre-built images can be found here.

Usage

caddy-analytics
	[--geo <license-key>]
	[--logs <log-directory>]
	[--port <listen-port>]
	[--cache <seconds>]

--geo specifies the MaxMind license key used for downloading and maintaining a GeoIP country database. Creating a license key is free, but requires an account. This option is mandatory.

--logs specifies the directory to which Caddy's logs are written. This directory can contain both active logs and rolled/compressed logs. Only logs with extensions .log and .log.gz are analyzed. Defaults to /var/log/caddy.

--port specifies the port on which the web interface be served. Defaults to 5734.

--cache specifies the number of seconds to cache a log analysis before discarding. Defaults to 10.

These options can also be passed through environment variables with their counterparts GEO, LOGS, PORT and CACHE. Environment variables have priority over command line arguments. The Docker image uses these environment variables for configuration. The simplest usage of the Docker image is:

docker run \
	--publish 5734:5734 \
	--volume /path/to/logs:/var/log/caddy \
	--env GEO=your-license-key \
	caddy-analytics

Logging

Caddy doesn't log to disk by default. To enable logging, take a look at the docs for your config format too see how (Caddyfile, JSON). This is a simple example to enable logging for specific hosts in the Caddyfile using snippets:

(logging) {
	log {
		output file /var/log/caddy/access.log
	}
}

example.com {
	import logging
	reverse_proxy localhost:8080
}

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL