Skip to main content

Overview

Plausible Community Edition is lightweight, cookie-free web analytics (AGPL-3.0). One Plausible workload serves the dashboard, the tracker script and the event API on one port. Events and sessions are stored in a bundled single-node ClickHouse, and accounts, sites and goals in a bundled PostgreSQL. The install is private by default: you register the owner account first, then publish it.
This template deploys into an existing GVC that you already have — it does not create one. The GVC must have exactly one location, and clickhouse.locations[0].name must be that location.

What Gets Created

Prerequisites

Three secrets must exist before you install; the chart never creates them. They hold credentials, so they are prerequisite secrets rather than values. Secrets are org-level, so no GVC flag is involved.
1

Signing key

An opaque secret of at least 32 bytes. It signs sessions and derives the two-factor encryption key, so keep it for the life of the install:
Set app.secretKeyBaseSecretName to this name.
2

PostgreSQL credentials

A dictionary secret with keys username, password and database. Use URL-safe values, because Plausible puts them in its connection URL:
Set postgres.config.credentialsSecretName to this name.
3

ClickHouse credentials

A dictionary secret with password (URL-safe, no quotes) and database (a bare identifier):
Set clickhouse.database.credentialsSecretName to this name.
If a prerequisite secret is missing, the install reports success and then waits silently: cpln logs shows nothing, and the missing secret is named only in status.versions[].message of cpln workload get-deployments RELEASE_NAME-plausible --gvc GVC_NAME -o yaml. A secret created after the install is not picked up on its own: run cpln workload force-redeployment RELEASE_NAME-plausible --gvc GVC_NAME for every workload whose message names it (RELEASE_NAME-clickhouse-server for the ClickHouse secret).
Optional: an SMTP relay (see Email) and a bucket with a cloud account for PostgreSQL backups (see Backing Up).

Installation

A default install needs the three secret names and the location of your GVC:
Or install using your preferred method:

UI

Browse, install, and manage templates visually

CLI

Manage templates from your terminal

Terraform

Declare templates in your Terraform configurations

Pulumi

Declare templates in your Pulumi programs

Configuration

Application

  • registration: the first account can always register. After that, invite_only admits only users invited from the dashboard.
  • baseUrl: Plausible builds links from it and accepts browser connections only from its host. Empty means the canonical endpoint when public access is on, otherwise http://localhost:8000 (the port-forward address). Set it, with https://, when you serve Plausible on your own domain.

Email

Without SMTP, Plausible sends no invitations, password resets or email reports.
Create the relay credentials secret before installing with it set:

Access

Bundled Stores

Every knob of the postgres template is available under postgres. ClickHouse is limited to one location with one replica, and stores its data on its volume, so no bucket is needed.

Connecting

Once a site exists in the dashboard, send a test pageview to the event API (the domain must match the site you added):
A 202 response means the event was accepted; it then appears in the site’s dashboard. Plausible drops events from bot-like user agents and events whose domain does not exactly match a site you added, and still answers 202, so use a browser user agent and the domain as entered.

First Run

Until the first account exists, anyone who can open Plausible can register as its owner. Register over a private tunnel first:
  1. Install with publicAccess.enabled: false (the default).
  2. Run cpln port-forward RELEASE_NAME-plausible 8000:8000 --gvc GVC_NAME and open http://localhost:8000. Plausible redirects to /register; create the owner account and add your first site.
  3. Run cpln helm upgrade with publicAccess.enabled: true. Firewall changes take a few minutes to propagate.
  4. Log in again at the canonical URL. Your account and sites are kept. Then add the tracker snippet to your site.
Use http://localhost:8000 in step 2, not another host name: Plausible accepts browser connections only from the host of its base URL.

Operations

Backing Up

Backups are off by default. They cover PostgreSQL (accounts, sites, goals), not the analytics events in ClickHouse. Set postgres.backup.enabled: true and configure one provider. To restore, follow the restore steps on the postgres page; analytics events in ClickHouse are not covered.
Create the bucket, a Control Plane cloud account, and an IAM policy scoped to the bucket, then set postgres.backup.aws.bucket, region, cloudAccountName and policyName:

Scaling and Availability

Plausible runs as one replica, and ClickHouse as one node in one location. Upgrades start the new Plausible replica before the old one stops. A restart of the replica is a short outage, and tracker hits during it are lost.

Troubleshooting

A prerequisite secret is missing. Read status.versions[].message with cpln workload get-deployments RELEASE_NAME-plausible --gvc GVC_NAME -o yaml, create the named secret, then run cpln workload force-redeployment WORKLOAD_NAME --gvc GVC_NAME for every workload whose message names it.
clickhouse.locations[0].name is not your GVC’s location, or the GVC has more than one location. Set it to the GVC’s only location. Check the location with cpln gvc get GVC_NAME -o yaml.
Plausible accepts browser connections only from the host of its base URL. Use http://localhost:8000 through the port-forward, the canonical endpoint when public access is on, or set app.baseUrl to your custom domain.
SMTP is off by default. Enable smtp and set its host, sender address and credentials secret.

Important Notes

  • Register the owner before publishing. Until the first account exists, anyone who can reach the URL can register as owner. See First Run.
  • Tracking needs publicAccess.enabled: true. Visitors’ browsers must reach the tracker script and /api/event.
  • The GVC needs exactly one location, and clickhouse.locations[0].name must be it. A GVC with more than one location makes Plausible refuse to start.
  • Visitor locations are country-level, from the DB-IP database bundled in the image.
  • Analytics events have no scheduled backup or snapshot. They live only on the ClickHouse volume. PostgreSQL is backed up only when postgres.backup.enabled is on.
  • Uninstalling deletes both volumes. Each keeps one final snapshot for 7 days; after that the data is gone.
  • Do not change the signing key. A new one logs everyone out and breaks two-factor logins for every enrolled user.
  • Community Edition has no funnels, ecommerce revenue goals, SSO or Sites API; those are Plausible Cloud features. The Stats API and shared dashboard links are available.

External References