This commit is contained in:
ruslandoga 2024-09-04 16:11:58 +07:00
commit e36dd47ef8
5 changed files with 145 additions and 0 deletions

5
.gitignore vendored Normal file
View File

@ -0,0 +1,5 @@
*
!compose.yml
!clickhouse
!README.md
!.gitignore

57
README.md Normal file
View File

@ -0,0 +1,57 @@
# Plausible Community Edition
### Prerequisites
- **[Docker](https://docs.docker.com/engine/install/)** and **[Docker Compose](https://docs.docker.com/compose/install/)** must be installed on your machine.
- **System Requirements for ClickHouse:**
- **CPU:** Must support **SSE 4.2** instruction set or higher (required by ClickHouse).
- **Memory:** At least **2 GB of RAM** is recommended for running ClickHouse efficiently.
- **Storage:** Adequate disk space to store your ClickHouse and PostgreSQL databases, depending on your expected data volume.
### Quick start
To set up Plausible Community Edition quickly, follow these steps:
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.
$ cd plausible-ce
$ ls -1
README.md
clickhouse/
compose.yml
```
1. Create and configure your environment file:
```console
$ touch .env
$ echo "HTTP_PORT=8080" >> .env
$ echo "HTTPS_PORT=8443" >> .env
$ echo "BASE_URL=https://plausible.example.com:8443" >> .env
$ echo "SECRET_KEY_BASE=$(docker run -ti --rm ghcr.io/plausible/community-edition:v2.1.2 openssl rand -base64 48)" >> .env
$ cat .env
HTTP_PORT=8080
HTTPS_PORT=8443
BASE_URL=https://plausible.example.com:8443
SECRET_KEY_BASE=As0fZsJlUpuFYSthRjT5Yflg/NlxkFKPRro72xMLXF8yInZ60s6xGGXYVqml+XN1
```
1. Start the services with Docker Compose:
```console
$ docker compose up -d
```
### Next steps
For more information on installation, upgrades, extra configuration, and available integrations please see our [wiki.](https://github.com/plausible/community-edition/wiki)

View File

@ -0,0 +1,23 @@
<clickhouse>
<logger>
<level>warning</level>
<console>true</console>
</logger>
<!--
Avoid the warning: "Listen [::]:9009 failed: Address family for hostname not supported".
If Docker has IPv6 disabled, bind ClickHouse to IPv4 to prevent this issue.
Add this to the configuration to ensure it listens on all IPv4 interfaces:
<listen_host>0.0.0.0</listen_host>
-->
<!-- Stop all the unnecessary logging -->
<query_thread_log remove="remove"/>
<query_log remove="remove"/>
<text_log remove="remove"/>
<trace_log remove="remove"/>
<metric_log remove="remove"/>
<asynchronous_metric_log remove="remove"/>
<session_log remove="remove"/>
<part_log remove="remove"/>
</clickhouse>

View File

@ -0,0 +1,8 @@
<clickhouse>
<profiles>
<default>
<log_queries>0</log_queries>
<log_query_threads>0</log_query_threads>
</default>
</profiles>
</clickhouse>

52
compose.yml Normal file
View File

@ -0,0 +1,52 @@
services:
plausible_db:
image: postgres:16-alpine
restart: always
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=postgres
plausible_events_db:
image: clickhouse/clickhouse-server:24.3.3.102-alpine
restart: always
volumes:
- event-data:/var/lib/clickhouse
- event-logs:/var/log/clickhouse-server
- ./clickhouse/clickhouse-config.xml:/etc/clickhouse-server/config.d/logging.xml:ro
- ./clickhouse/clickhouse-user-config.xml:/etc/clickhouse-server/users.d/logging.xml:ro
ulimits:
nofile:
soft: 262144
hard: 262144
plausible:
image: ghcr.io/plausible/community-edition:v2.1.2
restart: always
command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
depends_on:
- plausible_db
- plausible_events_db
ports:
# Note that setting ports opens firewall for external access.
# When using a reverse proxy, set to "127.0.0.1:${HTTP_PORT}:${HTTP_PORT}" to restrict access to localhost only.
- ${HTTP_PORT}:${HTTP_PORT}
- ${HTTPS_PORT}:${HTTPS_PORT}
volumes:
- plausible-data:/var/lib/plausible
environment:
BASE_URL: ${BASE_URL}
SECRET_KEY_BASE: ${SECRET_KEY_BASE}
HTTP_PORT: ${HTTP_PORT}
# Setting HTTPS port enables automatic issuance of TLS certificates from Let's Encrypt.
# Remove this if using a reverse proxy.
HTTPS_PORT: ${HTTPS_PORT}
DATABASE_URL: postgres://postgres:postgres@plausible_db:5432/plausible_db
CLICKHOUSE_DATABASE_URL: http://plausible_events_db:8123/plausible_events_db
DISABLE_REGISTRATION: true
volumes:
db-data:
event-data:
event-logs:
plausible-data: