Show HN: Ackee – Self-hosted website analytics
ackee.electerious.com
ackee.electerious.com
Before google analytics I remember there were a few self hosted tools in this space. Would you mind adding a list of the most current ones that people are using? I need to get caught up.
Fathom: https://github.com/usefathom/fathom
Goatcounter: https://github.com/zgoat/goatcounter
Freshlytics: https://github.com/sheshbabu/freshlytics
There's also a non-oss but privacy focussed analytics - http://simpleanalytics.com
Disclaimer: I'm the creator of Freshlytics
We used to provide our own stats software to our customers before it became an utter nightmare of indexing databases, cron jobs, report generation, and customers stepping over their hosting quotas because of all the stats data.
[1] https://snowplowanalytics.com/products/snowplow-open-source/
> As soon as a stream row has been read by the continuous views that must read it, it is discarded. Raw, granular data is not stored anywhere. The only data that is persisted for a continuous view is whatever is returned by running a SELECT * FROM that_view. Thus you can think of a continuous view as a very high-throughput, realtime materialized view.
I use PipelineDB continuous views in Freshlytics - https://github.com/sheshbabu/freshlytics/blob/master/src/ser...
TimescaleDB also has something called "Continuous Aggregates" - https://docs.timescale.com/latest/using-timescaledb/continuo... but I haven't looked into it much.
I don't think Ackee is the right tool if your site as so many visitors. And to be honest: I don't know what will happen at this scale. There shouldn't be a problem as long as MongoDB can handle it.
- A documented REST API that lets you build upon Ackee. Could be used for custom import scripts or apps that display your current visitor stats in the menu bar. - Ackee allows you to track more than just page/site views (browser, system, etc.). This is optional and off by default, but great for people/companies that need more insights.
Fathom definitely has a head start, while Ackee is very young. Can't wait to see how Fathom v2 will look like and how both will compare in the future.
+1 for self-hosting analytics, something I encourage everyone to do if you have the time to devote to it. I dislike sites handing my browsing habits off to random third-parties.
Obviously, really large sites need more sophisticated analytics but for most sites something like GoogleAnalytics is complete overkill. It grabs information that nobody except Google's machine learning bots are ever going to look at.
There's still a lot missing in Ackee, but even with all the features I'm planning to add it will never be a full replacement for Google Analytics. And I think that's the best about Ackee. Because not everyone needs full-featured marketing analytics with tons of options and insights.
Ackee can also show page views, but it's not implemented in the UI, yet. This is the same for browser, system, visit duration and other insights (all of them are optional to track and turned off by default). Keep an eye on https://github.com/electerious/Ackee/issues/35 to know when it's ready.
Bounce Rate: The percentage of visitors to a particular website who navigate away from the site after viewing only one page.
Aside form that one it would be useful to track Page Views per Session, PVs per Page Type (homepage versus article page), and even Page Depth (per Page Type)
Just a thought. Still really nice.
This requires tracking sessions.
> Page Views per Session
This requires cookies or some other mechanism for stringing individual page hits into a single stream. While you can, sort of, kind of, do that based on the source IP combined with the user-agent (like this project does), it's not terribly accurate and it can't track longer sessions.
I would argue that very few people object to being tracked by the site they are actually visiting. Most object to being tracked by 3rd parties, and across multiple unrelated sites. So a simple 1st party cookie is quite acceptable, but you can certainly go an extra mile and ask even if it can be set.
I've created an issue for it if you want to keep an eye on the progress: https://github.com/electerious/Ackee/issues/40
This seems to me like a perfect job for a serverless solution, given how popular static sites have become. Serverless would provide minimal cost when you don't have a lot of traffic (and could scale if you get HackerNews'ed).
> No unique user tracking
on the site.
Right now, each customer gets its own Fathom install, but I would prefer to have it centralised to make management easier and decrease the amount of non-standard packages on the WordPress containers.
Edit: Not advocating in favour of Matomo, it's just that it is a solution which seems quite full featured. Personally I found it painful enough to work with it (from a devops perspective) that I wouldn't touch it with a ten foot stick.
Way too many features that a person with a blog won’t need. Something simpler like Fathom or this one, which was built with privacy in mind from the get-go — instead of just “I want to get away from Google” —, seems like a better solution.
To be clear, I am not saying Matomo is a bad piece of software. Just that it does not feet our needs.
As a user, I dont see tracking by specifically google being the problem; what I'm against is being tracked _at all_ - by anyone, self hosted or not.
There's "caring about privacy" in the subheadings, yet there's a whole section in docs about collecting private data [1]. Empty words.
I've used goaccess [2] in the past to provide traffic analytics. It reads from nginx/apache logs. You only get access to what browsers send anyway, and users who alter their user agents are in the minority, so they wont affect analytics much.
[1] https://github.com/electerious/Ackee/blob/1cf7779/docs/Anony...
I think we need to recognize privacy as a spectrum and applaud self-hosted alternatives to traditional saas services even if they don't conform to your notion of tracking.
While I'm using GoAccess myself and I too recommend it over using JS libraries, your server logs usually contain private data as well (user agent, ip address).
The advanced tracking is turned off by default. Ackee will never store a browsing history of a user and tries it best to keep tracked data anonymised.
It's all about finding a balance between privacy and analytics. At the end it's still an analytics tool and there would be nothing to show without data.
Using "nginx/apache logs" and "what browsers send anyway" is more than Ackee tracks by default. Storing and analysing this data isn't even allowed by the GDPR without asking the user.
All my tools/webapps after Lychee are somehow following the same species or clade: Rosid, Malvid and now Ackee.
But: I'm not a lawyer. I can't give you a legally certain statement. It's hard to say what's "identifiable data" according to the GDPR.