Tracking you people
cookie free analytics
a year ago
Analytics
So now we are up and running I suppose it might just make sense to actually find out if any one bar me is reading this drivel. 😉 So the first thing about running analytics was I wanted these to be as light weight for myself and for the client. Trying to do no tracking cookies or fingerprinting. So I went and had a look at the options:
Hosted Services
Google Analytics
NO!Clicky
Seems like a light weight version with an older style UI with the benefit of No tracking cookies or finger-printing and GDPR compliant. Some of the more interesting features such as heat maps and uptime tracking. So I decided I didn’t want to go with a hosted service so I then started to look up something I can run myself.
Self Hosted
Matomo
Matomo On-Pemise is the self-hosted side of the Matomo SASS platform and is probably the biggest open source competitor to Google Analytics but is an older project built on PHP with a On-Premise concept for self hosting. The maintenance cost and setup for Matomo “On-Premise” is not really attractive, wanting a more native docker based system. Also has a dependency for MySQL and I would rather have a dependency for Postgres as I would use that for storing other services data.
Plausible.io
Pausible Analytics is an open source, self-hosted, simple, lightweight and privacy-friendly Google Analytics alternative which is the open-source side of the Plausible.io SASS platform. This is GDPR compliant and cookie free and offers a docker based system with a reliance on a Postgres database.
Umami
This is a self hosted, open source, simple analytics platform with no SASS platform being pushed. Its got a docker based system very much like Plausible.io and does not collect any personal information, does not use cookies, does not track users across websites, and is GDPR compliant. It also has a reliance on a Postgres database.
Choice
I decided to go with Umami mainly because it’s open source with no corresponding SASS platform - my thinking is I can avoid an open-core problem when the SASS platform developers segregate features.
Installation
Installation was a breeze to be honest extending my docker-compose file to use the ghcr.io/umami-software/umami:postgresql-latest
image and the corresponding postgres image. They even give an example docker-compose file here. I used that as a base but then set up all the required DNS records on my host for the sub domain and then used the labels for traefik to control ingress requests from the client side to the umami container.
umami:
container_name: umami
image: ghcr.io/umami-software/umami:postgresql-latest
environment:
DATABASE_URL: ************************
DATABASE_TYPE: postgresql
HASH_SALT: ************************
restart: always
labels:
- traefik.enable=true
- traefik.http.routers.umami.rule=Host(`umami.zarl.dev`)
- traefik.http.routers.umami.entrypoints=websecure
- traefik.http.routers.umami.tls=true
- traefik.http.routers.umami.service=umami
- traefik.http.routers.umami.tls.certresolver=le
- traefik.http.services.umami.loadbalancer.server.port=3000
Logged into the newly running umami instance and configed zarl.dev buy adding the domain and generated the link to the js for data retrieval.
I then updated the +layout.svelte
page to use the js hosted via my running umami container to gather statistics. So now I can prove it’s just me reading this stuff. 😉