31 Commits

Author SHA1 Message Date
bbaovanc 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
bbaovanc 39d4431d1b Add stop_grace_period of 60s to all containers 2026-03-05 02:56:36 -06:00
bbaovanc 3f19f1598b Expose plausible HTTP port (locally) 2026-03-05 02:56:17 -06:00
bbaovanc 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
8 changed files with 128 additions and 67 deletions
+3
View File
@@ -2,5 +2,8 @@
!compose.yml
!clickhouse/logs.xml
!clickhouse/ipv4-only.xml
!clickhouse/low-resources.xml
!clickhouse/default-profile-low-resources-overrides.xml
!README.md
!LICENSE
!.gitignore
+21
View File
@@ -0,0 +1,21 @@
MIT License
Copyright (c) 2024 Plausible Analytics
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
+55 -46
View File
@@ -1,8 +1,8 @@
<p align="center">
<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: light)" srcset="https://github.com/plausible/community-edition/blob/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">
<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://raw.githubusercontent.com/plausible/community-edition/refs/heads/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>
</p>
@@ -20,63 +20,72 @@
### Quick start
1. Clone this repository:
#### 1. Clone this repository
```console
$ 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.
```console
$ git clone -b v3.2.0 --single-branch https://github.com/plausible/community-edition plausible-ce
Cloning into 'plausible-ce'...
$ cd plausible-ce
$ cd plausible-ce
$ ls -1
README.md
clickhouse/
compose.yml
```
$ ls -1
clickhouse/
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
$ 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
```
```console
$ touch .env
$ echo "BASE_URL=https://plausible.example.com" >> .env
$ echo "SECRET_KEY_BASE=$(openssl rand -base64 48)" >> .env
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
$ echo "HTTP_PORT=80" >> .env
$ echo "HTTPS_PORT=443" >> .env
Also ensure `$SECRET_KEY_BASE` is set to at least a **64-byte** string.
$ cat > compose.override.yml << EOF
services:
plausible:
> [!TIP]
> 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
$ cat > compose.override.yml << EOF
services:
plausible:
ports:
- 80:80
- 443:443
EOF
```
- 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.](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
$ docker compose up -d
```
#### 4. Start the services with Docker Compose:
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
@@ -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>
+2 -10
View File
@@ -17,17 +17,9 @@
</engine>
</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 -->
<metric_log remove="remove" />
<asynchronous_metric_log remove="remove" />
<query_thread_log remove="remove" />
<text_log remove="remove" />
<trace_log remove="remove" />
+4
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>
+4
View File
@@ -0,0 +1,4 @@
services:
plausible:
ports:
- 127.0.0.1:84:80
+20 -11
View File
@@ -1,37 +1,48 @@
services:
plausible_db:
image: postgres:16-alpine
stop_grace_period: 60s
restart: always
volumes:
- db-data:/var/lib/postgresql/data
- ./data/postgres:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
start_interval: 2s
start_period: 1m
plausible_events_db:
image: clickhouse/clickhouse-server:24.3.3.102-alpine
image: clickhouse/clickhouse-server:24.12-alpine
stop_grace_period: 60s
restart: always
volumes:
- event-data:/var/lib/clickhouse
- event-logs:/var/log/clickhouse-server
- ./data/clickhouse:/var/lib/clickhouse
- ./data/clickhouse-logs:/var/log/clickhouse-server
- ./clickhouse/logs.xml:/etc/clickhouse-server/config.d/logs.xml:ro
# 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.
- ./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:
nofile:
soft: 262144
hard: 262144
environment:
- CLICKHOUSE_SKIP_USER_SETUP=1
healthcheck:
test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://127.0.0.1:8123/ping || exit 1"]
start_interval: 2s
test:
[
"CMD-SHELL",
"wget --no-verbose --tries=1 -O - http://127.0.0.1:8123/ping || exit 1",
]
start_period: 1m
plausible:
image: ghcr.io/plausible/community-edition:v2.1.2
image: ghcr.io/plausible/community-edition:v3.2.0
stop_grace_period: 60s
restart: always
command: sh -c "/entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
depends_on:
@@ -46,6 +57,7 @@ services:
soft: 65535
hard: 65535
environment:
- TMPDIR=/var/lib/plausible/tmp
# required: https://github.com/plausible/community-edition/wiki/configuration#required
- BASE_URL=${BASE_URL}
- SECRET_KEY_BASE=${SECRET_KEY_BASE}
@@ -85,7 +97,4 @@ services:
- SENDGRID_API_KEY
volumes:
db-data:
event-data:
event-logs:
plausible-data: