I am having a very good experience with goatcounter.
Self-hosted, minimal (single binary in go + reverse proxy), very privacy conscious (so GDPR management it's a breeze).
I like GoatCounter. It's free if you self-host. It's lightweight compared to pretty much every other self-hosted analytics tool, which all want you to dedicate a server and 4GB and a database to it. Goat has about zero resource usage as a compiled Go binary, and you can tell it to write to SQLite. Easy peasy if you control a server, but it's not for you if you use Heroku.
https://www.goatcounter.com/ uses javascript. But they claim they are" Privacy-aware; doesn’t track users with unique identifiers and doesn't need a GDPR notice "
Didn't try yet, but I will soon, seems promising.
Mostly because Prometheus is relatively huge and I wanted something like "1 exe" to run and have peace of mind. I actually do need this kind of system to run on Raspberry Pi. So far I found only goat counter that is truly "plug'n'play".
Hey, I'm the author of Pirsch. I would like to clarify that the fingerprint does not track personal data, which a lot of people assume. The fingerprint is generated from the IP and User-Agent header and then anonymized so that it cannot be traced back to the visitor.
I highly recommend taking a look at GoatCounter, which is a fully-fledged solution for privacy-focused tracking, and Pirsch got inspired from. The main goal of Pirsch was to provide similar functionality in the form of a library that can be integrated into larger applications.