From 4e47fbde475d4cde759536911481004dc2b204a2 Mon Sep 17 00:00:00 2001 From: devydave Date: Thu, 8 Oct 2026 11:09:48 +0000 Subject: [PATCH] Update 2.1.0 (#11) this is the start of many updates, this version is a small jump because it replaces the old unmaintained docker image with the community edition --------- Co-authored-by: stevensting Reviewed-on: https://git.coopcloud.tech/coop-cloud/plausible/pulls/11 Co-authored-by: devydave --- .env.sample | 18 +++++++++-- README.md | 15 +++++----- abra.sh | 9 +++--- compose.yml | 64 +++++++++++++++++++++++++++++++--------- entrypoint.clickhouse.sh | 2 +- plausible_entrypoint.sh | 9 ++++++ 6 files changed, 88 insertions(+), 29 deletions(-) create mode 100644 plausible_entrypoint.sh diff --git a/.env.sample b/.env.sample index c7fc131..8bd131d 100644 --- a/.env.sample +++ b/.env.sample @@ -5,7 +5,19 @@ DOMAIN=plausible.example.com ## Domain aliases #EXTRA_DOMAINS=', `www.plausible.example.com`' LETS_ENCRYPT_ENV=production +#LOG_LEVEL=debug -SECRET_KEY_BASE=replace-me -DISABLE_AUTH=replace-me # true or false -DISABLE_REGISTRATION=replace-me # true or false +DISABLE_REGISTRATION=true # true or false + +# Mail Configuration +#SECRET_SMTP_PASSWORD_VERSION=v1 # generate=false +#MAILER_ADAPTER=Bamboo.Mua +#MAILER_EMAIL=noreply@example.com +#MAILER_NAME=Noreply +#SMTP_HOST_ADDR=mail.example.com +#SMTP_HOST_PORT=587 +#SMTP_USER_NAME=foo +#SMTP_HOST_SSL_ENABLED=false + +SECRET_TOTP_VAULT_KEY_VERSION=v1 # length=32 encoding=base64 +SECRET_KEY_BASE_VERSION=v1 # length=64 \ No newline at end of file diff --git a/README.md b/README.md index b7b4e28..243004a 100644 --- a/README.md +++ b/README.md @@ -4,13 +4,13 @@ * **Category**: Apps -* **Status**: 1, alpha +* **Status**: 3 * **Image**: [`plausible/analytics`](https://hub.docker.com/plausible/analytics), 4, upstream * **Healthcheck**: * **Backups**: Yes -* **Email**: No -* **Tests**: -* **SSO**: No +* **Email**: Yes +* **Tests**: No +* **SSO**: N/A ## Basic usage @@ -19,10 +19,11 @@ 2. Deploy [`coop-cloud/traefik`] 3. `abra app new ${REPO_NAME} --secrets` (optionally with `--pass` if you'd like to save secrets in `pass`) -4. `abra app config YOURAPPDOMAIN` - be sure to change `$DOMAIN` to something that resolves to +4. `abra app secret insert YOURAPPDOMAIN smtp_password v1` and add your smtp password +5. `abra app config YOURAPPDOMAIN` - be sure to change `$DOMAIN` to something that resolves to your Docker swarm box -5. `abra app deploy YOURAPPDOMAIN` -6. Open the configured domain in your browser to finish set-up +6. `abra app deploy YOURAPPDOMAIN` +7. Open the configured domain in your browser to finish set-up and create an admin account [`abra`]: https://git.coopcloud.tech/coop-cloud/abra [`coop-cloud/traefik`]: https://git.coopcloud.tech/coop-cloud/traefik diff --git a/abra.sh b/abra.sh index 60974a7..d261dd4 100644 --- a/abra.sh +++ b/abra.sh @@ -1,5 +1,6 @@ -export CLICKHOUSE_CONF_VERSION=v2 -export CLICKHOUSE_USER_CONF_VERSION=v2 -export CLICKHOUSE_ENTRYPOINT_VERSION=v6 +export CLICKHOUSE_CONFIG_VERSION=v2 +export CLICKHOUSE_USER_CONFIG_VERSION=v2 +export CLICKHOUSE_ENTRYPOINT_VERSION=v7 export PG_BACKUP_VERSION=v1 -export CLICKHOUSE_BACKUP_SCRIPT_VERSION=v1 +export CLICKHOUSE_BACKUP_VERSION=v1 +export PLAUSIBLE_ENTRYPOINT_VERSION=v2 diff --git a/compose.yml b/compose.yml index ca1e152..7508641 100644 --- a/compose.yml +++ b/compose.yml @@ -3,27 +3,43 @@ version: "3.8" services: app: - image: plausible/analytics:v2.0.0 - command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run" + image: ghcr.io/plausible/community-edition:v2.1.0 + entrypoint: /plausible_entrypoint.sh depends_on: - db - - plausible_events_db + - events environment: - BASE_URL=https://$DOMAIN - SECRET_KEY_BASE - DATABASE_URL=postgres://plausible:plausible@${STACK_NAME}_db:5432/plausible - - CLICKHOUSE_DATABASE_URL=http://${STACK_NAME}_plausible_events_db:8123/plausible_events_db + - CLICKHOUSE_DATABASE_URL=http://${STACK_NAME}_events:8123/plausible_events_db + - MAILER_ADAPTER - SMTP_HOST_ADDR - MAILER_EMAIL + - MAILER_NAME - SMTP_HOST_PORT - SMTP_USER_NAME - SMTP_USER_PWD - SMTP_HOST_SSL_ENABLED - DISABLE_REGISTRATION - - DISABLE_AUTH + - LOG_LEVEL + secrets: + - totp_secret + - key_base + - smtp_password + configs: + - source: plausible_entrypoint + target: /plausible_entrypoint.sh + mode: 0555 networks: - proxy - internal + healthcheck: + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8000"] + interval: 15s + timeout: 10s + retries: 10 + start_period: 15s deploy: restart_policy: # `any`, not `on-failure`: a restore disrupts postgres under the app and Erlang then @@ -66,15 +82,15 @@ services: backupbot.restore: "true" backupbot.restore.post-hook: "/pg_backup.sh restore" - plausible_events_db: - image: clickhouse/clickhouse-server:23.4.2.11-alpine + events: + image: clickhouse/clickhouse-server:24.3.3.102-alpine volumes: - event-data:/var/lib/clickhouse entrypoint: /custom-entrypoint.sh configs: - - source: clickhouse-config + - source: clickhouse_config target: /etc/clickhouse-server/config.d/logging.xml - - source: clickhouse-user-config + - source: clickhouse_user_config target: /etc/clickhouse-server/users.d/clickhouse-user-config.xml - source: clickhouse_entrypoint target: /custom-entrypoint.sh @@ -84,6 +100,12 @@ services: mode: 0555 networks: - internal + healthcheck: + test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1:8123/ping || exit 1"] + interval: 15s + timeout: 10s + retries: 10 + start_period: 15s deploy: labels: backupbot.backup: "true" @@ -103,11 +125,14 @@ networks: internal: configs: - clickhouse-config: - name: ${STACK_NAME}_clickhouse_config_${CLICKHOUSE_CONF_VERSION} + plausible_entrypoint: + name: ${STACK_NAME}_plausible_entrypoint_${PLAUSIBLE_ENTRYPOINT_VERSION} + file: plausible_entrypoint.sh + clickhouse_config: + name: ${STACK_NAME}_clickhouse_config_${CLICKHOUSE_CONFIG_VERSION} file: clickhouse-config.xml - clickhouse-user-config: - name: ${STACK_NAME}_clickhouse_user_config_${CLICKHOUSE_USER_CONF_VERSION} + clickhouse_user_config: + name: ${STACK_NAME}_clickhouse_user_config_${CLICKHOUSE_USER_CONFIG_VERSION} file: clickhouse-user-config.xml clickhouse_entrypoint: name: ${STACK_NAME}_clickhouse_entrypoint_${CLICKHOUSE_ENTRYPOINT_VERSION} @@ -116,5 +141,16 @@ configs: name: ${STACK_NAME}_pg_backup_${PG_BACKUP_VERSION} file: pg_backup.sh clickhouse_backup: - name: ${STACK_NAME}_clickhouse_backup_${CLICKHOUSE_BACKUP_SCRIPT_VERSION} + name: ${STACK_NAME}_clickhouse_backup_${CLICKHOUSE_BACKUP_VERSION} file: clickhouse_backup.sh + +secrets: + totp_secret: + name: ${STACK_NAME}_totp_secret_${SECRET_TOTP_VAULT_KEY_VERSION} + external: true + key_base: + name: ${STACK_NAME}_key_base_${SECRET_KEY_BASE_VERSION} + external: true + smtp_password: + name: ${STACK_NAME}_smtp_password_${SECRET_SMTP_PASSWORD_VERSION} + external: true diff --git a/entrypoint.clickhouse.sh b/entrypoint.clickhouse.sh index 5af4d4f..29124ab 100644 --- a/entrypoint.clickhouse.sh +++ b/entrypoint.clickhouse.sh @@ -7,7 +7,7 @@ set -e -CLICKHOUSE_BACKUP_VERSION=2.4.2 +CLICKHOUSE_BACKUP_VERSION=2.8.1 ARCH=$(uname -m) if [[ $ARCH =~ "aarch64" ]]; then diff --git a/plausible_entrypoint.sh b/plausible_entrypoint.sh new file mode 100644 index 0000000..e73e459 --- /dev/null +++ b/plausible_entrypoint.sh @@ -0,0 +1,9 @@ +#!/bin/sh + +set -e + +[ -f /run/secrets/totp_secret ] && export TOTP_VAULT_KEY="$(cat /run/secrets/totp_secret)" +[ -f /run/secrets/key_base ] && export SECRET_KEY_BASE="$(cat /run/secrets/key_base)" +[ -f /run/secrets/smtp_password ] && export SMTP_USER_PWD="$(cat /run/secrets/smtp_password)" + +sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"