Fathom is an opensource website analytics application that you can self-host or pay for managed hosting. It provides enough information to allow you understand key metrics about the traffic flowing to your website.
Some features you might expect, like IP addresses of visitors, geo-location, and user-agent strings, are not available because it’s a privacy focused analytics system. But that’s not a defect, it’s a feature, especially in an online world where privacy is becoming more important to users.
Fathom can be setup using Docker or built from source. Using the containerized method of deployment is by far the easiest. In this article we’re going to setup Fathon using a container on our own equipment and setup some websites to flow some traffic. We’ll be using Packetriot as an example since we use Fathom to collect our analytics for packetriot.com and our blog.
docker run -d --restart always -p 8000:80 --name packetriot-fathom usefathom/fathom:latest docker ps
Next we need to expose the Fathom container to the Internet so that the site tracker code in my two websites can actually reach the server running inside the container. To do this I’m going to add a new rule to pktriot client configuration. I want my metrics to be encrypted, so we’ll be enabling LetsEncrypt and secure redirect. Once we finish adding the rule just start up the client.
pktriot route http add --domain stats.packetriot.com --destination 127.0.0.1 --http 8000 --letsencrypt --redirect pktriot route http ls pktriot start
With our tunnel up we’ll need to visit the sites we built trackers for and give Fathom some time to receive the data and make its determinations. It may take some time for data-points to begin to accumulate. One of the reasons that I’ve found this to be the case is not that it’s slow to update, but rather that many users use Do Not Track (DNT) in their browser, which Fathom respects. If you want to test Fathom on your own, be sure to turn off DNT or just make an exception for your websites.
For those that want to collect traffic metrics for the sites you run and host the data on their own, check out Fathom. I’ve been using Fathom for several months now and really enjoy it. It’s easy to setup, opensource, respects your users’ privacy and can be integrated into your site with ease.
The folks at Fathom provide plans for managed service if you don’t want to worry about hosting or updating your software. Exposing Fathom to the Internet is easy to do with Packetriot. You can host many websites with a single tunnel and collect site metrics for all of them using Fathom.
The Packetriot team