A getting started guide to self-hosting Plausible Community Edition
$ git clone -b v3.2.1 --single-branch https://github.com/plausible/community-edition plausible-ce
Cloning into 'plausible-ce'...
$ cd plausible-ce
$ ls -1
clickhouse/
compose.yml
LICENSE
README.md
$ 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=...unique secret key base...
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.
Also ensure $SECRET_KEY_BASE is set to at least a 64-byte string.
[!TIP] To evaluate CE locally, set
BASE_URL=http://localhost:8000(or any other port on your system).
$ 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.
[!TIP] To evaluate CE locally, you only need to set
HTTP_PORTand expose it on the system port from the previous step, e.g. forBASE_URL=http://localhost:8000and serverHTTP_PORT=80,portsoverride should be- 8000:80.
$ docker compose up -d
$BASE_URL and create the first user.[!NOTE] Plausible CE is funded by our cloud subscribers.
If you know someone who might find Plausible useful, we'd appreciate if you'd let them know.
For more information on installation, upgrades, configuration, and integrations please see our wiki.
A getting started guide to self-hosting Plausible Community Edition
$ git clone -b v3.2.1 --single-branch https://github.com/plausible/community-edition plausible-ce
Cloning into 'plausible-ce'...
$ cd plausible-ce
$ ls -1
clickhouse/
compose.yml
LICENSE
README.md
$ 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=...unique secret key base...
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.
Also ensure $SECRET_KEY_BASE is set to at least a 64-byte string.
[!TIP] To evaluate CE locally, set
BASE_URL=http://localhost:8000(or any other port on your system).
$ 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.
[!TIP] To evaluate CE locally, you only need to set
HTTP_PORTand expose it on the system port from the previous step, e.g. forBASE_URL=http://localhost:8000and serverHTTP_PORT=80,portsoverride should be- 8000:80.
$ docker compose up -d
$BASE_URL and create the first user.[!NOTE] Plausible CE is funded by our cloud subscribers.
If you know someone who might find Plausible useful, we'd appreciate if you'd let them know.
For more information on installation, upgrades, configuration, and integrations please see our wiki.