mirror of
https://github.com/plausible/analytics.git
synced 2024-12-27 03:21:37 +03:00
c81cb16933
* Allow running browserless.io locally * Compile tailwind classes based on extra/ too * Add browserless runtime configuration * Ignore verification events on ingestion * Improve extracting HTML text in tests * Update dependencies - Floki will be used on production to parse site contents - Req will be used to handle redundant stuff like retrying etc. * Add shuttle SVG to generic components Later on we'll use it to indicate verification errors * Connect live socket & allow skipping awaiting the first pageview * Connect live socket in general settings * Implement verification checks & diagnostics * Stub remote services with Req for testing * Change snippet screen copy * Update tracker script, so that: 1. headless browsers aren't ignored if `window.__plausible` is defined 2. callback optionally supplies the event response HTTP status This will be later used to check whether the server acknowledged the verification event. * Implement LiveView verification UI * Embed the verification UIs into settings and onboarding * Implement browserless puppeteer verification script It: - tries to visit the site - defines window.__plausible, so the tracker doesn't ignore test events - sends a verification event and instruments the callback - awaits the callback to fire and returns the result * Improve diagnostics for CSP Only report CSP error if the snippet is already found * Put verification behind a feature flag/env setting * Contact Us hint only for Enterprise Edition * For headless code, use JS context instead of EEx interpolation * Update diagnostics test with WordPress scenarios * Shorten exception/throw interception * Rename test * Tidy up * Bust URL always on headless check * Update moduledoc * Detect official Plausible WordPress Plugin and act accordingly on diagnostics interoperation * Stop using 'rating' in favour of 'interpretation' * Only report CSP error if no proxy is likely * Update CHANGELOG * Allow event-* attributes on snippet elements * Improve naive GTM detection, not to confuse it with GA4 * Update lib/plausible/verification.ex Co-authored-by: Adrian Gruntkowski <adrian.gruntkowski@gmail.com> * Update test/plausible/site/verification/checks_test.exs Co-authored-by: Adrian Gruntkowski <adrian.gruntkowski@gmail.com> * s/perform_wrapped/perform_safe * Update lib/plausible/verification/checks/installation.ex Co-authored-by: Adrian Gruntkowski <adrian.gruntkowski@gmail.com> * Remove garbage --------- Co-authored-by: Adrian Gruntkowski <adrian.gruntkowski@gmail.com>
53 lines
2.6 KiB
Makefile
53 lines
2.6 KiB
Makefile
.PHONY: help install server clickhouse clickhouse-prod clickhouse-stop postgres postgres-prod postgres-stop
|
|
|
|
help:
|
|
@perl -nle'print $& if m{^[a-zA-Z_-]+:.*?## .*$$}' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
|
|
|
install: ## Run the initial setup
|
|
mix deps.get
|
|
mix ecto.create
|
|
mix ecto.migrate
|
|
mix download_country_database
|
|
npm install --prefix assets
|
|
npm install --prefix tracker
|
|
npm run deploy --prefix tracker
|
|
|
|
server: ## Start the web server
|
|
mix phx.server
|
|
|
|
CH_FLAGS ?= --detach -p 8123:8123 -p 9000:9000 --ulimit nofile=262144:262144 --name plausible_clickhouse
|
|
|
|
clickhouse: ## Start a container with a recent version of clickhouse
|
|
docker run $(CH_FLAGS) --volume=$$PWD/.clickhouse_db_vol:/var/lib/clickhouse clickhouse/clickhouse-server:latest-alpine
|
|
|
|
clickhouse-prod: ## Start a container with the same version of clickhouse as the one in prod
|
|
docker run $(CH_FLAGS) --volume=$$PWD/.clickhouse_db_vol_prod:/var/lib/clickhouse clickhouse/clickhouse-server:24.3.3.102-alpine
|
|
|
|
clickhouse-stop: ## Stop and remove the clickhouse container
|
|
docker stop plausible_clickhouse && docker rm plausible_clickhouse
|
|
|
|
PG_FLAGS ?= --detach -e POSTGRES_PASSWORD="postgres" -p 5432:5432 --name plausible_db
|
|
|
|
postgres: ## Start a container with a recent version of postgres
|
|
docker run $(PG_FLAGS) --volume=plausible_db:/var/lib/postgresql/data postgres:latest
|
|
|
|
postgres-prod: ## Start a container with the same version of postgres as the one in prod
|
|
docker run $(PG_FLAGS) --volume=plausible_db_prod:/var/lib/postgresql/data postgres:15
|
|
|
|
postgres-stop: ## Stop and remove the postgres container
|
|
docker stop plausible_db && docker rm plausible_db
|
|
|
|
browserless:
|
|
docker run -e "TOKEN=dummy_token" -p 3000:3000 --network host ghcr.io/browserless/chromium
|
|
|
|
minio: ## Start a transient container with a recent version of minio (s3)
|
|
docker run -d --rm -p 10000:10000 -p 10001:10001 --name plausible_minio minio/minio server /data --address ":10000" --console-address ":10001"
|
|
while ! docker exec plausible_minio mc alias set local http://localhost:10000 minioadmin minioadmin; do sleep 1; done
|
|
docker exec plausible_minio sh -c 'mc mb local/dev-exports && mc ilm add --expiry-days 7 local/dev-exports'
|
|
docker exec plausible_minio sh -c 'mc mb local/dev-imports && mc ilm add --expiry-days 7 local/dev-imports'
|
|
docker exec plausible_minio sh -c 'mc mb local/test-exports && mc ilm add --expiry-days 7 local/test-exports'
|
|
docker exec plausible_minio sh -c 'mc mb local/test-imports && mc ilm add --expiry-days 7 local/test-imports'
|
|
|
|
minio-stop: ## Stop and remove the minio container
|
|
docker stop plausible_minio
|