How to Self-Host Plausible Analytics on Coolify in 2026 (Community Edition)
A practical, beginner-friendly walkthrough for running Plausible Analytics Community Edition on your own VPS with Coolify, HTTPS, a custom analytics domain, secure account setup and real website tracking.
Own your website analytics.
Keep the simple dashboard and lightweight tracking experience while running the infrastructure yourself.
Google · Direct · Reddit · Newsletter
/blog · /tools · /pricing · /about
Why self-host Plausible Analytics?
Plausible has become a popular Google Analytics alternative because the interface is intentionally simple. Instead of overwhelming you with dozens of reports, it focuses on the numbers most site owners actually check: visitors, pageviews, traffic sources, popular pages, devices, countries and conversions.
The hosted Plausible service is the easiest option because the company handles updates, uptime, backups and infrastructure. Self-hosting makes sense when you already operate a VPS, enjoy managing your own stack, or want your analytics data stored on infrastructure you control.
There is a trade-off: when you self-host, you become responsible for the boring but important parts—server security, updates, backups and recovery. If you prefer not to manage those tasks, the managed cloud service is usually worth paying for.
What Plausible Community Edition actually is
Plausible Community Edition, often shortened to Plausible CE, is the self-hostable edition of Plausible Analytics. A typical deployment uses three main services: the Plausible application, PostgreSQL for application data, and ClickHouse for high-volume analytics events.
tracking script
dashboard + ingestion
settings + event data
| Area | Plausible Cloud | Self-Hosted CE |
|---|---|---|
| Infrastructure | Managed for you | You operate the VPS and containers |
| Updates | Applied by Plausible | You choose when to upgrade |
| Backups | Managed service responsibility | Your responsibility |
| Analytics data | Stored on managed infrastructure | Stored on your own Docker volumes/server |
| Best for | People who want zero maintenance | People already comfortable running a VPS |
For current version details, releases and configuration options, always verify the official Plausible Community Edition repository before deploying.
Server requirements before you begin
A small VPS can run Plausible CE, but you should not treat ClickHouse like a tiny static website. Give the stack breathing room. For a modest installation, start with at least 2 GB of RAM, recent x86 CPU support, SSD storage and a clean Ubuntu server.
- A VPS with at least 2 GB RAM
- Ubuntu 22.04 or 24.04
- A domain or subdomain such as
analytics.example.com - DNS access so you can create an A record
- Coolify installed and accessible
- SSH access to the server
www.example.com and run Plausible on analytics.example.com.Prepare a VPS with Coolify
If your Coolify instance is already working, skip to Step 2. On a fresh Ubuntu VPS, the official Coolify installer can be started with:
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash
When installation finishes, open the Coolify panel and create the administrator account immediately. Then create a new project for analytics so the Plausible services stay organized separately from your other apps.
If Coolify is installed but the server shows as unreachable, check firewall rules, Docker health, server IP changes and the Coolify proxy before deploying Plausible.
Deploy Plausible CE with Docker Compose
Inside your Coolify project, create a new Docker Compose service. The exact official compose configuration can change between Plausible CE versions, so use the Community Edition repository as the source of truth. The simplified pattern below shows the main services and the variables you must understand before pressing Deploy.
services:
plausible_db:
image: postgres:16-alpine
restart: unless-stopped
volumes:
- plausible_db:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: change-this-password
plausible_events_db:
image: clickhouse/clickhouse-server:24.12-alpine
restart: unless-stopped
volumes:
- plausible_events:/var/lib/clickhouse
plausible:
image: ghcr.io/plausible/community-edition:v3.2.1
restart: unless-stopped
depends_on:
- plausible_db
- plausible_events_db
environment:
BASE_URL: ${BASE_URL}
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
TOTP_VAULT_KEY: ${TOTP_VAULT_KEY}
HTTP_PORT: 8000
DISABLE_REGISTRATION: ${DISABLE_REGISTRATION:-false}
volumes:
plausible_db:
plausible_events:
Create the environment variables
In Coolify, add the base URL and generate strong secrets. You can create secrets locally with OpenSSL:
openssl rand -base64 48
openssl rand -base64 32
Then configure:
BASE_URL=https://analytics.example.com
SECRET_KEY_BASE=paste-your-long-random-secret
TOTP_VAULT_KEY=paste-your-second-random-secret
DISABLE_REGISTRATION=false
Deploy the stack and wait until the Plausible, PostgreSQL and ClickHouse containers are healthy.
Connect your analytics domain and enable SSL
Create a DNS A record pointing your analytics subdomain to the VPS public IP address. A common setup looks like this:
Type: A
Name: analytics
Value: YOUR_SERVER_IP
TTL: Auto
In the Plausible service settings, attach the domain to the web-facing Plausible container. Plausible normally listens on port 8000 inside the container network, while Coolify’s reverse proxy handles public HTTPS traffic.
https://analytics.example.com:8000
:8000 hint matters: it tells the reverse proxy which internal application port receives traffic. Visitors still open the normal HTTPS URL; they are not expected to type port 8000 in the browser.Save the domain configuration, redeploy if needed and visit the URL. Coolify should provision a TLS certificate automatically when DNS is correct and the proxy can reach the service.
Create the first admin account, then close registration
The first-run Plausible wizard lets you create the initial account and add your first website. Do this as soon as the service becomes publicly reachable. You do not want an unclaimed analytics instance sitting on a public domain.
- Open your new analytics URL.
- Create the first administrator account.
- Use a strong, unique password.
- Finish account activation if your configuration requires it.
- Return to Coolify and disable public registration.
DISABLE_REGISTRATION=true
Redeploy the Plausible service and test the registration URL in a private browser window. New public sign-ups should no longer be allowed.
Add the Plausible tracking script to your website
Inside Plausible, add the domain you want to track. The installation wizard generates a script tag for your site. Use the snippet generated by your own instance because its URL and options can differ from someone else’s setup.
A self-hosted installation commonly produces a script pattern similar to:
<script defer
data-domain="www.example.com"
src="https://analytics.example.com/js/script.js">
</script>
Where to add the script in WordPress
For an OceanWP site, the safest approach is to use a trusted header/footer insertion plugin or your child theme so the script loads in the site <head>. Avoid editing the parent theme directly because a theme update can overwrite your change.
After saving the script, open your website in a normal browser, browse several pages and return to the Plausible dashboard. You should begin seeing visits, pageviews, referrers and popular pages.
The operational details that matter after installation
1. Back up both application and analytics data
A self-hosted analytics system is only as reliable as its backups. Protect the PostgreSQL data, ClickHouse data and any Plausible application volume used by your deployment. VPS snapshots are useful, but database-aware backups are better when you need a clean restore.
2. Upgrade deliberately
Do not use a floating latest tag for a production analytics stack. Pin a known Plausible CE version, read the release notes, back up your data, then update the image tag and redeploy.
# Example only
image: ghcr.io/plausible/community-edition:v3.2.1
3. Watch disk usage
Analytics data grows over time. ClickHouse is efficient, but high-traffic sites can still consume significant storage. Set server alerts before your disk becomes full.
4. Keep the VPS patched
Apply operating-system security updates, use SSH keys instead of password login when possible, restrict unnecessary ports and keep Coolify itself updated.
5. Understand bot filtering
No analytics platform perfectly filters every bot. Expect some difference between your self-hosted numbers, server logs, Search Console and other analytics tools. What matters most is using one consistent source for trend analysis.
Common problems and quick fixes
| Problem | Likely cause | What to check |
|---|---|---|
| 502 / Bad Gateway | Proxy cannot reach Plausible | Container status, internal port 8000, domain routing |
| SSL not issued | DNS is wrong or still propagating | A record, server IP, ports 80/443, Coolify proxy |
| Plausible container keeps restarting | Bad or empty environment variable | BASE_URL, secrets, compose syntax, logs |
| No pageviews appear | Tracking script not loaded | View page source, browser dev tools, script URL, ad blockers |
| Anyone can register | Registration still enabled | Set DISABLE_REGISTRATION=true and redeploy |
Frequently asked questions
Is self-hosting Plausible free?
The Community Edition software can be self-hosted, but the server itself is not necessarily free. Your real cost includes the VPS, storage, backups and your time maintaining it.
Can I use Plausible on WordPress?
Yes. You can install the tracking script on a WordPress site, including OceanWP. Plausible also maintains WordPress integration options, but verify compatibility with your self-hosted setup before relying on a plugin.
Do I need to expose port 8000 publicly?
Normally, no. Coolify’s reverse proxy receives public HTTPS traffic and forwards requests to the Plausible container’s internal HTTP port.
How much RAM should I use?
Start with at least 2 GB for a small deployment and monitor real usage. If the same VPS runs several other applications, 4 GB or more gives you considerably more headroom.
Is Plausible a Google Analytics alternative?
Yes, especially for site owners who want a simpler traffic dashboard. The products are not identical: Google Analytics offers a much broader marketing and advertising ecosystem, while Plausible focuses on lightweight, privacy-conscious web analytics.
How do I update Plausible CE?
Back up the data, review the version notes, update the pinned Plausible image tag in your compose configuration and redeploy. Always confirm version-specific migration guidance in the official repository.
Final checklist
- Plausible, PostgreSQL and ClickHouse containers are healthy.
- Your analytics subdomain resolves to the correct server.
- HTTPS works without browser certificate warnings.
- The first administrator account is created.
- Public registration is disabled.
- Your website tracking script loads correctly.
- Real pageviews appear in the dashboard.
- You have a tested backup plan before the first upgrade.