31 Commits

Author SHA1 Message Date
d25367a088 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:56:37 -06:00
39d4431d1b Add stop_grace_period of 60s to all containers 2026-03-05 02:56:36 -06:00
3f19f1598b Expose plausible HTTP port (locally) 2026-03-05 02:56:17 -06:00
56b33c62a9 Replace docker volumes with bind mounts 2026-03-05 02:56:17 -06:00
Artur Pata
15529b26b8 Fix readme compose override file step, ellipsis instead of example secret key base 2026-01-26 17:50:20 +02:00
Artur Pata
f602706e0f Fix low resources settings for Clickhouse 2026-01-26 17:30:40 +02:00
Artur Pata
0bafa03fef Add tips for evaluating locally 2026-01-26 17:30:40 +02:00
Artur Pata
2963f78649 Reformat readme, update version 2026-01-26 17:30:40 +02:00
Artur Pata
d2f69ab4fc Set plausible image version to v3.2.0 2026-01-26 17:30:40 +02:00
Artur Pata
5cb5234fd7 Release v3.1.0 2025-11-13 06:13:04 +02:00
ruslandoga
33a33aae88 Update README.md 2025-08-20 13:30:10 +09:00
ruslandoga
d29d2f0dfa be clear about secret key base being 64 bytes 2025-08-20 13:27:39 +09:00
ruslandoga
7648365635 there is LICENSE now 2025-08-19 10:22:51 +09:00
Adam Rutkowski
20385b05aa v3.0.1 2025-04-11 12:00:34 +02:00
Adam Rutkowski
0b906cc6a7 Update README 2025-04-11 10:17:29 +02:00
Adam Rutkowski
9f1215bd2c Release 3.0.0 2025-04-11 10:16:08 +02:00
ruslandoga
7ef73175a7 v2.1.5 2025-02-07 19:54:49 +03:00
ruslandoga
c29a0f0d13 fix clickhouse profile typo 2024-12-09 21:04:41 +07:00
ruslandoga
c9cfb7546d low resources 2024-12-05 19:15:33 +07:00
ruslandoga
3c690a69f6 fewer-logs 2024-12-05 18:56:43 +07:00
ruslandoga
4aa1806f75 Don't ignore LICENSE 2024-12-04 19:24:01 +07:00
ruslandoga
dcf3ad94ae Create LICENSE 2024-12-04 19:15:38 +07:00
ruslandoga
5eb6ea318c Add link to Plausible 2024-10-17 15:19:02 +07:00
ruslandoga
938f5510ed v2.1.4 2024-10-09 16:52:19 +07:00
ruslandoga
a6220d0725 mv tmp dir to volume 2024-10-08 15:54:58 +07:00
ruslandoga
8ad32e11a8 add Plausible cloud message 2024-10-04 20:37:55 +07:00
ruslandoga
b7711e284d wait for ch healthcheck 2024-09-29 16:38:49 +07:00
ruslandoga
e10a380651 remove start_interval 2024-09-27 15:17:57 +07:00
ruslandoga
78169fd57f use 'raw' urls for logo 2024-09-27 15:02:29 +07:00
ruslandoga
d8b388dd28 Update README.md 2024-09-26 18:26:13 +07:00
ruslandoga
f62fd5ccbc v2.1.3 2024-09-26 18:25:15 +07:00
6 changed files with 100 additions and 62 deletions

2
.gitignore vendored
View File

@@ -2,6 +2,8 @@
!compose.yml !compose.yml
!clickhouse/logs.xml !clickhouse/logs.xml
!clickhouse/ipv4-only.xml !clickhouse/ipv4-only.xml
!clickhouse/low-resources.xml
!clickhouse/default-profile-low-resources-overrides.xml
!README.md !README.md
!LICENSE !LICENSE
!.gitignore !.gitignore

101
README.md
View File

@@ -1,8 +1,8 @@
<p align="center"> <p align="center">
<picture> <picture>
<source media="(prefers-color-scheme: dark)" srcset="https://github.com/plausible/community-edition/blob/v2.1.1/images/logo_dark.svg" width="300"> <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/plausible/community-edition/refs/heads/v2.1.1/images/logo_dark.svg" width="300">
<source media="(prefers-color-scheme: light)" srcset="https://github.com/plausible/community-edition/blob/v2.1.1/images/logo_light.svg" width="300"> <source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/plausible/community-edition/refs/heads/v2.1.1/images/logo_light.svg" width="300">
<img src="https://github.com/plausible/community-edition/blob/v2.1.1/images/logo_light.svg" width="300"> <img src="https://raw.githubusercontent.com/plausible/community-edition/refs/heads/v2.1.1/images/logo_light.svg" width="300">
</picture> </picture>
</p> </p>
@@ -20,63 +20,72 @@
### Quick start ### Quick start
1. Clone this repository: #### 1. Clone this repository
```console ```console
$ git clone -b v2.1.2 --single-branch https://github.com/plausible/community-edition plausible-ce $ git clone -b v3.2.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
README.md clickhouse/
clickhouse/ compose.yml
compose.yml LICENSE
``` README.md
```
1. Create and configure your [environment](https://docs.docker.com/compose/environment-variables/) file: #### 2. 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
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. $ cat .env
BASE_URL=https://plausible.example.com
SECRET_KEY_BASE=...unique secret key base...
```
1. Expose Plausible server to the web with a [compose override file:](https://github.com/plausible/community-edition/wiki/compose-override) 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.
```sh Also ensure `$SECRET_KEY_BASE` is set to at least a **64-byte** string.
$ echo "HTTP_PORT=80" >> .env
$ echo "HTTPS_PORT=443" >> .env
$ cat > compose.override.yml << EOF > [!TIP]
services: > To evaluate CE locally, set `BASE_URL=http://localhost:8000` (or any other port on your system).
plausible:
#### 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
$ 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)
1. Start the services with Docker Compose: > [!TIP]
> 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`.
```console #### 4. Start the services with Docker Compose:
$ docker compose up -d
```
1. Visit your instance at `$BASE_URL` and create the first user. ```console
$ docker compose up -d
```
#### 5. Visit your instance at `$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](https://plausible.io/?utm_medium=Social&utm_source=GitHub&utm_campaign=readme), we'd appreciate if you'd let them know.
### Wiki ### Wiki

View File

@@ -0,0 +1,19 @@
<!-- 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

@@ -17,17 +17,9 @@
</engine> </engine>
</query_log> </query_log>
<metric_log>
<partition_by>event_date</partition_by>
<ttl>event_date + INTERVAL 30 DAY DELETE</ttl>
</metric_log>
<asynchronous_metric_log>
<partition_by>event_date</partition_by>
<ttl>event_date + INTERVAL 30 DAY DELETE</ttl>
</asynchronous_metric_log>
<!-- Stops unnecessary logging --> <!-- Stops unnecessary logging -->
<metric_log remove="remove" />
<asynchronous_metric_log remove="remove" />
<query_thread_log remove="remove" /> <query_thread_log remove="remove" />
<text_log remove="remove" /> <text_log remove="remove" />
<trace_log remove="remove" /> <trace_log remove="remove" />

View File

@@ -0,0 +1,4 @@
<clickhouse>
<!-- https://clickhouse.com/docs/en/operations/server-configuration-parameters/settings#mark_cache_size -->
<mark_cache_size>524288000</mark_cache_size>
</clickhouse>

View File

@@ -9,11 +9,10 @@ services:
- POSTGRES_PASSWORD=postgres - POSTGRES_PASSWORD=postgres
healthcheck: healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"] test: ["CMD-SHELL", "pg_isready -U postgres"]
start_interval: 2s
start_period: 1m start_period: 1m
plausible_events_db: plausible_events_db:
image: clickhouse/clickhouse-server:24.3.3.102-alpine image: clickhouse/clickhouse-server:24.12-alpine
stop_grace_period: 60s stop_grace_period: 60s
restart: always restart: always
volumes: volumes:
@@ -23,17 +22,26 @@ 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.
# 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/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
hard: 262144 hard: 262144
environment:
- CLICKHOUSE_SKIP_USER_SETUP=1
healthcheck: healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://127.0.0.1:8123/ping || exit 1"] test:
start_interval: 2s [
"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:v2.1.2 image: ghcr.io/plausible/community-edition:v3.2.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"
@@ -43,12 +51,13 @@ services:
plausible_events_db: plausible_events_db:
condition: service_healthy condition: service_healthy
volumes: volumes:
- ./data/plausible:/var/lib/plausible - plausible-data:/var/lib/plausible
ulimits: ulimits:
nofile: nofile:
soft: 65535 soft: 65535
hard: 65535 hard: 65535
environment: environment:
- TMPDIR=/var/lib/plausible/tmp
# required: https://github.com/plausible/community-edition/wiki/configuration#required # required: https://github.com/plausible/community-edition/wiki/configuration#required
- BASE_URL=${BASE_URL} - BASE_URL=${BASE_URL}
- SECRET_KEY_BASE=${SECRET_KEY_BASE} - SECRET_KEY_BASE=${SECRET_KEY_BASE}
@@ -86,3 +95,6 @@ services:
- MAILGUN_BASE_URI - MAILGUN_BASE_URI
- MANDRILL_API_KEY - MANDRILL_API_KEY
- SENDGRID_API_KEY - SENDGRID_API_KEY
volumes:
plausible-data: