Ackee (Self-Hosted Analytics) on Debian 12
Ackee is a lightweight, open-source self-hosted web analytics platform built with a clear goal: provide useful website insights without invading user privacy. It tracks essential metrics such as page views, referrers, browsers, devices, and screen sizes, while deliberately avoiding cookies, user profiling, and cross-site tracking.
Unlike traditional analytics platforms, Ackee is privacy-first by design and typically does not require cookie consent banners, making it an excellent choice for GDPR-conscious websites. It’s ideal for site owners who want transparency, simplicity, and full ownership of their analytics data.
Running Ackee on Debian 12 (Bookworm) gives you a stable, secure, and long-term supported operating system known for its reliability in production environments. Debian 12 includes OpenSSL 3, systemd 252, and mature Docker and Nginx packages, making it a solid foundation for deploying Ackee with Docker, MongoDB, Nginx, and HTTPS.
Architecture Overview
| Layer | Component | Role |
|---|---|---|
| OS | Debian 12 (Bookworm) | Stable, production-grade Linux base |
| Container Runtime | Docker / Docker Compose | Runs Ackee and MongoDB services |
| Application | Ackee (Node.js) | Analytics engine and web dashboard |
| Database | MongoDB | Stores anonymized analytics data |
| Reverse Proxy | Nginx | HTTPS termination, routing, compression |
| TLS | Let’s Encrypt / PKI | Secure access to the analytics interface |
Ackee’s simple architecture makes it easy to deploy, easy to maintain, and easy to back up, even on small VPS instances.
Why Use Ackee?
- Privacy-first analytics – no cookies, no personal data collection
- GDPR-friendly by default – often no consent banner required
- Self-hosted & open-source – complete control over analytics data
- Lightweight and fast – minimal server and client-side overhead
- Clean, focused dashboard – only meaningful metrics, no noise
- Simple JavaScript tracking snippet – easy integration into any site
- Multi-site support – track multiple domains from a single instance
Ackee is designed for people who want ethical analytics without sacrificing clarity or control.
Ackee vs Other Analytics Platforms
| Feature / Capability | Ackee | Google Analytics | Plausible | Umami |
|---|---|---|---|---|
| Hosting | Self-hosted | Cloud only | Cloud / self-hosted | Cloud / self-hosted |
| Cookies | ❌ No | ✅ Yes | ❌ No | ❌ No |
| GDPR friendly | ✅ Yes | ❌ No (by default) | ✅ Yes | ✅ Yes |
| Data ownership | Full | Google-controlled | Partial | Full |
| Tracking depth | Essential | Very detailed | Essential | Moderate |
| Cost | Free, open-source | Free / Paid | Paid | Free / Paid |
Ackee is best suited for blogs, company websites, landing pages, and privacy-focused projects where trust and transparency matter more than aggressive data collection.
Security & Best Practices on Debian 12
- Run Ackee behind Nginx with HTTPS enabled.
- Keep Ackee and MongoDB accessible only via internal Docker networks.
- Store admin tokens and database credentials using environment variables.
- Use UFW or nftables to allow only ports 80 and 443.
- Automate SSL certificate renewal using Certbot.
- Regularly update Debian, Docker, Ackee, and MongoDB images.
- Back up MongoDB data volumes on a scheduled basis.
- Restrict dashboard access to trusted users or IP ranges when possible.
Typical Use Cases
- Personal blogs and portfolios – privacy-respecting visitor insights
- Company websites – GDPR-friendly analytics without cookie banners
- Landing pages – track referrers and traffic sources ethically
- Agencies & developers – analytics for multiple client sites
- Open-source, NGO, or non-profit projects – transparent and ethical tracking
Deploying Ackee on Debian 12 with Docker, MongoDB, Nginx, and SSL gives you a fast, privacy-friendly, and fully self-hosted analytics solution — delivering essential insights while keeping user trust and data ownership firmly in your hands.
Create a Debian 12 Instance on Shape.Host
Go to https://shape.host and log in
Click Create
Choose Instance

Select a server location

Choose Debian 12 (64-bit)
Pick a plan (recommended minimum):
2 CPU cores
4 GB RAM
20 GB NVMe SSD

Click Create Instance
Wait for provisioning

Copy the public IP address

Step 1: Connect to the Server via SSH
From your local machine:
ssh root@YOUR_SERVER_IP
You are now logged in as the root user.
Step 2: Update the System
apt update
apt upgrade -y
Ensures your system has the latest security patches and package updates.

Step 3: Install Required System Packages
apt install ca-certificates curl gnupg lsb-release
These tools are required to securely add the Docker repository.

Step 4: Create Docker Keyrings Directory
mkdir -p /etc/apt/keyrings
Stores trusted cryptographic keys for package verification.
Step 5: Add Docker GPG Key
curl -fsSL https://download.docker.com/linux/debian/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Ensures Docker packages are authenticated.
Step 6: Add Docker Repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
https://download.docker.com/linux/debian \
$(lsb_release -cs) stable" > /etc/apt/sources.list.d/docker.list
Adds the official Docker package source.
Step 7: Update Package Index
apt update
Loads packages from the newly added Docker repository.

Step 8: Install Docker and Docker Compose
apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Installs Docker Engine and Docker Compose v2.

Step 9: Verify Docker Installation
docker version
docker compose version
Confirms Docker is installed and working correctly.
Step 10: Create Ackee Directory
mkdir -p /opt/ackee
cd /opt/ackee
This directory will store Ackee configuration and MongoDB data.

Step 11: Create Docker Compose Configuration
nano docker-compose.yml
Paste the following content:
services:
mongo:
image: mongo:6
container_name: ackee-mongo
restart: unless-stopped
volumes:
- ./mongo-data:/data/db
ackee:
image: electerious/ackee:latest
container_name: ackee
restart: unless-stopped
depends_on:
- mongo
environment:
- ACKEE_MONGODB=mongodb://mongo:27017/ackee
- ACKEE_USERNAME=admin
- ACKEE_PASSWORD=STRONG_ADMIN_PASSWORD
- ACKEE_ALLOW_ORIGIN=https://analytics.example.com
ports:
- "127.0.0.1:3000:3000"
Explanation:
- MongoDB stores analytics data
- Ackee connects internally to MongoDB
- Ackee listens only on localhost for security
- Admin credentials are defined via environment variables
Save and exit the file.

Step 12: Start Ackee
docker compose up -d
Starts Ackee and MongoDB in the background.

Step 13: Check Running Containers
docker ps
You should see:
ackeeackee-mongo
Both should be running.

Step 14: Test Ackee Locally
curl http://127.0.0.1:3000
This confirms Ackee is responding before exposing it publicly.

Step 15: Install Nginx
apt install nginx
Nginx will act as a reverse proxy.

Step 16: Enable and Start Nginx
systemctl enable nginx
systemctl start nginx

Step 17: Create Nginx Configuration
nano /etc/nginx/sites-available/ackee
Paste:
server {
listen 80;
server_name analytics.example.com;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}

Step 18: Enable Nginx Site
ln -s /etc/nginx/sites-available/ackee /etc/nginx/sites-enabled/ackee
rm /etc/nginx/sites-enabled/default
Step 19: Test and Reload Nginx
nginx -t
systemctl reload nginx

Step 20: Install SSL Certificate
apt install certbot python3-certbot-nginx
certbot --nginx -d debian-tutorials.shape.host
Certbot automatically enables HTTPS.


Access Ackee Analytics
https://your-domain.com
Login credentials:
Username: admin
Password: STRONG_ADMIN_PASSWORD


Ackee performs best on stable infrastructure with fast storage.
Shape.Host Cloud VPS offers:
- NVMe SSD storage
- Instant instance deployment
- Clean Debian images
- Reliable networking
- Excellent performance for Docker workloads
Deploy your next self-hosted analytics stack at https://shape.host.