commit e36dd47ef88b105338800afad667c0cda8704eea Author: ruslandoga <67764432+ruslandoga@users.noreply.github.com> Date: Wed Sep 4 16:11:58 2024 +0700 v2.1.2 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..adca6d9 --- /dev/null +++ b/.gitignore @@ -0,0 +1,5 @@ +* +!compose.yml +!clickhouse +!README.md +!.gitignore diff --git a/README.md b/README.md new file mode 100644 index 0000000..62bd02e --- /dev/null +++ b/README.md @@ -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) diff --git a/clickhouse/clickhouse-config.xml b/clickhouse/clickhouse-config.xml new file mode 100644 index 0000000..0dfaa70 --- /dev/null +++ b/clickhouse/clickhouse-config.xml @@ -0,0 +1,23 @@ + + + warning + true + + + + + + + + + + + + + + diff --git a/clickhouse/clickhouse-user-config.xml b/clickhouse/clickhouse-user-config.xml new file mode 100644 index 0000000..56cf1cd --- /dev/null +++ b/clickhouse/clickhouse-user-config.xml @@ -0,0 +1,8 @@ + + + + 0 + 0 + + + diff --git a/compose.yml b/compose.yml new file mode 100644 index 0000000..486f5de --- /dev/null +++ b/compose.yml @@ -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: