Skip to content

Releases: plausible/analytics

v2.1.4

09 Oct 09:49
5fec52a
Compare
Choose a tag to compare

This is a patch release focused on resolving file moving issue with CSV export/import, alongside several other improvements to enhance the user experience.

Upgrade

Update the image used for plausible

docker-compose.yml

plausible:
- image: ghcr.io/plausible/community-edition:v2.1.3
+ image: ghcr.io/plausible/community-edition:v2.1.4

and restart the containers

console

$ cd hosting
$ docker compose up -d

This will boot up the new version of the app.

Changelog

Following changes have been made since v2.1.3:

Added

  • Add ability to review and revoke particular logged in user sessions
  • Add ability to change password from user settings screen
  • Add error logs for background jobs #4657

Changed

  • Revised User Settings UI
  • Default to invite_only for registration #4616

Fixed

  • Fix cross-device file move in CSV exports/imports #4640

v2.1.3

26 Sep 11:18
cb365c2
Compare
Choose a tag to compare

This release is the same as v2.1.2 but with cookie and filters issues resolved.

Upgrade

Update the image used for plausible

docker-compose.yml

plausible:
- image: ghcr.io/plausible/community-edition:v2.1.2
+ image: ghcr.io/plausible/community-edition:v2.1.3

and restart the containers

console

$ cd hosting
$ docker compose up -d

This will boot up the new version of the app.

Changelog

Following changes have been made since v2.1.2:

Fixed

  • Change cookie key to resolve login issue #4621
  • Set secure attribute on cookies when BASE_URL has HTTPS scheme #4623
  • Don't track custom events in CE (fixes filters) #4627

v2.1.2

25 Sep 12:09
00dffb5
Compare
Choose a tag to compare

The highlights of this release are:

  • Automatic IPv6 support for all outgoing connections
  • Opt-in HTTPS support and Let's Encrypt integration
  • Simplified Docker Compose configuration
  • Various product improvements: https://plausible.io/changelog — up until today's date :)

Upgrade

Update the image used for plausible

docker-compose.yml

plausible:
- image: ghcr.io/plausible/community-edition:v2.1.1
+ image: ghcr.io/plausible/community-edition:v2.1.2

and restart the containers

console

$ cd hosting
$ docker compose up -d

This will boot up the new version of the app.

Changelog

Following changes have been made since v2.1.1:

Added

  • UI to edit goals along with display names
  • Support contains filter for goals
  • UI to edit funnels
  • Add Details views for browsers, browser versions, os-s, os versions, and screen sizes reports
  • Add a search functionality in all Details views
  • Icons for browsers #4239
  • Automatic custom property selection in the dashboard Properties report
  • Add contains_not filter support to dashboard
  • Traffic drop notifications #4300
  • Add search and pagination functionality into Google Keywords > Details modal
  • ClickHouse system.query_log table log_comment column now contains information about source of queries. Useful for debugging
  • New /debug/clickhouse route for super admins which shows information on clickhouse queries executed by user
  • Typescript support for /assets
  • Testing framework for /assets
  • Automatic HTTPS #4491
  • Make details views on dashboard sortable

Removed

  • Deprecate ECTO_IPV6 and ECTO_CH_IPV6 env vars in CE #4245
  • Remove support for importing data from no longer available Universal Analytics
  • Soft-deprecate DATABASE_SOCKET_DIR #4202

Changed

  • Support Unix sockets in DATABASE_URL #4202
  • Realtime and hourly graphs now show visits lasting their whole duration instead when specific events occur
  • Increase hourly request limit for API keys in CE from 600 to 1000000 (practically removing the limit) #4200
  • Make TCP connections try IPv6 first with IPv4 fallback in CE #4245
  • is and is not filters in dashboard no longer support wildcards. Use contains/does not contain filter instead.
  • bounce_rate metric now returns 0 instead of null for event:page breakdown when page has never been entry page.
  • Make TOTP_VAULT_KEY optional #4317
  • Sources like 'google' and 'facebook' are now stored in capitalized forms ('Google', 'Facebook') #4417
  • DATABASE_CACERTFILE now forces TLS for PostgreSQL connections, so you don't need to add ?ssl=true in DATABASE_URL
  • Change auth session cookies to token-based ones with server-side expiration management.
  • Improve Google error messages in CE #4485
  • Better compress static assets in CE #4476
  • Return domain-less cookies in CE #4482
  • Internal stats API routes now return a JSON error over HTML in case of invalid access.

Fixed

  • Fix access to Stats API feature in CE #4244
  • Fix filter suggestions when same filter previously applied
  • Fix MX lookup when using relays with Bamboo.Mua #4350
  • Don't include imports when showing time series hourly interval. Previously imported data was shown each midnight
  • Fix property filter suggestions 500 error when property hasn't been selected
  • Bamboo.Mua: add Date and Message-ID headers if missing #4474
  • Fix migration order across plausible_db and plausible_events_db databases #4466

v2.1.1

06 Jun 10:00
b096057
Compare
Choose a tag to compare

This is a patch release with fixes to some of the problems reported in v2.1.0

Upgrading to v2.1.1

Important

This guide assumes you are already using v2.1.0

Update images

Update the image used for plausible

docker-compose.yml

plausible:
- image: ghcr.io/plausible/community-edition:v2.1.0
+ image: ghcr.io/plausible/community-edition:v2.1.1

and restart the container

console

$ cd hosting
$ docker compose stop plausible
$ docker compose rm plausible
$ docker compose up -d

This will boot up the new version of the app.

Changelog

Following changes have been made since v2.1.0:

Added

  • Snippet integration verification
  • Limited filtering support for imported data in the dashboard and via Stats API
  • Automatic sites.imported_data -> site_imports data migration in CE #4155

Fixed

  • Fix CSV import by adding a newline to the INSERT statement #4172
  • Fix url parameters escaping of = sign #4185
  • Fix redirect after registration in CE #4165
  • Fix VersionedSessions migration in ClickHouse v24 #4162

v2.1.0

23 May 10:31
5881f1c
Compare
Choose a tag to compare

The highlights of this release are:

  • 🎉 Introduction of Community Edition [see below]
  • ⬇️ GA4 import
  • 🔁 CSV data export and import between self-hosted and cloud
  • 🔐 TOTP for 2FA [docs]
  • ✉️ New SMTP client [see below]
  • 🔌 The new WordPress integration now works better thanks to the Plugin API
  • 📚 Hosting documentation (now at plausible/community-edition) got an update and now includes a more thorough Google integration guide
  • 📈 Sites page got a new look with spark charts
    Spark charts

Introduction of Community Edition

As of version 2.1.0 this project will split into Plausible Community Edition and Plausible Enterprise Edition. The Community Edition (CE) will remain completely open source under the AGPLv3 license. The Enterprise Edition (EE) will contain extra features that will be published as source-available on Github, but we do not grant rights for anyone else to use, distribute or otherwise exploit these features. Read more here.

As part of this change, we are also rebranding the project. The new logos for CE and EE will be different so as to clarify which version is being referred to or used at any given time.

And finally as a contributor, you will have to sign a Contributor License Agreement (CLA) in order for your PRs to be considered for merging.

Upgrading to v2.1.0

Important

This guide assumes you are using v2.0.0 and have already run the data migration.

Update config

Add a secret key for the new required TOTP_VAULT_KEY environment variable

console

$ openssl rand -base64 32
aihU7k+GSBKbcVFuX9VEPyUhuwlKEomqA94/SQQ0NR4=

plausible-conf.env

  BASE_URL=https://plausible.example.com
  SECRET_KEY_BASE=PkVcxRgQDfQyhPETlog3vvCrj5LdYFSv4ejPEJHJO+i/37w6RZfRjeVCpJayjUjJMfXsNurcv5upPhTRoD3KgQ==
+ TOTP_VAULT_KEY=aihU7k+GSBKbcVFuX9VEPyUhuwlKEomqA94/SQQ0NR4=

This new key is used to encrypt TOTP secrets at rest.

Update images

Update the images used for plausible and plausible_events_db and remove /entrypoint.sh db init-admin from your plausible.command

docker-compose.yml

plausible:
- image: plausible/analytics:v2.0.0
- command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh db init-admin && /entrypoint.sh run"
+ image: ghcr.io/plausible/community-edition:v2.1.0
+ command: sh -c "sleep 10 && /entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
plausible_events_db:
- image: clickhouse/clickhouse-server:22.6-alpine
+ image: clickhouse/clickhouse-server:24.3.3.102-alpine

and restart the containers

console

$ cd hosting
$ docker compose stop plausible plausible_events_db
$ docker compose rm plausible plausible_events_db
$ docker compose up -d

This will boot up the new version of the app.

New SMTP client

If you were having problems with email delivery in the previous versions you can try switching to the new SMTP client by setting MAILER_ADAPTER to Bamboo.Mua. All the SMTP_* environment variables can stay the same.

plausible-conf.env

  BASE_URL=https://plausible.example.com
  SECRET_KEY_BASE=PkVcxRgQDfQyhPETlog3vvCrj5LdYFSv4ejPEJHJO+i/37w6RZfRjeVCpJayjUjJMfXsNurcv5upPhTRoD3KgQ==
  TOTP_VAULT_KEY=aihU7k+GSBKbcVFuX9VEPyUhuwlKEomqA94/SQQ0NR4=
  SMTP_HOST_ADDR=smtp.gmail.com
  SMTP_HOST_PORT=587
  SMTP_USER_NAME=somebody@gmail.com
  SMTP_USER_PWD="wnqj fkbn jcwc byxk"
+ MAILER_ADAPTER=Bamboo.Mua

In addition, here's a short guide on using your Gmail account for email delivery.

Changelog

Following changes have been made since v2.0.0:

Added

  • Hostname Allow List in Site Settings
  • Pages Block List in Site Settings
  • Add conversion_rate to Stats API Timeseries and on the main graph
  • Add total_conversions and conversion_rate to visitors.csv in a goal-filtered CSV export
  • Ability to display total conversions (with a goal filter) on the main graph
  • Add conversion_rate to Stats API Timeseries and on the main graph
  • Add time_on_page metric into the Stats API
  • County Block List in Site Settings
  • Query the views_per_visit metric based on imported data as well if possible
  • Group operating_system_versions by operating_system in Stats API breakdown
  • Add operating_system_versions.csv into the CSV export
  • Display Total visitors, Conversions, and CR in the "Details" views of Countries, Regions and Cities (when filtering by a goal)
  • Add conversion_rate to Regions and Cities reports (when filtering by a goal)
  • Add the conversion_rate metric to Stats API Breakdown and Aggregate endpoints
  • IP Block List in Site Settings
  • Allow filtering with contains/matches operator for Sources, Browsers and Operating Systems.
  • Allow filtering by multiple custom properties
  • Wildcard and member filtering on the Stats API event:goal property
  • Allow filtering with contains/matches operator for custom properties
  • Add referrers.csv to CSV export
  • Add a new Properties section in the dashboard to break down by custom properties
  • Add custom_props.csv to CSV export (almost the same as the old prop_breakdown.csv, but has different column headers, and includes props for pageviews too, not only custom events)
  • Add referrers.csv to CSV export
  • Improve password validation in registration and password reset forms
  • Adds Gravatar profile image to navbar
  • Enforce email reverification on update
  • Add Plugins API Tokens provisioning UI
  • Add searching sites by domain in /sites view
  • Add last 24h plots to /sites view
  • Add site pinning to /sites view
  • Add support for JSON logger, via LOG_FORMAT=json environment variable
  • Add support for 2FA authentication
  • Add 'browser_versions.csv' to CSV export
  • Add CLICKHOUSE_MAX_BUFFER_SIZE_BYTES env var which defaults to 100000 (100KB)
  • Add alternative SMTP adapter #3654
  • Add EXTRA_CONFIG_PATH env var to specify extra Elixir config #3906
  • Add restrictive robots.txt for self-hosted #3905
  • Add Yesterday as an time range option in the dashboard
  • Add dmg extension to the list of default tracked file downloads
  • Add support for importing Google Analytics 4 data
  • Import custom events from Google Analytics 4
  • Ability to filter Search Console keywords by page, country and device #4077
  • Add DATA_DIR env var for exports/imports #4100
  • Add custom events support to CSV export and import

Removed

  • Removed the nested custom event property breakdown UI when filtering by a goal in Goal Conversions
  • Removed the prop_names returned in the Stats API event:goal breakdown response
  • Removed the prop-breakdown.csv file from CSV export
  • Deprecated CLICKHOUSE_MAX_BUFFER_SIZE
  • Removed /app/init-admin.sh that was deprecated in v2.0.0 #3903
  • Remove DISABLE_AUTH deprecation warning #3904

Changed

  • A visits entry_page and exit_page is only set and updated for pageviews, not custom events
  • Limit the number of Goal Conversions shown on the dashboard and render a "Details" link when there are more entries to show
  • Show Outbound Links / File Downloads / 404 Pages / Cloaked Links instead of Goal Conversions when filtering by the corresponding goal
  • Require custom properties to be explicitly added from Site Settings > Custom Properties in order for them to show up on the dashboard
  • GA/SC sections moved to new settings: Integrations
  • Replace CLICKHOUSE_MAX_BUFFER_SIZE with CLICKHOUSE_MAX_BUFFER_SIZE_BYTES
  • Validate metric isn't queried multiple times
  • Filters in dashboard are represented by jsonurl

Fixed

  • Creating many sites no longer leads to cookie overflow
  • Ignore sessions without pageviews for entry_page and exit_page breakdowns
  • Using VersionedCollapsingMergeTree to store visit data to avoid rare race conditions that led to wrong visit data being shown
  • Fix conversion_rate metric in a browser_versions breakdown
  • Calculate conversion_rate percentage change in the same way like bounce_rate (subtraction instead of division)
  • Calculate bounce_rate percentage change in the Stats API in the same way as it's done in the dashboard
  • Stop returning custom events in goal breakdown with a pageview goal filter and vice versa
  • Only return (none) values in custom property breakdown for the first page (pagination) of results
  • Fixed weekly/monthly e-mail report rendering issues
  • Fix broken interval selection in the all time view #3110
  • Fixed IPv6 problems in data migration #3179
  • Fixed long URLs display in Outbound Link breakdown view
  • Fixed Sentry reports for ingestion requests #3182
  • Fi...
Read more

v2.1.0-rc.1

08 May 08:47
d8435f2
Compare
Choose a tag to compare
v2.1.0-rc.1 Pre-release
Pre-release

Warning

The previous v2.1.0-rc.1 image had incorrect settings that disabled GA4 imports and CSV exports/imports.
Please re-pull the image if you don't see "Imports & Exports" section in site settings.

The highlights of this release candidate are:

  • 🎉 Introduction of Community Edition [see below]
  • ⬇️ GA4 import
  • 🔁 CSV data export and import between self-hosted and cloud
  • 🔐 TOTP for 2FA [docs]
  • ✉️ New SMTP client [see below]
  • 🔌 The new WordPress integration now works better thanks to the Plugin API
  • 📚 Hosting documentation (now at plausible/community-edition) got an update and now includes a more thorough Google integration guide
  • 📈 Sites page got a new look with spark charts
    Spark charts

Introduction of Community Edition

As of version 2.1.0 this project will split into Plausible Community Edition and Plausible Enterprise Edition. The Community Edition (CE) will remain completely open source under the AGPLv3 license. The Enterprise Edition (EE) will contain extra features that will be published as source-available on Github, but we do not grant rights for anyone else to use, distribute or otherwise exploit these features. Read more here.

As part of this change, we are also rebranding the project. The new logos for CE and EE will be different so as to clarify which version is being referred to or used at any given time.

And finally as a contributor, you will have to sign a Contributor License Agreement (CLA) in order for your PRs to be considered for merging.

Upgrading to v2.1.0-rc.1

Important

This guide assumes you are using v2.0.0

Update config

Add a secret key for the new required TOTP_VAULT_KEY environment variable

console

$ openssl rand -base64 32
aihU7k+GSBKbcVFuX9VEPyUhuwlKEomqA94/SQQ0NR4=

plausible-conf.env

  BASE_URL=https://plausible.example.com
  SECRET_KEY_BASE=PkVcxRgQDfQyhPETlog3vvCrj5LdYFSv4ejPEJHJO+i/37w6RZfRjeVCpJayjUjJMfXsNurcv5upPhTRoD3KgQ==
+ TOTP_VAULT_KEY=aihU7k+GSBKbcVFuX9VEPyUhuwlKEomqA94/SQQ0NR4=

This new key is used to encrypt TOTP secrets at rest.

Update images

Update the images used for plausible and plausible_events_db

docker-compose.yml

plausible:
- image: plausible/analytics:v2.0.0
+ image: ghcr.io/plausible/community-edition:v2.1.0-rc.1
plausible_events_db:
- image: clickhouse/clickhouse-server:22.6-alpine
+ image: clickhouse/clickhouse-server:23.3.7.5-alpine

and restart the containers

console

$ cd hosting
$ docker compose stop plausible plausible_events_db
$ docker compose rm plausible plausible_events_db
$ docker compose up -d

This will boot up the new version of the app.

New SMTP client

If you were having problems with email delivery in v2.1.0-rc.0, you can switch to the new SMTP client by setting MAILER_ADAPTER to Bamboo.Mua. All the SMTP_* environment variables can stay the same.

plausible-conf.env

  BASE_URL=https://plausible.example.com
  SECRET_KEY_BASE=PkVcxRgQDfQyhPETlog3vvCrj5LdYFSv4ejPEJHJO+i/37w6RZfRjeVCpJayjUjJMfXsNurcv5upPhTRoD3KgQ==
  TOTP_VAULT_KEY=aihU7k+GSBKbcVFuX9VEPyUhuwlKEomqA94/SQQ0NR4=
  SMTP_HOST_ADDR=smtp.gmail.com
  SMTP_HOST_PORT=587
  SMTP_USER_NAME=somebody@gmail.com
  SMTP_USER_PWD="wnqj fkbn jcwc byxk"
+ MAILER_ADAPTER=Bamboo.Mua

In addition, here's a short guide on using your Gmail account for email delivery.

Changelog

Following changes have been made since v2.0.0:

Added

  • Hostname Allow List in Site Settings
  • Pages Block List in Site Settings
  • Add conversion_rate to Stats API Timeseries and on the main graph
  • Add total_conversions and conversion_rate to visitors.csv in a goal-filtered CSV export
  • Ability to display total conversions (with a goal filter) on the main graph
  • Add conversion_rate to Stats API Timeseries and on the main graph
  • Add time_on_page metric into the Stats API
  • County Block List in Site Settings
  • Query the views_per_visit metric based on imported data as well if possible
  • Group operating_system_versions by operating_system in Stats API breakdown
  • Add operating_system_versions.csv into the CSV export
  • Display Total visitors, Conversions, and CR in the "Details" views of Countries, Regions and Cities (when filtering by a goal)
  • Add conversion_rate to Regions and Cities reports (when filtering by a goal)
  • Add the conversion_rate metric to Stats API Breakdown and Aggregate endpoints
  • IP Block List in Site Settings
  • Allow filtering with contains/matches operator for Sources, Browsers and Operating Systems.
  • Allow filtering by multiple custom properties
  • Wildcard and member filtering on the Stats API event:goal property
  • Allow filtering with contains/matches operator for custom properties
  • Add referrers.csv to CSV export
  • Add a new Properties section in the dashboard to break down by custom properties
  • Add custom_props.csv to CSV export (almost the same as the old prop_breakdown.csv, but has different column headers, and includes props for pageviews too, not only custom events)
  • Add referrers.csv to CSV export
  • Improve password validation in registration and password reset forms
  • Adds Gravatar profile image to navbar
  • Enforce email reverification on update
  • Add Plugins API Tokens provisioning UI
  • Add searching sites by domain in /sites view
  • Add last 24h plots to /sites view
  • Add site pinning to /sites view
  • Add support for JSON logger, via LOG_FORMAT=json environment variable
  • Add support for 2FA authentication
  • Add 'browser_versions.csv' to CSV export
  • Add CLICKHOUSE_MAX_BUFFER_SIZE_BYTES env var which defaults to 100000 (100KB)
  • Add alternative SMTP adapter #3654
  • Add EXTRA_CONFIG_PATH env var to specify extra Elixir config #3906
  • Add restrictive robots.txt for self-hosted #3905
  • Add Yesterday as an time range option in the dashboard

Removed

  • Removed the nested custom event property breakdown UI when filtering by a goal in Goal Conversions
  • Removed the prop_names returned in the Stats API event:goal breakdown response
  • Removed the prop-breakdown.csv file from CSV export
  • Deprecated CLICKHOUSE_MAX_BUFFER_SIZE
  • Removed /app/init-admin.sh that was deprecated in v2.0.0 #3903
  • Remove DISABLE_AUTH deprecation warning #3904

Changed

  • A visits entry_page and exit_page is only set and updated for pageviews, not custom events
  • Limit the number of Goal Conversions shown on the dashboard and render a "Details" link when there are more entries to show
  • Show Outbound Links / File Downloads / 404 Pages / Cloaked Links instead of Goal Conversions when filtering by the corresponding goal
  • Require custom properties to be explicitly added from Site Settings > Custom Properties in order for them to show up on the dashboard
  • GA/SC sections moved to new settings: Integrations
  • Replace CLICKHOUSE_MAX_BUFFER_SIZE with CLICKHOUSE_MAX_BUFFER_SIZE_BYTES
  • Validate metric isn't queried multiple times

Fixed

  • Creating many sites no longer leads to cookie overflow
  • Ignore sessions without pageviews for entry_page and exit_page breakdowns
  • Using VersionedCollapsingMergeTree to store visit data to avoid rare race conditions that led to wrong visit data being shown
  • Fix conversion_rate metric in a browser_versions breakdown
  • Calculate conversion_rate percentage change in the same way like bounce_rate (subtraction instead of division)
  • Calculate bounce_rate percentage change in the Stats API in the same way as it's done in the dashboard
  • Stop returning custom events in goal breakdown with a pageview goal filter and vice versa
  • Only return (none) values in custom property breakdown for the first page (pagination) of results
  • Fixed weekly/monthly e-mail report rendering issues
  • Fix broken interval selection in the all time view #3110
  • Fixed IPv6 problems in data migration #3179
  • Fixed long URLs display in Outbound Link breakdown view
  • Fixed Sentry reports for ingestion requests #3182
  • Fix breakdown pagination bug in the dashboard details view when filtering by goals
  • Update bot detection (matomo 6.1.4, ua_inspector 3.4.0)
  • Improved the Goal Settings page (search, autcompletion etc.)
  • Log mailer errors #3336
  • Allow custom event timeseries in stats API #3505
  • Fixes for sites with UTF characters in domain #3560
  • Fix crash when using special characters in filter #3634
  • Fix automatic scrolling to the bottom on the dashboard if previously selected properties tab #3872
  • Allow running ...
Read more

v2.1.0-rc.0

23 Feb 13:25
Compare
Choose a tag to compare
v2.1.0-rc.0 Pre-release
Pre-release

The highlights of this release candidate are:

  • Introduction of Community Edition [see below]
  • TOTP for 2FA [docs]
  • Sites page got a new look with spark charts
    Screenshot 2024-02-23 at 21 03 24
  • The new WordPress integration now works better thanks to the Plugin API
  • Hosting documentation (now at plausible/community-edition) also got an update and now includes a more thorough Google integration guide
  • Even though not present in this release candidate, importing the data between self-hosted and cloud will be available in v2.1.0

Introduction of Community Edition

As of version 2.1.0 this project will split into Plausible Community Edition and Plausible Enterprise Edition. The Community Edition (CE) will remain completely open source under the AGPLv3 license. The Enterprise Edition (EE) will contain extra features that will be published as source-available on Github, but we do not grant rights for anyone else to use, distribute or otherwise exploit these features. Read more here.

As part of this change, we are also rebranding the project. The new logos for CE and EE will be different so as to clarify which version is being referred to or used at any given time.

And finally as a contributor, you will have to sign a Contributor License Agreement (CLA) in order for you PRs to be considered for merging.

Upgrading to v2.1.0-rc.0

⚠️ This guide assumes you are using v2.0.0 ⚠️

Update config

Add a secret key for the new required TOTP_VAULT_KEY environment variable

console

$ openssl rand -base64 32
aihU7k+GSBKbcVFuX9VEPyUhuwlKEomqA94/SQQ0NR4=

plausible-conf.env

  BASE_URL=https://plausible.example.com
  SECRET_KEY_BASE=PkVcxRgQDfQyhPETlog3vvCrj5LdYFSv4ejPEJHJO+i/37w6RZfRjeVCpJayjUjJMfXsNurcv5upPhTRoD3KgQ==
+ TOTP_VAULT_KEY=aihU7k+GSBKbcVFuX9VEPyUhuwlKEomqA94/SQQ0NR4=

This new key is used to encrypt TOTP secrets at rest.

Update images

Update the images used for plausible and plausible_events_db (thank you @lordcris #3817 (comment))

docker-compose.yml

plausible:
- image: plausible/analytics:v2.0.0
+ image: ghcr.io/plausible/community-edition:v2.1.0-rc.0
plausible_events_db:
- image: clickhouse/clickhouse-server:22.6-alpine
+ image: clickhouse/clickhouse-server:23.3.7.5-alpine

and restart the containers

console

$ cd hosting
$ docker compose stop plausible plausible_events_db
$ docker compose rm plausible plausible_events_db
$ docker compose up -d

This will boot up the new version of the app.

Changelog

Following changes have been made since v2.0.0:

Added

  • IP Block List in Site Settings
  • Allow filtering with contains/matches operator for Sources, Browsers and Operating Systems.
  • Allow filtering by multiple custom properties
  • Wildcard and member filtering on the Stats API event:goal property
  • Allow filtering with contains/matches operator for custom properties
  • Add referrers.csv to CSV export
  • Add a new Properties section in the dashboard to break down by custom properties
  • Add custom_props.csv to CSV export (almost the same as the old prop_breakdown.csv, but has different column headers, and includes props for pageviews too, not only custom events)
  • Add referrers.csv to CSV export
  • Improve password validation in registration and password reset forms
  • Adds Gravatar profile image to navbar
  • Enforce email reverification on update
  • Add Plugins API Tokens provisioning UI
  • Add searching sites by domain in /sites view
  • Add last 24h plots to /sites view
  • Add site pinning to /sites view
  • Add support for JSON logger, via LOG_FORMAT=json environment variable
  • Add support for 2FA authentication
  • Add 'browser_versions.csv' to CSV export
  • Add CLICKHOUSE_MAX_BUFFER_SIZE_BYTES env var which defaults to 100000 (100KB)

Removed

  • Removed the nested custom event property breakdown UI when filtering by a goal in Goal Conversions
  • Removed the prop_names returned in the Stats API event:goal breakdown response
  • Removed the prop-breakdown.csv file from CSV export
  • Deprecated CLICKHOUSE_MAX_BUFFER_SIZE

Changed

  • Limit the number of Goal Conversions shown on the dashboard and render a "Details" link when there are more entries to show
  • Show Outbound Links / File Downloads / 404 Pages / Cloaked Links instead of Goal Conversions when filtering by the corresponding goal
  • Require custom properties to be explicitly added from Site Settings > Custom Properties in order for them to show up on the dashboard
  • GA/SC sections moved to new settings: Integrations
  • Replace CLICKHOUSE_MAX_BUFFER_SIZE with CLICKHOUSE_MAX_BUFFER_SIZE_BYTES

Fixed

  • Stop returning custom events in goal breakdown with a pageview goal filter and vice versa
  • Only return (none) values in custom property breakdown for the first page (pagination) of results
  • Fixed weekly/monthly e-mail report rendering issues
  • Fix broken interval selection in the all time view #3110
  • Fixed IPv6 problems in data migration #3179
  • Fixed long URLs display in Outbound Link breakdown view
  • Fixed Sentry reports for ingestion requests #3182
  • Fix breakdown pagination bug in the dashboard details view when filtering by goals
  • Update bot detection (matomo 6.1.4, ua_inspector 3.4.0)
  • Improved the Goal Settings page (search, autcompletion etc.)
  • Log mailer errors #3336
  • Allow custom event timeseries in stats API #3505
  • Fixes for sites with UTF characters in domain #3560
  • Fix crash when using special characters in filter #3634

v2.0.0

12 Jul 10:27
Compare
Choose a tag to compare

The highlights of this release are:

  • more visitor metrics like total visits and views per visit
  • period comparisons [docs] [example]
  • ability to change domains names #2803
  • automatic geolocation database downloads #2362
  • more email adapters support (Mailgun, Mandrill, SendGrid) #2649

Upgrading Plausible Analytics to v2.0

Warning

This guide assumes you are running v1.5.1.
If you are upgrading from an earlier version, you might encounter the error reported (and resolved) in #4779

Warning

Upgrading to v2.0 requires performing a data migration.
Please read these notes until the end before deploying v2.0.0

Ensure you are using a new ClickHouse version

The steps below have been tested with clickhouse/clickhouse-server:22.6-alpine please make sure to upgrade ClickHouse to at least this version.

Here's the excerpt from v1.5 release discussion regarding the ClickHouse upgrade

In your docker-compose.yml update the image used for plausible_events_db to a newer ClickHouse version:

Upgrading ClickHouse to 22.6

plausible_events_db:
- image: yandex/clickhouse-server:21.3.2.5
+ image: clickhouse/clickhouse-server:22.6-alpine

Restart the container

$ docker compose stop plausible plausible_events_db
$ docker compose rm plausible_events_db
$ docker compose up -d

This will boot up the new version of ClickHouse.

Related PR: plausible/community-edition#45


Update image tag

In your docker-compose.yml update the image used for plausible to v2.0.0

plausible:
- image: plausible/analytics:v1.5.1
+ image: plausible/analytics:v2.0.0

and restart the container

$ cd hosting
$ docker compose stop plausible
$ docker compose rm plausible
$ docker compose up -d

This will boot up the new version of the app.

If you open the dashboards now, you wouldn't see any past metrics. This is expected as v2.0 uses the new events_v2 and sessions_v2 tables to store analytics data. We need to perform data migration to copy the data into the new tables.

Run data migration

⚠️ ⚠️ ⚠️

You need enough free disk space available for x2 of the current plausible_events_db's event-data volume size. You can use something like docker system df -v | grep hosting_event-data to check how much space the current volume is occupying.

Connect to the running plausible container and start the migration flow

$ cd hosting
$ docker compose exec plausible bin/plausible rpc Plausible.DataMigration.NumericIDs.run

You can attempt this migration multiple times unless you drop v1 tables.

Drop v1 tables (optional)

Once you verify the migration went well, the old tables can be dropped. It's easiest to use clickhouse-client for this

$ ch hosting
$ docker compose exec plausible_events_db clickhouse-client
:) \c plausible_events_db
:) show tables;
:) drop table events;
:) drop table sessions;

See https://clickhouse.com/docs/en/operations/server-configuration-parameters/settings#max-table-size-to-drop for how to drop tables with more than 50GB of data.

Enable automatic MaxMind GeoLite2 updates (optional)

In your plausible-config.env set MAXMIND_LICENSE_KEY environment variable and get an automatically updated GeoLite2 City geolocation database. The database edition is configurable with MAXMIND_EDITION environment variable and defaults to GeoLite2-City.

- IP_GEOLOCATION_DB=...
+ MAXMIND_LICENSE_KEY=LNpsJCCKPis6XvBP
+ MAXMIND_EDITION=GeoLite2-City

Note that for the changes in plausible-config.env to propagate to the plausible, the container needs to be recreated:

$ docker compose stop plausible
$ docker compose rm plausible
$ docker compose up -d

Also note that using GeoLite2-City edition requires more RAM than using GeoLite2-Country.

Now you can remove any other volumes and services used to download, store, and update geolocation databases.

Changelog

Following changes have been made since v1.5:

Added

  • Add support for with_imported=true in Stats API aggregate endpoint
  • Ability to use '--' instead of '=' sign in the tagged-events classnames
  • 'Last updated X seconds ago' info to 'current visitors' tooltips
  • Add support for more Bamboo adapters, i.e. Bamboo.MailgunAdapter, Bamboo.MandrillAdapter, Bamboo.SendGridAdapter #2649
  • Ability to change domain for existing site (requires numeric IDs data migration, instructions will be provided separately) UI + API (PUT /api/v1/sites)
  • Add LOG_FAILED_LOGIN_ATTEMPTS environment variable to enable failed login attempts logs #2936
  • Add MAILER_NAME environment variable support #2937
  • Add MAILGUN_BASE_URI support for Bamboo.MailgunAdapter #2935
  • Add a landing page for self-hosters #2989
  • Allow optional IPv6 for clickhouse repo #2970

Fixed

  • Fix tracker bug - call callback function even when event is ignored
  • Make goal-filtered CSV export return only unique_conversions timeseries in the 'visitors.csv' file
  • Stop treating page filter as an entry page filter
  • City report showing N/A instead of city names with imported data #2675
  • Empty values for Screen Size, OS and Browser are uniformly replaced with "(not set)"
  • Fix more pageviews with session prop filter than with no filters
  • Cascade delete sent_renewal_notifications table when user is deleted #2549
  • Show appropriate top-stat metric labels on the realtime dashboard when filtering by a goal
  • Fix breakdown API pagination when using event metrics #2562
  • Automatically update all visible dashboard reports in the realtime view
  • Connect via TLS when using HTTPS scheme in ClickHouse URL #2570
  • Add error message in case a transfer to an invited (but not joined) user is requested #2651
  • Fix bug with showing property breakdown with a prop filter
  • Fix bug when combining goal and prop filters #2654
  • Fix broken favicons when domain includes a slash
  • Fix bug when using multiple wildcard goal filters
  • Fix a bug where realtime would fail with imported data
  • Fix a bug where the country name was not shown when filtering through the map

Changed

  • Treat page filter as entry page filter for bounce_rate
  • Reject events with long URIs and data URIs #2536
  • Always show direct traffic in sources reports #2531
  • Stop recording XX and T1 country codes #2556
  • Device type is now determined from the User-Agent instead of window.innerWidth #2711
  • Add padding by default to embedded dashboards so that shadows are not cut off #2744
  • Update the User Agents database (https://github.com/matomo-org/device-detector/releases/tag/6.1.1)
  • Disable registration in self-hosted setups by default #3014

Removed

  • Remove Firewall plug and IP_BLOCKLIST environment variable
  • Remove the ability to collapse the main graph #2627
  • Remove custom_dimension_filter feature flag #2996

v2.0.0-rc.2

08 Jun 04:34
c559370
Compare
Choose a tag to compare
v2.0.0-rc.2 Pre-release
Pre-release

The highlights of this release are:

  • more visitor metrics like total visits and views per visit
  • period comparisons [docs] [example]
  • ability to change domains names #2803
  • automatic geolocation database downloads #2362
  • more email adapters support (Mailgun, Mandrill, SendGrid) #2649

Upgrading Plausible Analytics to v2.0

⚠️ ⚠️ ⚠️

Upgrading to v2.0 requires performing a data migration.
Please read these notes until the end before deploying v2.0.0-rc.2

Ensure you are using a new ClickHouse version

The steps below have been tested with clickhouse/clickhouse-server:22.6-alpine please make sure to upgrade ClickHouse to at least this version.

Here's the excerpt from v1.5 release discussion regarding the ClickHouse upgrade

In your docker-compose.yml update the image used for plausible_events_db to a newer ClickHouse version:

Upgrading ClickHouse to 22.6

plausible_events_db:
- image: yandex/clickhouse-server:21.3.2.5
+ image: clickhouse/clickhouse-server:22.6-alpine

Restart the container

$ docker compose stop plausible plausible_events_db
$ docker compose rm plausible_events_db
$ docker compose up -d

This will boot up the new version of ClickHouse.

Related PR: plausible/community-edition#45


Update image tag

In your docker-compose.yml update the image used for plausible to v2.0.0-rc.2

plausible:
- image: plausible/analytics:v1.5.1
+ image: plausible/analytics:v2.0.0-rc.2

and restart the container

$ cd hosting
$ docker compose stop plausible
$ docker compose rm plausible
$ docker compose up -d

This will boot up the new version of the app.

If you open the dashboards now, you wouldn't see any past metrics. This is expected as v2.0 uses the new events_v2 and sessions_v2 tables to store analytics data. We need to perform data migration to copy the data into the new tables.

Run data migration

⚠️ ⚠️ ⚠️

You need enough free disk space available for x2 of the current plausible_events_db's event-data volume size. You can use something like docker system df -v | grep hosting_event-data to check how much space the current volume is occupying.

Connect to the running plausible container and start the migration flow

$ cd hosting
$ docker compose exec plausible bin/plausible rpc Plausible.DataMigration.NumericIDs.run

You can attempt this migration multiple times unless you drop v1 tables.

Drop v1 tables (optional)

Once you verify the migration went well, the old tables can be dropped. It's easiest to use clickhouse-client for this

$ ch hosting
$ docker compose exec plausible_events_db clickhouse-client
:) \c plausible_events_db
:) show tables;
:) drop table events;
:) drop table sessions;

See https://clickhouse.com/docs/en/operations/server-configuration-parameters/settings#max-table-size-to-drop for how to drop tables with more than 50GB of data.

Enable automatic MaxMind GeoLite2 updates (optional)

In your plausible-config.env set MAXMIND_LICENSE_KEY environment variable and get an automatically updated GeoLite2 City geolocation database. The database edition is configurable with MAXMIND_EDITION environment variable and defaults to GeoLite2-City.

- IP_GEOLOCATION_DB=...
+ MAXMIND_LICENSE_KEY=LNpsJCCKPis6XvBP
+ MAXMIND_EDITION=GeoLite2-City

Note that for the changes in plausible-config.env to propagate to the plausible, the container needs to be recreated:

$ docker compose stop plausible
$ docker compose rm plausible
$ docker compose up -d

Also note that using GeoLite2-City edition requires more RAM than using GeoLite2-Country.

Now you can remove any other volumes and services used to download, store, and update geolocation databases.

Changelog

Following changes have been made since v1.5:

Added

  • Add support for with_imported=true in Stats API aggregate endpoint
  • Ability to use '--' instead of '=' sign in the tagged-events classnames
  • 'Last updated X seconds ago' info to 'current visitors' tooltips
  • Add support for more Bamboo adapters, i.e. Bamboo.MailgunAdapter, Bamboo.MandrillAdapter, Bamboo.SendGridAdapter #2649
  • Ability to change domain for existing site (requires numeric IDs data migration, instructions will be provided separately) UI + API (PUT /api/v1/sites)
  • Add LOG_FAILED_LOGIN_ATTEMPTS environment variable to enable failed login attempts logs #2936
  • Add MAILER_NAME environment variable support #2937
  • Add MAILGUN_BASE_URI support for Bamboo.MailgunAdapter #2935
  • Add a landing page for self-hosters #2989

Fixed

  • Fix tracker bug - call callback function even when event is ignored
  • Make goal-filtered CSV export return only unique_conversions timeseries in the 'visitors.csv' file
  • Stop treating page filter as an entry page filter
  • City report showing N/A instead of city names with imported data #2675
  • Empty values for Screen Size, OS and Browser are uniformly replaced with "(not set)"
  • Fix more pageviews with session prop filter than with no filters
  • Cascade delete sent_renewal_notifications table when user is deleted #2549
  • Show appropriate top-stat metric labels on the realtime dashboard when filtering by a goal
  • Fix breakdown API pagination when using event metrics #2562
  • Automatically update all visible dashboard reports in the realtime view
  • Connect via TLS when using HTTPS scheme in ClickHouse URL #2570
  • Add error message in case a transfer to an invited (but not joined) user is requested #2651
  • Fix bug with showing property breakdown with a prop filter
  • Fix bug when combining goal and prop filters #2654
  • Fix broken favicons when domain includes a slash

Changed

  • Treat page filter as entry page filter for bounce_rate
  • Reject events with long URIs and data URIs #2536
  • Always show direct traffic in sources reports #2531
  • Stop recording XX and T1 country codes #2556
  • Device type is now determined from the User-Agent instead of window.innerWidth #2711
  • Add padding by default to embedded dashboards so that shadows are not cut off #2744
  • Update the User Agents database (https://github.com/matomo-org/device-detector/releases/tag/6.1.1)

Removed

  • Remove Firewall plug and IP_BLOCKLIST environment variable
  • Remove the ability to collapse the main graph #2627
  • Remove custom_dimension_filter feature flag #2996

v2.0.0-rc.1

26 May 11:53
40e95ff
Compare
Choose a tag to compare
v2.0.0-rc.1 Pre-release
Pre-release

The highlights of this release are:

  • more visitor metrics like total visits and views per visit
  • period comparisons [docs] [example]
  • ability to change domains names #2803
  • automatic geolocation database downloads #2362
  • more email adapters support (Mailgun, Mandrill, SendGrid) #2649

Upgrading Plausible Analytics to v2.0

⚠️ ⚠️ ⚠️

Upgrading to v2.0 requires performing a data migration.
Please read these notes until the end before deploying v2.0.0-rc.1

Ensure you are using a new ClickHouse version

The steps below have been tested with clickhouse/clickhouse-server:22.6-alpine please make sure to upgrade ClickHouse to at least this version.

Here's the excerpt from v1.5 release discussion regarding the ClickHouse upgrade

In your docker-compose.yml update the image used for plausible_events_db to a newer ClickHouse version:

Upgrading ClickHouse to 22.6

plausible_events_db:
- image: yandex/clickhouse-server:21.3.2.5
+ image: clickhouse/clickhouse-server:22.6-alpine

Restart the container

$ docker compose stop plausible plausible_events_db
$ docker compose rm plausible_events_db
$ docker compose up -d

This will boot up the new version of ClickHouse.

Related PR: plausible/community-edition#45


Update image tag

In your docker-compose.yml update the image used for plausible to v2.0.0-rc.1

plausible:
- image: plausible/analytics:v1.5.1
+ image: plausible/analytics:v2.0.0-rc.1

and restart the container

$ cd hosting
$ docker compose stop plausible
$ docker compose rm plausible
$ docker compose up -d

This will boot up the new version of the app.

If you open the dashboards now, you wouldn't see any past metrics. This is expected as v2.0 uses the new events_v2 and sessions_v2 tables to store analytics data. We need to perform data migration to copy the data into the new tables.

Run data migration

⚠️ ⚠️ ⚠️

You need enough free disk space available for x2 of the current plausible_events_db's event-data volume size. You can use something like docker system df -v | grep hosting_event-data to check how much space the current volume is occupying.

Connect to the running plausible container and start the migration flow

$ cd hosting
$ docker compose exec plausible bin/plausible rpc Plausible.DataMigration.NumericIDs.run

You can attempt this migration multiple times unless you drop v1 tables.

Drop v1 tables (optional)

Once you verify the migration went well, the old tables can be dropped. It's easiest to use clickhouse-client for this

$ ch hosting
$ docker compose exec plausible_events_db clickhouse-client
:) \c plausible_events_db
:) show tables;
:) drop table events;
:) drop table sessions;

See https://clickhouse.com/docs/en/operations/server-configuration-parameters/settings#max-table-size-to-drop for how to drop tables with more than 50GB of data.

Enable automatic MaxMind GeoLite2 updates (optional)

In your plausible-config.env set MAXMIND_LICENSE_KEY environment variable and get an automatically updated GeoLite2 City geolocation database. The database edition is configurable with MAXMIND_EDITION environment variable and defaults to GeoLite2-City.

- IP_GEOLOCATION_DB=...
+ MAXMIND_LICENSE_KEY=LNpsJCCKPis6XvBP
+ MAXMIND_EDITION=GeoLite2-City

Note that for the changes in plausible-config.env to propagate to the plausible, the container needs to be recreated:

$ docker compose stop plausible
$ docker compose rm plausible
$ docker compose up -d

Also note that using GeoLite2-City edition requires more RAM than using GeoLite2-Country.

Now you can remove any other volumes and services used to download, store, and update geolocation databases.

Changelog

Following changes have been made since v1.5:

Added

  • Add support for with_imported=true in Stats API aggregate endpoint
  • Ability to use '--' instead of '=' sign in the tagged-events classnames
  • 'Last updated X seconds ago' info to 'current visitors' tooltips
  • Add support for more Bamboo adapters, i.e. Bamboo.MailgunAdapter, Bamboo.MandrillAdapter, Bamboo.SendGridAdapter #2649
  • Ability to change domain for existing site (requires numeric IDs data migration, instructions will be provided separately) UI + API (PUT /api/v1/sites)
  • Add LOG_FAILED_LOGIN_ATTEMPTS environment variable to enable failed login attempts logs #2936
  • Add MAILER_NAME environment variable support #2937
  • Add MAILGUN_BASE_URI support for Bamboo.MailgunAdapter #2935

Fixed

  • Fix tracker bug - call callback function even when event is ignored
  • Make goal-filtered CSV export return only unique_conversions timeseries in the 'visitors.csv' file
  • Stop treating page filter as an entry page filter
  • City report showing N/A instead of city names with imported data #2675
  • Empty values for Screen Size, OS and Browser are uniformly replaced with "(not set)"
  • Fix more pageviews with session prop filter than with no filters
  • Cascade delete sent_renewal_notifications table when user is deleted #2549
  • Show appropriate top-stat metric labels on the realtime dashboard when filtering by a goal
  • Fix breakdown API pagination when using event metrics #2562
  • Automatically update all visible dashboard reports in the realtime view
  • Connect via TLS when using HTTPS scheme in ClickHouse URL #2570
  • Add error message in case a transfer to an invited (but not joined) user is requested #2651
  • Fix bug with showing property breakdown with a prop filter
  • Fix bug when combining goal and prop filters #2654
  • Fix broken favicons when domain includes a slash

Changed

  • Treat page filter as entry page filter for bounce_rate
  • Reject events with long URIs and data URIs #2536
  • Always show direct traffic in sources reports #2531
  • Stop recording XX and T1 country codes #2556
  • Device type is now determined from the User-Agent instead of window.innerWidth #2711
  • Add padding by default to embedded dashboards so that shadows are not cut off #2744
  • Update the User Agents database (https://github.com/matomo-org/device-detector/releases/tag/6.1.1)

Removed

  • Remove Firewall plug and IP_BLOCKLIST environment variable
  • Remove the ability to collapse the main graph #2627