Zero-effort web analytics. This is a self-hosted open-source version of Nullitics. Check out https://nullitics.com for the world cheapest web analytics in the cloud.
- Privacy-focused (no cookies, fully anonymized).
- Easy to set up (no databases, no external dependencies).
- Meaningful, stylish dashboard.
- Easy to understand metrics (unique visitors, page views, referrers, countries, device types).
- Very lightweight (Docker image is under 10MB, same is the size of the executable).
- Compliant with GDPR, ePrivacy, PECR, CCPA, and COPPA.
- Fast (can handle 35K req/sec on my humble personal server).
- By-pass ad-blockers.
- Can be used as a standalone service or as a Go library.
- You own your data.
Nullitics comes in several flavours:
- Embedded (a Go library to use in your Go projects).
- Self-hosted (a static binary or a Docker container to run on your server).
- Cloud (the world cheapest web analytics, that also respect your users' privacy).
The package API is designed to be as simple as possible:
mux := http.NewServeMux()
...
// Create a new Nullitics collector to collect analytics
c := nullitics.New()
// Register a report endpoint to see the dashboard
mux.Handle("/_/stats/", c.Report(nil))
// Wrap mux so that every request would be recorded
http.ListenAndServe(":"+port, c.Collect(mux))
Of course, there's plenty of room for customization, see GoDoc for further details.
Also you may try out the ./cmd/example
to see how Nullitics work as library.
Running container on a personal server is even simpler:
docker run -p 8080:8080 zserge/nullitics \
-url mydomain.com \
-dir nullitics-data \
-loc Europe/Berlin \
You may check ./cmd/pixel
to see how the standalone version works.
Of course, you can still build it yourself and run as a Linux service instead of a Docker container, if you like.
Code is distributed under MIT license, feel free to use it in your proprietary projects as well.