Google Analytics collects data about your visitors and sends it to Google's servers. It requires cookie consent banners under GDPR. It loads a 45KB tracking script that affects page performance. And since July 2023, it operates under a framework (GA4) that many privacy regulators in the EU have found non-compliant with European data protection law.

Plausible Analytics takes the opposite approach. It's a lightweight, open-source analytics platform that collects no personal data, sets no cookies, and generates a tracking script under 1KB. Because it doesn't track individuals, Plausible doesn't require cookie consent banners — a significant UX improvement and a compliance simplification for any website serving EU visitors.

The catch with Plausible's managed cloud service is cost. Plausible Cloud starts at $9/month for up to 10K monthly pageviews and scales to $199/month for 10M pageviews. For a growing website, these costs add up quickly. Self-hosting Plausible on your own VPS eliminates the recurring fee entirely — you pay only for the server, and you own the data.

This guide walks through deploying Plausible Analytics on a MassiveGRID VPS using Coolify, from initial setup through production configuration. If you haven't installed Coolify yet, start with our installation guide.

Why Self-Host Plausible

GDPR compliance without the complexity

Plausible was designed from the ground up to be GDPR-compliant. It doesn't use cookies, doesn't collect IP addresses (they're discarded after generating a salted hash), and doesn't track users across sessions or sites. This means:

That last point is critical. Even though Plausible's software is privacy-first, hosting it on Plausible Cloud means your analytics data transits through their infrastructure. Self-hosting on a VPS in Frankfurt or London keeps every byte of analytics data within the EU, providing the strongest possible compliance posture under GDPR, NIS2, and the evolving European data sovereignty regulations.

Cost comparison at scale

Plausible Cloud pricing is based on monthly pageviews:

Monthly Pageviews Plausible Cloud Self-Hosted (MassiveGRID VPS)
Up to 10K $9/mo $4.99/mo (Dedicated VPS)
Unlimited pageviews
Up to 100K $19/mo
Up to 1M $69/mo
Up to 5M $129/mo
Up to 10M $199/mo

Self-hosted Plausible has no pageview limits. A Dedicated VPS starting at $4.99/month can handle millions of pageviews with proper resource allocation. The economics become compelling the moment you cross 10K monthly pageviews — and they become overwhelming at scale.

Lightweight tracking script

Plausible's tracking script is under 1KB — roughly 45x smaller than Google Analytics. When self-hosted, this script loads from your own domain, eliminating the third-party request that ad blockers and privacy extensions target. Self-hosted Plausible typically achieves higher tracking accuracy than any cloud-hosted analytics solution because the script isn't flagged by browser extensions or DNS-level blocking lists.

Prerequisites

Before deploying Plausible, ensure you have:

Resource requirements

Plausible's resource footprint depends on traffic volume. The application itself is an Elixir/Phoenix application that's efficient with memory. The heavier component is ClickHouse, the columnar database that stores analytics events.

Traffic Level RAM Required Storage (annual) Recommended VPS
Up to 100K pageviews/mo 1–2 GB 5–10 GB 2 vCPU / 4 GB RAM
100K–1M pageviews/mo 2–4 GB 10–30 GB 4 vCPU / 8 GB RAM
1M+ pageviews/mo 4–8 GB 30–100 GB 4 vCPU / 16 GB RAM

If you're running Plausible alongside Coolify and other applications on the same server, factor in Coolify's own overhead (~500–700MB RAM) plus your other workloads. See our resource planning guide for detailed sizing across different application stacks.

Deploying Plausible via Coolify

Plausible is available as a one-click service in Coolify's service catalog, which simplifies the deployment process significantly. Coolify handles the Docker Compose orchestration, networking between services, and persistent volume management.

Step 1: Create the Plausible service

In your Coolify dashboard, navigate to your project and select Add New Resource → Service. Search for "Plausible" in the one-click service catalog. Coolify will present the Plausible service template, which includes:

Click to deploy. Coolify generates the required environment variables, creates persistent volumes for both databases, and sets up internal networking between the three containers.

Step 2: Configure environment variables

After creation, navigate to the service's environment configuration. The critical variables to set:

SMTP configuration (optional but recommended)

To enable email functionality (account verification, password resets, weekly traffic reports), configure these variables:

MAILER_EMAIL=analytics@yourdomain.com
SMTP_HOST_ADDR=smtp.yourdomain.com
SMTP_HOST_PORT=587
SMTP_USER_NAME=analytics@yourdomain.com
SMTP_USER_PWD=your_smtp_password
SMTP_HOST_SSL_ENABLED=true

Without SMTP, Plausible works fine — you just won't receive email reports or be able to reset passwords via email.

Step 3: Configure domain and SSL

In the service settings, assign your domain (e.g., analytics.yourdomain.com) to the Plausible application container. Create a DNS A record pointing this subdomain to your VPS IP address. Coolify's Traefik reverse proxy automatically provisions an SSL certificate via Let's Encrypt and routes traffic to the Plausible container.

After DNS propagation (typically 1–5 minutes), access your Plausible dashboard at https://analytics.yourdomain.com.

Step 4: Create your admin account

Navigate to your Plausible URL and create the initial admin account. This is the account you'll use to manage sites, view analytics, and configure settings. After creating your account, immediately set DISABLE_REGISTRATION=invite_only in the environment variables and redeploy — this prevents anyone else from creating accounts on your instance.

Step 5: Add your first site

In the Plausible dashboard, click Add a website and enter your site's domain. Plausible generates a tracking snippet:

<script defer data-domain="yourdomain.com"
  src="https://analytics.yourdomain.com/js/script.js">
</script>

Add this snippet to the <head> of every page on your website. Because the script loads from your own domain rather than a third-party server, it's less likely to be blocked by ad blockers or privacy extensions — resulting in more accurate analytics data.

Enhanced tracking options

Plausible supports several script variants for additional tracking capabilities:

You can combine these by using the compound script name, such as script.hash.outbound-links.file-downloads.js. Even with all extensions enabled, the script remains under 2KB — a fraction of Google Analytics.

Understanding the ClickHouse Backend

Plausible uses ClickHouse as its analytics database — a columnar database designed for real-time analytical queries over large datasets. Understanding a few ClickHouse basics helps you manage your self-hosted Plausible instance effectively.

Why ClickHouse for analytics

Traditional row-based databases like PostgreSQL store all columns of a row together on disk. When you query "total pageviews by country for the last 30 days," PostgreSQL reads every column of every matching row, even though you only need two columns. ClickHouse stores each column separately and compresses them independently, so the same query reads only the data it needs. For analytics workloads — aggregating millions of events across a few dimensions — ClickHouse is orders of magnitude faster.

Storage efficiency

ClickHouse's columnar compression is remarkably efficient. A site tracking 1 million pageviews per month typically consumes only 1–3 GB of disk space per year in ClickHouse. This means even modest VPS storage allocations can hold years of analytics history. MassiveGRID's independent storage scaling lets you add disk space as your data grows without changing your CPU or RAM allocation — you pay only for what the data actually needs.

Memory management

ClickHouse uses memory aggressively for query performance. During complex dashboard queries (large date ranges, multiple filters), ClickHouse may temporarily spike to 1–2 GB of RAM. This is normal behavior — the memory is released after the query completes. If you're running Plausible alongside other applications, ensure your VPS has enough headroom for these spikes.

EU Data Residency with MassiveGRID

For organizations subject to GDPR, NIS2, or other European data protection regulations, where your analytics data is physically stored matters. Self-hosting Plausible gives you full control over data location — but only if you choose the right infrastructure provider.

Frankfurt and London datacenters

MassiveGRID operates datacenters in Frankfurt, Germany and London, United Kingdom. Deploying your Plausible instance in Frankfurt places your analytics data within the EU, satisfying the most stringent interpretations of GDPR data residency requirements. London provides a UK-based option for organizations operating under the UK's Data Protection Act 2018, which mirrors GDPR's requirements post-Brexit.

When provisioning your VPS through MassiveGRID's configurator, simply select Frankfurt or London as your datacenter location. Your Plausible instance — including the ClickHouse database containing all analytics events — runs entirely within that datacenter. No analytics data leaves the jurisdiction.

Data sovereignty beyond GDPR

EU data residency addresses more than just GDPR. The NIS2 Directive and DORA (Digital Operational Resilience Act) introduce additional requirements for critical infrastructure and financial services organizations. Hosting analytics within the EU, on infrastructure operated by a provider with ISO 9001 certification and transparent data handling practices, strengthens your compliance posture across multiple regulatory frameworks simultaneously.

For organizations with broader data sovereignty needs, see MassiveGRID's Digital & Data Sovereignty solutions and GDPR Compliance documentation.

Production Configuration and Optimization

Disable registration

After creating your admin account, set DISABLE_REGISTRATION=invite_only and redeploy. This prevents unauthorized signups while still allowing you to invite team members via email.

Google Search Console integration

Plausible can import search query data from Google Search Console, giving you keyword-level insights without running Google Analytics. Configure the integration in Plausible's site settings — you'll need to authorize Plausible to access your Search Console data via OAuth. This is one of the few external integrations and is entirely optional.

Custom goals and events

Define conversion goals in Plausible's dashboard — page visits, custom events, or outbound link clicks. Custom events require the script.tagged-events.js variant and use CSS classes or JavaScript API calls to fire events:

// JavaScript API for custom events
plausible('Signup', {props: {plan: 'premium'}});

// CSS class-based tracking (no JS needed)
// Add class="plausible-event-name=CTA+Click" to any element
<button class="plausible-event-name=CTA+Click">Get Started</button>

Data backups

Plausible stores data in two databases: PostgreSQL (user accounts, site config) and ClickHouse (analytics events). Both run as Docker containers with persistent volumes managed by Coolify. For backup strategy:

See our Coolify backup strategy guide for comprehensive backup and disaster recovery planning.

Monitoring your Plausible instance

Use Coolify's built-in Sentinel monitoring to track resource consumption across the Plausible, ClickHouse, and PostgreSQL containers. Key metrics to watch:

For external uptime monitoring, deploy Uptime Kuma alongside Coolify to verify your Plausible dashboard remains accessible from outside your server.

Why MassiveGRID for Plausible Analytics

Self-hosted Plausible requires infrastructure that's reliable, fast, and available in the right geographic location. MassiveGRID delivers on all three requirements.

Frankfurt and London datacenters provide EU and UK data residency for organizations with regulatory requirements. Ceph 3x-replicated storage ensures your ClickHouse analytics data survives hardware failures without intervention. Independent resource scaling means you can add storage as your analytics history grows without paying for CPU or RAM you don't need. And 12 Tbps DDoS protection ensures your analytics endpoint remains available even during attack traffic — important since your tracking script makes requests to your server on every pageview.

Host Privacy-First Analytics on MassiveGRID

  • Cloud VPS — From $1.99/mo. Ideal for Plausible instances serving up to 100K monthly pageviews.
  • Dedicated VPS — From $4.99/mo. Dedicated CPU ensures fast ClickHouse queries for high-traffic analytics.
  • Managed Cloud Dedicated — HA failover and Ceph 3x-replicated storage for mission-critical analytics infrastructure.
Deploy on MassiveGRID →

What's Next

Your self-hosted Plausible instance is running on infrastructure you control, in a datacenter you chose, with no third-party access to your visitors' data. From here, explore these related guides: