v2.1.0
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
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
[email protected]
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
andconversion_rate
tovisitors.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
byoperating_system
in Stats API breakdown - Add
operating_system_versions.csv
into the CSV export - Display
Total visitors
,Conversions
, andCR
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 oldprop_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 to100000
(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 APIevent: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
andexit_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
withCLICKHOUSE_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
andexit_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 abrowser_versions
breakdown - Calculate
conversion_rate
percentage change in the same way likebounce_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 the container with arbitrary UID #2986
- Fix
width=manual
in embedded dashboards #3910 - Fix URL escaping when pipes are used in UTM tags #3930