4 Commits

Author SHA1 Message Date
0febe9c3a5 Change plausible container data to regular volume
Bind mount caused issues, apparently permissions issue, I don't want to
debug it anymore.
2026-03-05 02:41:58 -06:00
139e942f06 Add stop_grace_period of 60s to all containers 2026-03-05 02:41:57 -06:00
3725ee38ad Expose plausible HTTP port (locally) 2026-03-05 02:41:25 -06:00
1cd30ee414 Replace docker volumes with bind mounts 2026-03-05 02:41:25 -06:00
5 changed files with 68 additions and 75 deletions

1
.gitignore vendored
View File

@@ -3,7 +3,6 @@
!clickhouse/logs.xml !clickhouse/logs.xml
!clickhouse/ipv4-only.xml !clickhouse/ipv4-only.xml
!clickhouse/low-resources.xml !clickhouse/low-resources.xml
!clickhouse/default-profile-low-resources-overrides.xml
!README.md !README.md
!LICENSE !LICENSE
!.gitignore !.gitignore

View File

@@ -20,67 +20,66 @@
### Quick start ### Quick start
#### 1. Clone this repository 1. Clone this repository:
```console ```console
$ git clone -b v3.2.0 --single-branch https://github.com/plausible/community-edition plausible-ce $ git clone -b v3.1.0 --single-branch https://github.com/plausible/community-edition plausible-ce
Cloning into '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 $ cd plausible-ce
$ ls -1 $ ls -1
clickhouse/ clickhouse/
compose.yml compose.yml
LICENSE LICENSE
README.md README.md
``` ```
#### 2. Create and configure your [environment](https://docs.docker.com/compose/environment-variables/) file 1. Create and configure your [environment](https://docs.docker.com/compose/environment-variables/) file:
```console ```console
$ touch .env $ touch .env
$ echo "BASE_URL=https://plausible.example.com" >> .env $ echo "BASE_URL=https://plausible.example.com" >> .env
$ echo "SECRET_KEY_BASE=$(openssl rand -base64 48)" >> .env $ echo "SECRET_KEY_BASE=$(openssl rand -base64 48)" >> .env
$ cat .env $ cat .env
BASE_URL=https://plausible.example.com BASE_URL=https://plausible.example.com
SECRET_KEY_BASE=...unique secret key base... 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. 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. Also ensure `$SECRET_KEY_BASE` is set to at least a **64-byte** string.
> [!TIP] 1. Expose Plausible server to the web with a [compose override file:](https://github.com/plausible/community-edition/wiki/compose-override)
> To evaluate CE locally, set `BASE_URL=http://localhost:8000` (or any other port on your system).
#### 3. Expose Plausible server to the web with a [compose override file:](https://github.com/plausible/community-edition/wiki/compose-override) ```sh
$ echo "HTTP_PORT=80" >> .env
$ echo "HTTPS_PORT=443" >> .env
```sh $ cat > compose.override.yml << EOF
$ echo "HTTP_PORT=80" >> .env services:
$ echo "HTTPS_PORT=443" >> .env plausible:
$ cat > compose.override.yml << EOF
services:
plausible:
ports: ports:
- 80:80 - 80:80
- 443:443 - 443:443
EOF 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.](https://github.com/plausible/community-edition/wiki/reverse-proxy) 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.](https://github.com/plausible/community-edition/wiki/reverse-proxy)
> [!TIP] 1. Start the services with Docker Compose:
> To evaluate CE locally, you only need to set `HTTP_PORT` and expose it on the system port from the previous step, e.g. for `BASE_URL=http://localhost:8000` and server `HTTP_PORT=80`, `ports` override should be `- 8000:80`.
#### 4. Start the services with Docker Compose: ```console
$ docker compose up -d
```
```console 1. Visit your instance at `$BASE_URL` and create the first user.
$ docker compose up -d
```
#### 5. Visit your instance at `$BASE_URL` and create the first user.
> [!NOTE] > [!NOTE]
> Plausible CE is funded by our cloud subscribers. > Plausible CE is funded by our cloud subscribers.

View File

@@ -1,19 +0,0 @@
<!-- https://clickhouse.com/docs/en/operations/tips#using-less-than-16gb-of-ram -->
<clickhouse>
<profiles>
<default>
<!-- https://clickhouse.com/docs/en/operations/settings/settings#max_threads -->
<max_threads>1</max_threads>
<!-- https://clickhouse.com/docs/en/operations/settings/settings#max_block_size -->
<max_block_size>8192</max_block_size>
<!-- https://clickhouse.com/docs/en/operations/settings/settings#max_download_threads -->
<max_download_threads>1</max_download_threads>
<!--
https://clickhouse.com/docs/en/operations/settings/settings#input_format_parallel_parsing -->
<input_format_parallel_parsing>0</input_format_parallel_parsing>
<!--
https://clickhouse.com/docs/en/operations/settings/settings#output_format_parallel_formatting -->
<output_format_parallel_formatting>0</output_format_parallel_formatting>
</default>
</profiles>
</clickhouse>

View File

@@ -1,4 +1,23 @@
<!-- https://clickhouse.com/docs/en/operations/tips#using-less-than-16gb-of-ram -->
<clickhouse> <clickhouse>
<!-- https://clickhouse.com/docs/en/operations/server-configuration-parameters/settings#mark_cache_size --> <!--
https://clickhouse.com/docs/en/operations/server-configuration-parameters/settings#mark_cache_size -->
<mark_cache_size>524288000</mark_cache_size> <mark_cache_size>524288000</mark_cache_size>
<profile>
<default>
<!-- https://clickhouse.com/docs/en/operations/settings/settings#max_threads -->
<max_threads>1</max_threads>
<!-- https://clickhouse.com/docs/en/operations/settings/settings#max_block_size -->
<max_block_size>8192</max_block_size>
<!-- https://clickhouse.com/docs/en/operations/settings/settings#max_download_threads -->
<max_download_threads>1</max_download_threads>
<!--
https://clickhouse.com/docs/en/operations/settings/settings#input_format_parallel_parsing -->
<input_format_parallel_parsing>0</input_format_parallel_parsing>
<!--
https://clickhouse.com/docs/en/operations/settings/settings#output_format_parallel_formatting -->
<output_format_parallel_formatting>0</output_format_parallel_formatting>
</default>
</profile>
</clickhouse> </clickhouse>

View File

@@ -22,10 +22,9 @@ services:
# This makes ClickHouse bind to IPv4 only, since Docker doesn't enable IPv6 in bridge networks by default. # This makes ClickHouse bind to IPv4 only, since Docker doesn't enable IPv6 in bridge networks by default.
# Fixes "Listen [::]:9000 failed: Address family for hostname not supported" warnings. # Fixes "Listen [::]:9000 failed: Address family for hostname not supported" warnings.
- ./clickhouse/ipv4-only.xml:/etc/clickhouse-server/config.d/ipv4-only.xml:ro - ./clickhouse/ipv4-only.xml:/etc/clickhouse-server/config.d/ipv4-only.xml:ro
# The following configuration files make ClickHouse consume less resources, which is useful for small setups. # This makes ClickHouse consume less resources, which is useful for small setups.
# https://clickhouse.com/docs/en/operations/tips#using-less-than-16gb-of-ram # https://clickhouse.com/docs/en/operations/tips#using-less-than-16gb-of-ram
- ./clickhouse/low-resources.xml:/etc/clickhouse-server/config.d/low-resources.xml:ro - ./clickhouse/low-resources.xml:/etc/clickhouse-server/config.d/low-resources.xml:ro
- ./clickhouse/default-profile-low-resources-overrides.xml:/etc/clickhouse-server/users.d/default-profile-low-resources-overrides.xml:ro
ulimits: ulimits:
nofile: nofile:
soft: 262144 soft: 262144
@@ -33,15 +32,11 @@ services:
environment: environment:
- CLICKHOUSE_SKIP_USER_SETUP=1 - CLICKHOUSE_SKIP_USER_SETUP=1
healthcheck: healthcheck:
test: test: ["CMD-SHELL", "wget --no-verbose --tries=1 -O - http://127.0.0.1:8123/ping || exit 1"]
[
"CMD-SHELL",
"wget --no-verbose --tries=1 -O - http://127.0.0.1:8123/ping || exit 1",
]
start_period: 1m start_period: 1m
plausible: plausible:
image: ghcr.io/plausible/community-edition:v3.2.0 image: ghcr.io/plausible/community-edition:v3.1.0
stop_grace_period: 60s stop_grace_period: 60s
restart: always restart: always
command: sh -c "/entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run" command: sh -c "/entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"