Example docker-compose setups for hosting Plausible Analytics
Go to file
ruslandoga 249b22d338 v2.1.2
2024-09-25 19:59:25 +07:00
clickhouse v2.1.2 2024-09-25 19:59:25 +07:00
.gitignore v2.1.2 2024-09-25 19:59:25 +07:00
compose.yml v2.1.2 2024-09-25 19:59:25 +07:00
README.md v2.1.2 2024-09-25 19:59:25 +07:00

A getting started guide to self-hosting Plausible Community Edition


Prerequisites

  • Docker and Docker Compose must be installed on your machine.
  • CPU must support SSE 4.2 or NEON instruction set or higher (required by ClickHouse).
  • At least 2 GB of RAM is recommended for running ClickHouse and Plausible without fear of OOMs.

Quick start

  1. Clone this repository:

    $ git clone -b v2.1.2 --single-branch https://github.com/plausible/community-edition plausible-ce
    Cloning into 'plausible-ce'...
    remote: Enumerating objects: 13, done.
    remote: Counting objects: 100% (10/10), done.
    remote: Compressing objects: 100% (9/9), done.
    remote: Total 13 (delta 0), reused 7 (delta 0), pack-reused 3 (from 1)
    Receiving objects: 100% (13/13), done.
    
    $ cd plausible-ce
    
    $ ls -1
    README.md
    clickhouse/
    compose.yml
    
  2. Create and configure your environment file:

    $ touch .env
    $ echo "BASE_URL=https://plausible.example.com" >> .env
    $ echo "SECRET_KEY_BASE=$(openssl rand -base64 48)" >> .env
    
    $ cat .env
    BASE_URL=https://plausible.example.com
    SECRET_KEY_BASE=As0fZsJlUpuFYSthRjT5Yflg/NlxkFKPRro72xMLXF8yInZ60s6xGGXYVqml+XN1
    

    Make sure $BASE_URL is set to the actual domain where you plan to host the service. The domain must have a DNS entry pointing to your server for proper resolution and automatic Let's Encrypt TLS certificate issuance. More on that in the next step.

  3. Expose Plausible server to the web with a compose override file:

    $ echo "HTTP_PORT=80" >> .env
    $ echo "HTTPS_PORT=443" >> .env
    
    $ cat > compose.override.yml << EOF
    services:
      plausible:
        ports:
          - 80:80
          - 443:443
    EOF 
    

    Setting HTTP_PORT=80 and HTTPS_PORT=443 enables automatic Let's Encrypt TLS certificate issuance. You might want to choose different values if, for example, you plan to run Plausible behind a reverse proxy.

  4. Start the services with Docker Compose:

    $ docker compose up -d
    
  5. Visit your instance at $BASE_URL and create the first user.

Wiki

For more information on installation, upgrades, configuration, and integrations please see our wiki.

Contact