Ackee
Self-hosted, privacy-focused analytics tool
Ackee is a self-hosted, Node-based analytics tool that tracks website visitors while respecting privacy and avoiding cookies. It targets developers wanting minimal, ethical analytics. It is deployed via Docker.
Key features
- Privacy-focused tracking
- GraphQL API
- Clean minimal dashboard
- No cookies used
Pros & cons
Strengths
- Lightweight and private
- Easy to deploy
- Nice minimal UI
Trade-offs
- Limited reporting depth
- Needs MongoDB
Ackee replaces
Last reviewed Sep 13, 2026 · 811 words
Ackee is the analytics tool for people who want to know that a page was viewed and roughly where the visitor came from, and who would rather not have the answer to any other question. It sets no cookies, stores no IP addresses, and its whole dashboard fits on one screen. That restraint is the product. If you need funnels, goals with revenue attached, or per-user paths, you will outgrow it in a week. If a Google Analytics property has been quietly collecting data on a personal site you feel slightly guilty about, Ackee is the smallest honest replacement I know of.
It runs on 256 MB, but the database is the odd part
Ackee itself is a Node process that idles under 100 MB. The catch is that it wants MongoDB, which is unusual in a self-hosted stack where nearly everything else speaks PostgreSQL or SQLite. MongoDB adds another container, another backup routine, and a memory floor that in practice lands around 200 to 300 MB once its cache warms. The 256 MB figure for Ackee is honest; budget about double that for the pair.
The compose file is short:
services:
ackee:
image: electerious/ackee
ports:
- "3000:3000"
environment:
- ACKEE_MONGODB=mongodb://mongo:27017/ackee
- ACKEE_USERNAME=admin
- ACKEE_PASSWORD=change-me
- ACKEE_ALLOW_ORIGIN=https://example.com
depends_on:
- mongo
mongo:
image: mongo:6
volumes:
- ./mongo:/data/db
ACKEE_ALLOW_ORIGIN must list every site that will send events, comma-separated, or the browser's CORS check drops the requests and the dashboard stays blank. That one variable accounts for most of the "Ackee shows nothing" threads I have read. Put the whole thing behind your reverse proxy on a hostname like stats.example.com; the tracker endpoint has to be reachable from every visitor's browser, so this is one of the few analytics services that must be public even when the dashboard is for you alone. Ad blockers will block a path called tracker.js on a subdomain called stats, and renaming both roughly doubles the share of visitors you count, which tells you something about how much any of these numbers should be trusted.
The tracker is one script tag and one decision
Create a domain in the dashboard, copy the snippet, and paste it before </body>:
<script async src="https://stats.example.com/tracker.js"
data-ackee-server="https://stats.example.com"
data-ackee-domain-id="your-domain-id"></script>
The decision is detailed mode. Default tracking records only the page and the time. Switching detailed mode on (a data-ackee-opts='{"detailed": true}' attribute) adds referrer, language, screen size, browser and OS. Ackee's own documentation says the detailed fields may count as personal data in some jurisdictions, so the default is the safe one. I run detailed mode on my own sites and would not on a client's without asking them.
Ackee also supports events through ackeeTracker.action(...) in your own JavaScript, which gets you counts of newsletter signups or downloads. It does not get you funnels between them.
What the dashboard will never tell you
Views, unique visitors (worked out without cookies and without storing an IP), top pages, referrers, average duration, browsers, screen sizes, languages, devices. That is the full list. There is no realtime map, no country breakdown (no IP retention means no geolocation), no UTM campaign report beyond what shows up as a referrer, no annotations, no email digest.
The GraphQL API exposes everything the dashboard shows, and people do build their own reports on it, but if you find yourself doing that you have already chosen the wrong tool. Umami covers the same privacy ground with country data, UTM parsing and a far more active project, and the Plausible vs Umami comparison is where I would send anyone who wants more than counts.
Check the commit log before you commit
Ackee first shipped in 2018 and has reached about 4,700 stars, but development has been quiet for an extended stretch and the issue tracker reflects that. Nothing about it is broken; it simply is not gaining features, and the MongoDB version pin will eventually need a hand. For a personal blog that is fine. For anything where you will want an answer to a new question in 2027, pick a project with momentum; the analytics category lists the current options and their trade-offs.
What I'd do
Run Ackee for a personal site or two where the only question is "does anyone read this", with detailed mode off, behind a reverse proxy with TLS, and a weekly mongodump folded into your normal backup. If you are replacing Google Analytics on anything with a marketing budget, go straight to Umami and skip the MongoDB tax; the guide to leaving Google Analytics lays out that migration step by step.
Compare Ackee
19 head-to-head comparisons.
- Ackee vs PostHog
- Ackee vs Umami
- Ackee vs Plausible
- Ackee vs Matomo
- Ackee vs Rybbit
- Ackee vs Fathom Lite
- Ackee vs OpenPanel
- Ackee vs GoatCounter
- Ackee vs Shynet
- Ackee vs Tianji
- Ackee vs Open Web Analytics
- Ackee vs Counterscale
- Ackee vs Vince Analytics
- Ackee vs Litlyx
- Ackee vs Swetrix
- Ackee vs Pirsch
- Ackee vs Counter.dev Selfhost
- Ackee vs Offen Fair Web Analytics
- Ackee vs Medama
Similar web analytics apps
Superset
Web AnalyticsModern data exploration and visualization platform
Replaces Tableau, Power BI
Metabase
Web AnalyticsOpen-source business intelligence and dashboards
Replaces Tableau, Looker
PostHog
Web AnalyticsOpen-source product analytics platform
Replaces Google Analytics, Mixpanel
Umami
Web AnalyticsSimple, fast, privacy-focused web analytics
Replaces Google Analytics
Postiz
Web AnalyticsSchedule posts, track the performance of your content, and manage all
Replaces Buffer, Hootsuite
Netron
Web AnalyticsVisualizer for neural network and machine learning models