Check out Matomo
Selfhosted
A place to share alternatives to popular online services that can be self-hosted without giving up privacy or locking you into a service you don't control.
Rules:
-
Be civil: we're here to support and learn from one another. Insults won't be tolerated. Flame wars are frowned upon.
-
No spam posting.
-
Posts have to be centered around self-hosting. There are other communities for discussing hardware or home computing. If it's not obvious why your post topic revolves around selfhosting, please include details to make it clear.
-
Don't duplicate the full text of your blog or github here. Just post the link for folks to click.
-
Submission headline should match the article title (don’t cherry-pick information from the title to fit your agenda).
-
No trolling.
Resources:
- selfh.st Newsletter and index of selfhosted software and apps
- awesome-selfhosted software
- awesome-sysadmin resources
- Self-Hosted Podcast from Jupiter Broadcasting
Any issues on the community? Report it using the report flag.
Questions? DM the mods!
I'm considering Matomo, but its tracking script is huge and can't easily be bundled with my site's code (whereas systems like Plausible have their tracking scripts available on npm). Looking for something a big lighter on the JS.
If you still want to respect user privacy, your analytics software could use the port of the connection instead of IP as the identifier. It would be perfectly fine for determining simultaneus users from the same IP, but not invasive enough to monitor an individuals behaviour. Don't ask me which analytics software supports that. I'd grab the data from the http logs if it was me and use a tool like goaccess.
Each request to the site may use a different port though (if the keepalive times out).
I'd grab the data from the http logs if it was me and use a tool like goaccess.
Unfortunately this has the same issue with multiple people sharing an IP appearing to be one user.
Another major use case I thought of are people stuck on CGNAT. It's easily possible for tens of thousands of customers to share just dozens of public IP addresses. Unfortunately some providers are rolling out CGNAT instead of IPv6 even though it causes so many problems.
In Plausible you can use custom events: https://plausible.io/docs/custom-props/introduction
I think this should be enough
I don't think this would fully help? It'd still show that one user performed all the events.
I just need a way of explicitly specifying a user identifier instead of it being assumed based on IP and user agent. I don't think Plausible has a way to do that. I was chatting with the developer of Swetrix and they said it might be possible to add this as a feature.
you can generate a new cookie with the value you want to identify that computer and use/capture that same value in the plausible custom event
Acronyms, initialisms, abbreviations, contractions, and other phrases which expand to something larger, that I've seen in this thread:
Fewer Letters | More Letters |
---|---|
CGNAT | Carrier-Grade NAT |
IP | Internet Protocol |
NAT | Network Address Translation |
2 acronyms in this thread; the most compressed thread commented on today has 11 acronyms.
[Thread #207 for this sub, first seen 11th Oct 2023, 06:15] [FAQ] [Full list] [Contact] [Source code]
It's not plug and play, but Open telemetry is the self hosted way to go.
Have a look at umami https://github.com/umami-software/umami
Umami is one I'm considering. I don't think it allows a session ID to be provided though.
It also uses a row-based database (like MySQL or PostgreSQL) rather than a column-based database (like Clickhouse), which for analytics data is way less efficient and significantly slower once you have a lot of data. Pretty much all queries you'd want to run load a lot of data by column rather than row (eg charts of most common browsers, countries, etc over the past 6 months) so they benefit greatly from a columnar database.
TelemetryDeck!