Self-host Matomo
The full-featured Google Analytics alternative — goals, e-commerce tracking, and 100% data ownership, with funnels and heatmaps available as paid premium plugins. Heavier than Plausible, but the closest like-for-like replacement for GA's depth.
Key facts
Pick Matomo when you are replacing Google Analytics wholesale and want the data in your own MariaDB: goals, segments, raw visit logs and a plugin marketplace, GPL-3.0-or-later, at 5.13.0 (as of September 2026) with an official-library Docker image. The price is hardware and upkeep: upstream's minimum for up to 100,000 pageviews a month is 2 CPU, 2 GB of RAM and a 50 GB SSD, and once traffic is real you must run report archiving from cron. The headline behavioural tools — Funnels, Heatmap & Session Recording, A/B Testing, Form Analytics, Custom Reports — are paid premium plugins, not part of the GPL core.
Follow the Matomo deploy guide →What you need
- Any VPS with at least 2048 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- About an afternoon — budget time for troubleshooting
Paid link — we earn a commission if you shop through it.
Install with Docker Compose
Save this as compose.yml and run docker compose up -d:
# Matomo — analytics with a MariaDB backend
services:
db:
image: mariadb:11
environment:
MARIADB_ROOT_PASSWORD: changeme
MARIADB_DATABASE: matomo
MARIADB_USER: matomo
MARIADB_PASSWORD: changeme
volumes: ["./db:/var/lib/mysql"]
matomo:
image: matomo:latest
ports: ["8080:80"]
depends_on: [db]
environment:
MATOMO_DATABASE_HOST: db
MATOMO_DATABASE_USERNAME: matomo
MATOMO_DATABASE_PASSWORD: changeme
MATOMO_DATABASE_DBNAME: matomo
volumes: ["./matomo:/var/www/html"]
# docker compose up -d → http://SERVER_IP:8080 (DB host = db)What you take on
Matomo's own requirements and FAQ pages are where the cost shows up: