Best VPS for Plausible Analytics 2026: Self-Host Privacy-First Analytics
Find the best VPS for self-hosting Plausible Analytics. Complete setup guide with Docker, ClickHouse, PostgreSQL, and reverse proxy configuration.
Best VPS for Plausible Analytics in 2026
Plausible is a lightweight, open-source, privacy-friendly alternative to Google Analytics. No cookies, no personal data collection, and a dashboard that fits on one screen. Self-hosting it costs a fraction of Plausible Cloud — and you own every byte of data.
Why Self-Host Plausible?
Why Self-Host Plausible?
| Factor | Google Analytics | Plausible (Self-Hosted) |
|---|---|---|
| Cost | Free (you pay with data) | ~$5-10/mo (VPS only) |
| Privacy | Tracks everything | No cookies, no PII |
| GDPR | Consent banner required | No consent needed |
| Data Ownership | Google’s servers | Your server |
| Script Size | ~45KB | ~1KB |
| Dashboard | Complex, overwhelming | Simple, one page |
| Setup | Minutes | 30 minutes (Docker) |
Plausible gives you pageviews, referrers, countries, devices, and goals — without the surveillance capitalism.
VPS Requirements
Plausible runs two databases — PostgreSQL for configuration and ClickHouse for analytics data. This makes it hungrier than simpler tools like Umami.
Minimum:
- 2 vCPU
- 2GB RAM
- 20GB storage
Recommended (up to 500K pageviews/month):
- 2 vCPU
- 4GB RAM
- 40GB storage
High Traffic (1M+ pageviews/month):
- 4 vCPU
- 8GB RAM
- 80GB+ storage
ClickHouse is the main resource consumer. It’s fast, but it likes RAM.
Best VPS for Plausible
1. Hetzner CX22 (Best Value)
€4.35/mo | 2 vCPU, 4GB RAM, 40GB NVMe
The sweet spot. Enough RAM for both PostgreSQL and ClickHouse, with plenty of storage for analytics data. European data centers keep your data GDPR-friendly by default.
2. Hostinger KVM2 (Best Budget)
$6.99/mo | 2 vCPU, 8GB RAM, 100GB NVMe
More RAM and storage than you’ll need for most sites. Great headroom for growth without upgrading.
3. Vultr (Best Global Coverage)
$12/mo | 2 vCPU, 2GB RAM, 50GB
32 data center locations worldwide. Host analytics close to your audience for faster script loading. Tight on RAM at 2GB — monitor ClickHouse usage.
4. DigitalOcean (Best Ecosystem)
$12/mo | 2 vCPU, 2GB RAM, 50GB
Solid docs, managed databases available if you want to offload PostgreSQL. One-click backups built in.
5. Contabo (Best for High Traffic)
€6.99/mo | 4 vCPU, 8GB RAM, 100GB SSD
If you’re tracking millions of pageviews, Contabo’s generous specs make sense. Slightly slower disks than NVMe competitors.
Complete Setup Guide
Step 1: Create Your VPS
Using Hetzner as example:
- Sign up at Hetzner Cloud
- Create server → Ubuntu 24.04 → CX22
- Add SSH key
- Note the IP address
Step 2: DNS Setup
Point your domain:
A analytics.yourdomain.com → your-server-ip
Step 3: Initial Server Setup
ssh root@your-server-ip
# Update system
apt update && apt upgrade -y
# Install Docker
curl -fsSL https://get.docker.com | sh
# Create user
adduser plausible
usermod -aG docker plausible
# Setup firewall
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable
Step 4: Clone Plausible Hosting Repo
Plausible provides an official self-hosting repository:
su - plausible
git clone https://github.com/plausible/community-edition plausible-ce
cd plausible-ce
Step 5: Configure Environment
Create a plausible-conf.env file:
# Generate a secret key
SECRET_KEY_BASE=$(openssl rand -base64 48)
cat > plausible-conf.env << EOF
BASE_URL=https://analytics.yourdomain.com
SECRET_KEY_BASE=$SECRET_KEY_BASE
TOTP_VAULT_KEY=$(openssl rand -base64 32)
EOF
Step 6: Add Reverse Proxy
Create a docker-compose.override.yml to add Caddy:
services:
caddy:
image: caddy:alpine
restart: unless-stopped
ports:
- 80:80
- 443:443
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
plausible:
ports: !override
- 127.0.0.1:8000:8000
volumes:
caddy_data:
caddy_config:
Create Caddyfile:
analytics.yourdomain.com {
reverse_proxy plausible:8000
encode gzip
header {
Strict-Transport-Security "max-age=31536000; includeSubDomains"
X-Content-Type-Options "nosniff"
X-Frame-Options "DENY"
}
}
Step 7: Launch
docker compose -f docker-compose.yml -f docker-compose.override.yml up -d
Wait 60 seconds for ClickHouse and PostgreSQL to initialize.
Step 8: Create Your Account
- Open
https://analytics.yourdomain.com - Register with your email
- Add your first website
- Copy the tracking snippet
Step 9: Add Tracking Script
Add to your site’s <head>:
<script defer data-domain="yourdomain.com"
src="https://analytics.yourdomain.com/js/script.js"></script>
Done. No cookie consent popup needed.
Tracking Script Extensions
Plausible offers script variants for extra features:
<!-- Track outbound link clicks -->
<script defer data-domain="yourdomain.com"
src="https://analytics.yourdomain.com/js/script.outbound-links.js"></script>
<!-- Track file downloads -->
<script defer data-domain="yourdomain.com"
src="https://analytics.yourdomain.com/js/script.file-downloads.js"></script>
<!-- Track 404 pages -->
<script defer data-domain="yourdomain.com"
src="https://analytics.yourdomain.com/js/script.tagged-events.js"></script>
<!-- Combine multiple extensions -->
<script defer data-domain="yourdomain.com"
src="https://analytics.yourdomain.com/js/script.outbound-links.file-downloads.js"></script>
Custom Goal Tracking
Set up conversion goals in the Plausible dashboard:
// Track a custom event
plausible('Signup');
// Track with custom properties
plausible('Purchase', { props: { plan: 'Pro', price: '29' } });
// Track form submissions
document.getElementById('contact-form').addEventListener('submit', function() {
plausible('Contact Form');
});
Then create a matching goal in Settings → Goals.
Google Analytics Import
Migrating from Google Analytics? Plausible can import your historical data:
- Go to Settings → Imports & Exports
- Click “Import from Google Analytics”
- Authenticate with Google
- Select the property to import
Your historical data appears alongside new Plausible data — no gaps in your charts.
Performance Tuning
ClickHouse Optimization
For high-traffic sites, tune ClickHouse memory limits in clickhouse/clickhouse-config.xml:
<clickhouse>
<profiles>
<default>
<max_memory_usage>1000000000</max_memory_usage>
<max_bytes_before_external_group_by>500000000</max_bytes_before_external_group_by>
</default>
</profiles>
</clickhouse>
PostgreSQL Tuning
Add to your Docker Compose override:
plausible_db:
command:
- "postgres"
- "-c"
- "shared_buffers=256MB"
- "-c"
- "effective_cache_size=512MB"
Backup Strategy
Back up both databases. Losing ClickHouse data means losing all your analytics.
Automated Backup Script
Create backup.sh:
#!/bin/bash
BACKUP_DIR="/home/plausible/backups"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# Backup PostgreSQL
docker exec plausible-ce-plausible_db-1 pg_dump -U postgres plausible \
| gzip > $BACKUP_DIR/postgres_$DATE.sql.gz
# Backup ClickHouse
docker exec plausible-ce-plausible_events_db-1 \
clickhouse-client --query "SELECT * FROM plausible_events_db.events_v2 FORMAT Native" \
| gzip > $BACKUP_DIR/clickhouse_events_$DATE.gz
# Keep last 14 backups
ls -t $BACKUP_DIR/postgres_*.gz | tail -n +15 | xargs -r rm
ls -t $BACKUP_DIR/clickhouse_*.gz | tail -n +15 | xargs -r rm
Schedule with cron:
crontab -e
# Add:
0 3 * * * /home/plausible/backup.sh
Plausible vs Alternatives
| Feature | Plausible | Umami | Matomo |
|---|---|---|---|
| Script Size | ~1KB | ~2KB | ~22KB |
| RAM Usage | ~500MB | ~200MB | ~1GB+ |
| Database | ClickHouse + PostgreSQL | PostgreSQL | MySQL |
| Cookie-free | ✅ | ✅ | Optional |
| GA Import | ✅ | ❌ | ✅ |
| Revenue Tracking | ✅ | ❌ | ✅ |
| Custom Props | ✅ | ✅ | ✅ |
| Self-host Difficulty | Medium | Easy | Medium |
| Free Self-host | ✅ (Community Ed.) | ✅ | ✅ |
Plausible offers more features than Umami — GA import, revenue tracking, funnel analysis — at the cost of higher resource usage.
Multiple Sites
Track multiple domains from a single Plausible installation:
- Settings → Sites → Add Site
- Each site gets its own tracking snippet
- All data stays separated in the dashboard
A single 4GB VPS can handle 5-10 low-traffic sites comfortably.
API Access
Plausible has a comprehensive stats API:
# Get visitors for today
curl "https://analytics.yourdomain.com/api/v1/stats/realtime/visitors?site_id=yourdomain.com" \
-H "Authorization: Bearer your-api-key"
# Get aggregate stats
curl "https://analytics.yourdomain.com/api/v1/stats/aggregate?site_id=yourdomain.com&period=30d&metrics=visitors,pageviews,bounce_rate" \
-H "Authorization: Bearer your-api-key"
# Get top pages
curl "https://analytics.yourdomain.com/api/v1/stats/breakdown?site_id=yourdomain.com&period=30d&property=event:page&limit=10" \
-H "Authorization: Bearer your-api-key"
Generate API keys in Settings → API Keys.
Updating Plausible
cd /home/plausible/plausible-ce
# Pull latest
git pull
docker compose pull
# Restart
docker compose up -d
# Clean old images
docker image prune -f
Plausible runs database migrations automatically on startup.
Security Tips
1. Disable Public Registration
After creating your account, add to plausible-conf.env:
DISABLE_REGISTRATION=true
2. Use HTTPS Only
The Caddy setup handles this with automatic Let’s Encrypt certificates.
3. Restrict Admin Access
Use Tailscale or a WireGuard VPN for admin panel access.
4. Keep Updated
Pull new images at least monthly. Plausible gets regular security and feature updates.
Resource Usage
Typical Plausible footprint:
| Component | RAM | CPU |
|---|---|---|
| Plausible (Elixir) | ~150MB | Low |
| PostgreSQL | ~100MB | Low |
| ClickHouse | ~250MB | Spiky on queries |
| Total | ~500MB | ~5% idle |
Heavier than Umami but lighter than Matomo. You can still share the VPS with lightweight services like Vaultwarden.
FAQ
Does Plausible use cookies?
No. Plausible is 100% cookie-free. No GDPR consent banner needed.
How does it count unique visitors without cookies?
A daily-rotating hash of IP address + User-Agent. No cross-day or cross-site tracking is possible.
Can I use Plausible with a CDN?
Yes. The tracking script works fine behind Cloudflare or any CDN. You can also proxy the script through your own domain to avoid ad blockers.
Is the Community Edition the same as Plausible Cloud?
Almost. The Community Edition has all core features. Some enterprise features like Funnels and custom properties are available in both.
How much disk space does ClickHouse use?
ClickHouse compresses data aggressively. Expect roughly 1GB per 10 million pageviews stored.
Recommended Setup
| Use Case | VPS | Monthly Cost |
|---|---|---|
| Personal / Small Site | Hetzner CX22 | €4.35 |
| Multiple Sites | Hostinger KVM2 | $6.99 |
| High Traffic | Contabo VPS M | €6.99 |
Start with Hetzner CX22 — €4.35/month for privacy-first analytics. Cheaper than Plausible Cloud ($9/mo for 10K pageviews) and you own the data completely.
Ready to get started?
Get the best VPS hosting deal today. Hostinger offers 4GB RAM VPS starting at just $4.99/mo.
Get Hostinger VPS — $4.99/mo// up to 75% off + free domain included
// related topics
// related guides
Best VPS for Umami 2026: Self-Host Your Web Analytics
Find the best VPS for hosting Umami, the privacy-focused Google Analytics alternative. Complete setup guide with Docker, PostgreSQL, and reverse proxy.
reviewAWS EC2 Alternatives 2026: Cheaper, Simpler VPS Hosting
Best AWS EC2 alternatives for cheaper VPS hosting. Compare Hetzner, Vultr, DigitalOcean, and more — save 70%+ with simpler billing.
reviewCheapest VPS Hosting 2026 — Best Budget Servers From $2.50
We compared 10 budget VPS providers on price, specs, and support. Here are the cheapest worth using — from $2.50/mo with real performance data.
reviewBest GPU VPS in 2026 — Cheapest NVIDIA Servers Compared
Rent GPU servers from $0.50/hr. We compare 8 GPU VPS providers for AI training, inference, and rendering — NVIDIA A100, H100, and RTX options.
Andrius Putna
I am Andrius Putna. Geek. Since early 2000 in love tinkering with web technologies. Now AI. Bridging business and technology to drive meaningful impact. Combining expertise in customer experience, technology, and business strategy to deliver valuable insights. Father, open-source contributor, investor, 2xIronman, MBA graduate.
// last updated: March 8, 2026. Disclosure: This article may contain affiliate links.