← All articlesSelf-Hosted

Self-Hosted Analytics: Plausible vs Umami vs Matomo — Honest Comparison

Compare the top three self-hosted web analytics platforms. Covers features, resource usage, GDPR compliance, accuracy, and which one fits your use case best.

Y
Yash Pritwani
13 min read

Why Self-Host Analytics?

Google Analytics 4 is a privacy nightmare. It sends your visitors' data to Google, requires cookie consent banners in the EU, and its interface is overwhelming for most teams. Self-hosted analytics give you accurate data, full privacy compliance, and zero dependency on third parties.

ProductionWeb ServerApp ServerDatabaseMonitoringStagingWeb ServerApp ServerDatabaseVLANBackupStorage3-2-1 Rule

Server infrastructure: production and staging environments connected via VLAN with offsite backups.

The Three Contenders

Umami

Umami is the minimalist choice. A single Docker container with a PostgreSQL or MySQL backend. It tracks page views, events, referrers, and basic device info — nothing more.

services:
  umami:
    image: ghcr.io/umami-software/umami:postgresql-latest
    environment:
      DATABASE_URL: postgresql://umami:password@postgres:5432/umami
      DATABASE_TYPE: postgresql
      HASH_SALT: your-random-salt-here
    ports:
      - "3000:3000"
    depends_on:
      - postgres
    restart: unless-stopped

Resource usage: ~50MB RAM, ~180MB Docker image.
Tracking script: 2KB gzipped.
Database growth: ~1MB per 10,000 pageviews.

Get more insights on Self-Hosted

Join 2,000+ engineers who get our weekly deep-dives. No spam, unsubscribe anytime.

Plausible

Plausible is privacy-focused with a beautiful dashboard. It uses ClickHouse for analytics storage, making it extremely fast for queries over large datasets.

services:
  plausible:
    image: ghcr.io/plausible/community-edition:latest
    environment:
      DATABASE_URL: postgres://plausible:password@postgres:5432/plausible
      CLICKHOUSE_DATABASE_URL: http://clickhouse:8123/plausible
      SECRET_KEY_BASE: your-64-char-secret-here
      BASE_URL: https://analytics.example.com
      DISABLE_REGISTRATION: invite_only
    depends_on:
      - postgres
      - clickhouse
    ports:
      - "8000:8000"

  clickhouse:
    image: clickhouse/clickhouse-server:latest
    volumes:
      - clickhouse_data:/var/lib/clickhouse

Resource usage: ~200MB RAM (Plausible) + ~500MB RAM (ClickHouse).
Tracking script: under 1KB gzipped.
Database growth: ~500KB per 10,000 pageviews thanks to ClickHouse compression.

Matomo

Matomo (formerly Piwik) is the feature-complete option. It matches Google Analytics feature-for-feature — funnels, cohorts, custom dimensions, A/B testing, heatmaps, session recordings.

services:
  matomo:
    image: matomo:latest
    environment:
      MATOMO_DATABASE_HOST: mariadb
      MATOMO_DATABASE_USERNAME: matomo
      MATOMO_DATABASE_PASSWORD: password
      MATOMO_DATABASE_DBNAME: matomo
    volumes:
      - matomo_data:/var/www/html
    ports:
      - "8080:80"

  mariadb:
    image: mariadb:11
    environment:
      MYSQL_ROOT_PASSWORD: root-password
      MYSQL_DATABASE: matomo
      MYSQL_USER: matomo
      MYSQL_PASSWORD: password

Resource usage: ~150MB RAM (PHP-FPM) + ~200MB (MariaDB).
Tracking script: ~22KB gzipped.
Database growth: ~5MB per 10,000 pageviews.

Cloud$5,000/moMigrateBare MetalDocker + LXC$200/mo96% cost reduction

Cloud to self-hosted migration can dramatically reduce infrastructure costs while maintaining full control.

Feature Comparison

Feature Umami Plausible Matomo
Page views Yes Yes Yes
Custom events Yes Yes Yes
Funnels No Yes (paid) Yes
Goals/Conversions Basic Yes Yes
E-commerce tracking No Revenue goals Full
Heatmaps No No Plugin
Session recording No No Plugin
Cookie-free Yes Yes Optional
GDPR compliant Yes Yes Yes (with config)
Real-time dashboard Yes Yes Yes

Custom Event Tracking

Umami

// Track a custom event
umami.track("signup-click", { plan: "pro", source: "landing-page" });

Plausible

Free Resource

Free Cloud Architecture Checklist

A 47-point checklist covering security, scalability, cost optimization, and disaster recovery for production cloud environments.

Download the Checklist
// Track a custom event
plausible("Signup", { props: { plan: "pro", source: "landing-page" } });

Matomo

// Track a custom event
_paq.push(["trackEvent", "Signup", "Click", "Pro Plan"]);
docker-compose.ymlWeb AppAPI ServerDatabaseCacheDocker Network:3000:8080:5432:6379

Docker Compose defines your entire application stack in a single YAML file.

Our Recommendation

  • Choose Umami if you want simple, lightweight analytics with minimal resource usage. Best for blogs, documentation sites, and small SaaS apps.
  • Choose Plausible if you want beautiful dashboards, goal tracking, and can handle the ClickHouse dependency. Best for marketing teams and content sites.
  • Choose Matomo if you need full GA4 replacement with funnels, cohorts, and e-commerce tracking. Best for large applications and enterprises.

At TechSaaS, we run Umami (analytics.techsaas.cloud) because it fits our philosophy — minimal, fast, privacy-respecting. For clients who need more features, we deploy Plausible.

Need help choosing and deploying analytics? Contact [email protected].

#analytics#plausible#umami#matomo#privacy#self-hosted

Related Service

Cloud Solutions

Let our experts help you build the right technology strategy for your business.

Need help with self-hosted?

TechSaaS provides expert consulting and managed services for cloud infrastructure, DevOps, and AI/ML operations.

We Will Build You a Demo Site — For Free

Like it? Pay us. Do not like it? Walk away, zero complaints. You will spend way less than hiring developers or any agency.

47+ companies trusted us
99.99% uptime
< 48hr response

No spam. No contracts. Just a free demo.