Introducing CaddyShack
Today I'm releasing CaddyShack, a web-based analytics dashboard for Caddy server access logs.
The primary use case is deploying it alongside your Caddy server — run CaddyShack once, and your dashboard is always a browser tab away. But it works equally well as a local tool: download the binary, run it on your laptop, and drag log files onto it whenever you want to investigate. No installation, no configuration, no persistent state.
Either way, within seconds you get a full picture of your traffic — request volumes over time, geographic distribution on an interactive world map, browser and OS breakdowns, HTTP status code analysis, and the most popular URIs.
Why I built it
I run Caddy on my own servers and occasionally want to understand what's hitting them. Full-blown analytics platforms are overkill for that — they require accounts, send data somewhere, and add operational overhead. I just wanted something I could point at a log file and get answers from immediately.
CaddyShack is stateless by design. It parses the log file in the browser during the HTTP request. Nothing is stored server-side, no session is kept, and the log data never leaves your machine.
Privacy by default
IP addresses are anonymized before any processing. The geographic lookups use the free DB-IP Lite dataset, which you can optionally download and mount — no requests to external services at runtime.
Getting started
Download a binary for your platform, or pull the container image from GHCR:
docker run -p 8080:8080 ghcr.io/bjblazko/caddyshack:latest
A Docker Compose file is included in the repository for a more permanent setup. Images are available for linux/amd64 and linux/arm64.
CaddyShack is open source under the Apache 2.0 license. Head over to the product page or the GitHub repository to get started.