Plausible Analytics is an open-source, privacy-first alternative to Google Analytics, offering lightweight cookieless tracking with a simple dashboard.
A digital agency deploying client websites faces a frustrating dilemma between bulky tracking scripts and intrusive cookie consent banners that degrade conversion rates. Plausible Analytics replaces multi-layer tracking platforms with a single lightweight script and a clean overview dashboard. It records essential web traffic and custom events without setting browser cookies or collecting personal identifiers, giving teams actionable metrics right away.
Google Analytics 4 centers on the Google advertising ecosystem, requiring complex setup through Google Tag Manager, audience synchronization with Google Ads, and consent mode configurations for cookie laws. This architecture forces site owners to maintain intricate tag containers and debug banner triggers just to view referral traffic. Plausible Analytics strips out this advertising plumbing. It measures pageviews, referrers, devices, and custom conversion goals through a tiny script that loads in milliseconds, operating cleanly without tag managers or consent prompts.
The operational contrast extends to third-party tooling and client reporting. Where Google Analytics buries standard data under nested exploration menus and requires Looker Studio connectors for shareable summaries, Plausible connects directly with everyday workflows. A native Google Search Console integration surfaces keyword search rankings on the primary dashboard, while automated email and Slack notifications deliver scheduled traffic summaries to team channels. Dedicated Stats and Events APIs let engineering teams ingest backend application events or pipe aggregated metrics into custom portals, avoiding the setup overhead of enterprise data pipelines.
Can Plausible Analytics replace Google Analytics for standard website tracking? Yes. Plausible tracks visitor counts, pageviews, referral channels, UTM campaigns, and conversion goals, providing a clean replacement for teams that do not require Google Ads audience remarketing or multi-touch attribution models.
Does Plausible Analytics require a cookie consent banner under GDPR? No. Because Plausible does not use cookies, store persistent device identifiers, or collect personal data, European privacy regulations do not require displaying a cookie banner for its default configuration.
Can small teams self-host Plausible Analytics on their own servers? Yes. The Community Edition provides Docker configurations for on-premise deployments, though maintaining the underlying ClickHouse and PostgreSQL databases requires basic systems administration skills.
Plausible Analytics is an outstanding choice for agencies and small development teams that demand fast page loads and clear traffic metrics without cookie banners, though organizations tied to Google ad retargeting will miss native advertising links. Continuous maintenance and the AGPL-3.0 code terms safeguard software autonomy for self-hosters while requiring commercial forks to keep their core enhancements open.
We started this exact setup from scratch in a clean Linux machine on Nov 1, 2026 and checked it through Plausible Analytics's own API: every check passed. Recipes are re-checked regularly and removed if they stop working.
mkdir -p plausible-analytics && cd plausible-analytics
curl -fsSL https://open-source.store/tools/plausible-analytics/compose.yml -o compose.ymlcat > .env <<EOF
BASE_URL=http://localhost:8000
SECRET_KEY_BASE=$(openssl rand -hex 32)
POSTGRES_PASSWORD=$(openssl rand -hex 12)
EOFBASE_URL — Public URL where Plausible is reached (e.g. http://<your-server>:8000 or https://plausible.example.com); set this to your server's public URL.SECRET_KEY_BASE — Random 64-character key that signs sessions and cookies. Generated above; keep it secret.POSTGRES_PASSWORD — Password of the bundled PostgreSQL database. Generated above; keep it secret.docker compose up -dservices:
plausible_db:
image: postgres:16-alpine
restart: always
volumes:
- db-data:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
start_period: 1m
plausible_events_db:
image: clickhouse/clickhouse-server:24.12-alpine
restart: always
volumes:
- event-data:/var/lib/clickhouse
- event-logs:/var/log/clickhouse-server
configs:
- source: clickhouse_logs
target: /etc/clickhouse-server/config.d/logs.xml
- source: clickhouse_ipv4_only
target: /etc/clickhouse-server/config.d/ipv4-only.xml
- source: clickhouse_low_resources
target: /etc/clickhouse-server/config.d/low-resources.xml
- source: clickhouse_default_profile_low_resources_overrides
target: /etc/clickhouse-server/users.d/default-profile-low-resources-overrides.xml
ulimits:
nofile:
soft: 262144
hard: 262144
environment:
- CLICKHOUSE_SKIP_USER_SETUP=1
healthcheck:
test:
[
"CMD-SHELL",
"wget --no-verbose --tries=1 -O - http://127.0.0.1:8123/ping || exit 1",
]
start_period: 1m
plausible:
image: ghcr.io/plausible/community-edition:v3.2.1
restart: always
command: sh -c "/entrypoint.sh db createdb && /entrypoint.sh db migrate && /entrypoint.sh run"
depends_on:
plausible_db:
condition: service_healthy
plausible_events_db:
condition: service_healthy
volumes:
- plausible-data:/var/lib/plausible
ports:
- "8000:8000"
ulimits:
nofile:
soft: 65535
hard: 65535
environment:
- TMPDIR=/var/lib/plausible/tmp
- BASE_URL=${BASE_URL}
- SECRET_KEY_BASE=${SECRET_KEY_BASE}
- DATABASE_URL=postgres://postgres:${POSTGRES_PASSWORD}@plausible_db:5432/plausible_db
- CLICKHOUSE_DATABASE_URL=http://plausible_events_db:8123/plausible_events_db
healthcheck:
test: ["CMD-SHELL", "wget -q -O /dev/null http://127.0.0.1:8000/api/health || exit 1"]
interval: 10s
timeout: 5s
retries: 6
start_period: 1m
configs:
clickhouse_logs:
content: |
<clickhouse>
<logger>
<level>warning</level>
<console>true</console>
</logger>
<query_log replace="1">
<database>system</database>
<table>query_log</table>
<flush_interval_milliseconds>7500</flush_interval_milliseconds>
<engine>
ENGINE = MergeTree
PARTITION BY event_date
ORDER BY (event_time)
TTL event_date + interval 30 day
SETTINGS ttl_only_drop_parts=1
</engine>
</query_log>
<metric_log remove="remove" />
<asynchronous_metric_log remove="remove" />
<query_thread_log remove="remove" />
<text_log remove="remove" />
<trace_log remove="remove" />
<session_log remove="remove" />
<part_log remove="remove" />
</clickhouse>
clickhouse_ipv4_only:
content: |
<clickhouse>
<listen_host>0.0.0.0</listen_host>
</clickhouse>
clickhouse_low_resources:
content: |
<clickhouse>
<mark_cache_size>524288000</mark_cache_size>
</clickhouse>
clickhouse_default_profile_low_resources_overrides:
content: |
<clickhouse>
<profiles>
<default>
<max_threads>1</max_threads>
<max_block_size>8192</max_block_size>
<max_download_threads>1</max_download_threads>
<input_format_parallel_parsing>0</input_format_parallel_parsing>
<output_format_parallel_formatting>0</output_format_parallel_formatting>
</default>
</profiles>
</clickhouse>
volumes:
db-data:
event-data:
event-logs:
plausible-data:
Lint, codegen, breaking-change checks and dependency management in one Git-native CLI. Open source, no registry lock-in.
Show that Plausible Analytics is listed as an open-source alternative. Paste into your README:
Ubuntu 24.04 · Apple container, Docker 29.1.3, Compose 2.40.3+ds1-0ubuntu1~24.04.1. Images pulled in 267 s: ghcr.io/plausible/community-edition:v3.2.1, postgres:16-alpine, clickhouse/clickhouse-server:24.12-alpine.
Based on the upstream setup. Official CE compose. ClickHouse config files inlined as compose configs, port 8000 published, database password moved to .env, app healthcheck added.
plausible-1 | 2026-11-01T07:58:44.493802260Z
plausible-1 | 2026-11-01T07:58:44.493803802Z Got value:
plausible-1 | 2026-11-01T07:58:44.493805302Z
plausible-1 | 2026-11-01T07:58:44.493806718Z nil
plausible-1 | 2026-11-01T07:58:44.493808302Z
plausible-1 | 2026-11-01T07:58:44.493809718Z (elixir 1.19.4) lib/enum.ex:5: Enumerable.impl_for!/1
plausible-1 | 2026-11-01T07:58:44.493811302Z (elixir 1.19.4) lib/enum.ex:170: Enumerable.reduce/3
plausible-1 | 2026-11-01T07:58:44.493834260Z (elixir 1.19.4) lib/enum.ex:4570: Enum.map/2
plausible-1 | 2026-11-01T07:58:44.493836135Z (plausible 0.0.1) lib/plausible/prom_ex/striped_peep.ex:11: Plausible.PromEx.StripedPeep.scrape/1
plausible-1 | 2026-11-01T07:58:44.493837718Z (prom_ex 1.11.0) lib/prom_ex/plug.ex:58: PromEx.Plug.call/2
plausible-1 | 2026-11-01T07:58:44.493839010Z (plausible 0.0.1) lib/plausible_web/endpoint.ex:1: PlausibleWeb.Endpoint.plug_builder_call/2
plausible-1 | 2026-11-01T07:58:44.493840468Z (plausible 0.0.1) lib/plausible_web/endpoint.ex:1: PlausibleWeb.Endpoint."call (overridable 3)"/2
plausible-1 | 2026-11-01T07:58:44.493842093Z (plausible 0.0.1) lib/plausible_web/endpoint.ex:1: PlausibleWeb.Endpoint.call/2
plausible-1 | 2026-11-01T07:58:44.502692468Z 07:58:44.496 [error] #PID<0.29601.0> running PlausibleWeb.Endpoint (connection #PID<0.29595.0>, stream id 1) terminated
plausible-1 | 2026-11-01T07:58:44.502887135Z Server: oss-verify.example:80 (http)
plausible-1 | 2026-11-01T07:58:44.502890052Z Request: GET /metrics
plausible-1 | 2026-11-01T07:58:44.502891302Z ** (exit) an exception was raised:
plausible-1 | 2026-11-01T07:58:44.502892510Z ** (Protocol.UndefinedError) protocol Enumerable not implemented for Atom. This protocol is implemented for: Ch.Stream, DBConnection.PrepareStream, DBConnection.Stream, Date.Range, Ecto.Adapters.SQL.Stream, File.Stream, Floki.HTMLTree, Function, GenEvent.Stream, HashDict, HashSet, IO.Stream, Jason.OrderedObject, LazyHTML, List, Map, MapSet, Phoenix.LiveView.LiveStream, Postgrex.Stream, Range, Req.Response.Async, Scrivener.Page, Stream, Timex.Interval
plausible-1 | 2026-11-01T07:58:44.502894552Z
plausible-1 | 2026-11-01T07:58:44.502895802Z Got value:
plausible-1 | 2026-11-01T07:58:44.502896968Z
plausible-1 | 2026-11-01T07:58:44.502897927Z nil
plausible-1 | 2026-11-01T07:58:44.502898927Z
plausible-1 | 2026-11-01T07:58:44.502899885Z (elixir 1.19.4) lib/enum.ex:5: Enumerable.impl_for!/1
plausible-1 | 2026-11-01T07:58:44.502901260Z (elixir 1.19.4) lib/enum.ex:170: Enumerable.reduce/3
plausible-1 | 2026-11-01T07:58:44.502902343Z (elixir 1.19.4) lib/enum.ex:4570: Enum.map/2
plausible-1 | 2026-11-01T07:58:44.502903427Z (plausible 0.0.1) lib/plausible/prom_ex/striped_peep.ex:11: Plausible.PromEx.StripedPeep.scrape/1
plausible-1 | 2026-11-01T07:58:44.502904635Z (prom_ex 1.11.0) lib/prom_ex/plug.ex:58: PromEx.Plug.call/2
plausible-1 | 2026-11-01T07:58:44.502905718Z (plausible 0.0.1) lib/plausible_web/endpoint.ex:1: PlausibleWeb.Endpoint.plug_builder_call/2
plausible-1 | 2026-11-01T07:58:44.502906927Z (plausible 0.0.1) lib/plausible_web/endpoint.ex:1: PlausibleWeb.Endpoint."call (overridable 3)"/2
plausible-1 | 2026-11-01T07:58:44.502908302Z (plausible 0.0.1) lib/plausible_web/endpoint.ex:1: PlausibleWeb.Endpoint.call/2
plausible-1 | 2026-11-01T07:58:48.164349887Z 07:58:48.163 request_id=GOPc30eqYct2CdwABM-h [notice] Session transfer attempted?: true
plausible-1 | 2026-11-01T07:58:48.354409720Z 07:58:48.353 [notice] Elixir.Plausible.Cache.Warmer running &Plausible.Shield.HostnameRuleCache.refresh_updated_recently/1 on hostname_allowlist_by_domain...
plausible-1 | 2026-11-01T07:58:58.209378501Z 07:58:58.209 request_id=GOPc4Z4VLAZjergABZiC [notice] Session transfer attempted?: true
plausible-1 | 2026-11-01T07:59:02.516299253Z 07:59:02.514 [error] #PID<0.33867.0> running PlausibleWeb.Endpoint (connection #PID<0.33775.0>, stream id 3) terminated
plausible-1 | 2026-11-01T07:59:02.516403545Z Server: oss-verify.example:80 (http)
plausible-1 | 2026-11-01T07:59:02.516404628Z Request: GET /metrics
plausible-1 | 2026-11-01T07:59:02.516405253Z ** (exit) an exception was raised:
plausible-1 | 2026-11-01T07:59:02.516405878Z ** (Protocol.UndefinedError) protocol Enumerable not implemented for Atom. This protocol is implemented for: Ch.Stream, DBConnection.PrepareStream, DBConnection.Stream, Date.Range, Ecto.Adapters.SQL.Stream, File.Stream, Floki.HTMLTree, Function, GenEvent.Stream, HashDict, HashSet, IO.Stream, Jason.OrderedObject, LazyHTML, List, Map, MapSet, Phoenix.LiveView.LiveStream, Postgrex.Stream, Range, Req.Response.Async, Scrivener.Page, Stream, Timex.Interval
plausible-1 | 2026-11-01T07:59:02.516407045Z
plausible-1 | 2026-11-01T07:59:02.516407545Z Got value:
plausible-1 | 2026-11-01T07:59:02.516408045Z
plausible-1 | 2026-11-01T07:59:02.516408503Z nil
plausible-1 | 2026-11-01T07:59:02.516408962Z
plausible-1 | 2026-11-01T07:59:02.516409462Z (elixir 1.19.4) lib/enum.ex:5: Enumerable.impl_for!/1
plausible-1 | 2026-11-01T07:59:02.516410003Z (elixir 1.19.4) lib/enum.ex:170: Enumerable.reduce/3
plausible-1 | 2026-11-01T07:59:02.516410503Z (elixir 1.19.4) lib/enum.ex:4570: Enum.map/2
plausible-1 | 2026-11-01T07:59:02.516411045Z (plausible 0.0.1) lib/plausible/prom_ex/striped_peep.ex:11: Plausible.PromEx.StripedPeep.scrape/1
plausible-1 | 2026-11-01T07:59:02.516411628Z (prom_ex 1.11.0) lib/prom_ex/plug.ex:58: PromEx.Plug.call/2
plausible-1 | 2026-11-01T07:59:02.516412170Z (plausible 0.0.1) lib/plausible_web/endpoint.ex:1: PlausibleWeb.Endpoint.plug_builder_call/2
plausible_events_db-1 | 2026-11-01T07:56:32.105813382Z /entrypoint.sh: explicitly skip changing user 'default'
plausible_events_db-1 | 2026-11-01T07:56:32.116379840Z Processing configuration file '/etc/clickhouse-server/config.xml'.
plausible_events_db-1 | 2026-11-01T07:56:32.116797632Z Merging configuration file '/etc/clickhouse-server/config.d/docker_related_config.xml'.
plausible_events_db-1 | 2026-11-01T07:56:32.116863174Z Merging configuration file '/etc/clickhouse-server/config.d/ipv4-only.xml'.
plausible_events_db-1 | 2026-11-01T07:56:32.116896799Z Merging configuration file '/etc/clickhouse-server/config.d/logs.xml'.
plausible_events_db-1 | 2026-11-01T07:56:32.116960590Z Merging configuration file '/etc/clickhouse-server/config.d/low-resources.xml'.
plausible_events_db-1 | 2026-11-01T07:56:32.119477382Z Logging warning to /var/log/clickhouse-server/clickhouse-server.log
plausible_events_db-1 | 2026-11-01T07:56:32.122245215Z Logging errors to /var/log/clickhouse-server/clickhouse-server.err.log
plausible_events_db-1 | 2026-11-01T07:56:32.171219382Z 2026.11.01 07:56:32.171140 [ 1 ] {} <Warning> Application: Integrity check of the executable skipped because the reference checksum could not be read.
plausible_events_db-1 | 2026-11-01T07:56:32.207427424Z 2026.11.01 07:56:32.205965 [ 1 ] {} <Warning> Access(local_directory): File /var/lib/clickhouse/access/users.list doesn't exist
plausible_events_db-1 | 2026-11-01T07:56:32.207465465Z 2026.11.01 07:56:32.207452 [ 1 ] {} <Warning> Access(local_directory): Recovering lists in directory /var/lib/clickhouse/access/
plausible_events_db-1 | 2026-11-01T07:56:32.212087674Z 2026.11.01 07:56:32.209458 [ 1 ] {} <Warning> Context: Delay accounting is not enabled, OSIOWaitMicroseconds will not be gathered. You can enable it using `echo 1 > /proc/sys/kernel/task_delayacct` or by using sysctl.
plausible_events_db-1 | 2026-11-01T07:56:37.918336176Z 2026.11.01 07:56:37.918199 [ 72 ] {} <Error> DynamicQueryHandler: Code: 81. DB::Exception: Database plausible_events_db does not exist. (UNKNOWN_DATABASE), Stack trace (when copying this message, always include the lines below):
plausible_events_db-1 | 2026-11-01T07:56:37.918347968Z
plausible_events_db-1 | 2026-11-01T07:56:37.918348801Z 0. DB::Exception::Exception(DB::Exception::MessageMasked&&, int, bool) @ 0x000000000c138f44
plausible_events_db-1 | 2026-11-01T07:56:37.918349551Z 1. DB::Exception::Exception(PreformattedMessage&&, int) @ 0x0000000007d56e3c
plausible_events_db-1 | 2026-11-01T07:56:37.918350176Z 2. DB::Exception::Exception<String>(int, FormatStringHelperImpl<std::type_identity<String>::type>, String&&) @ 0x0000000007d569f8
plausible_events_db-1 | 2026-11-01T07:56:37.918350926Z 3. DB::DatabaseCatalog::assertDatabaseExists(String const&) const @ 0x000000000ffc9be4
plausible_events_db-1 | 2026-11-01T07:56:37.918351551Z 4. DB::Context::setCurrentDatabase(String const&) @ 0x000000000fee60d8
plausible_events_db-1 | 2026-11-01T07:56:37.918352135Z 5. DB::HTTPHandler::processQuery(DB::HTTPServerRequest&, DB::HTMLForm&, DB::HTTPServerResponse&, DB::HTTPHandler::Output&, std::optional<DB::CurrentThread::QueryScope>&, StrongTypedef<unsigned long, ProfileEvents::EventTag> const&) @ 0x00000000117fb86c
plausible_events_db-1 | 2026-11-01T07:56:37.918353093Z 6. DB::HTTPHandler::handleRequest(DB::HTTPServerRequest&, DB::HTTPServerResponse&, StrongTypedef<unsigned long, ProfileEvents::EventTag> const&) @ 0x00000000117ffcfc
plausible_events_db-1 | 2026-11-01T07:56:37.918353760Z 7. DB::HTTPServerConnection::run() @ 0x0000000011890174
plausible_events_db-1 | 2026-11-01T07:56:37.918361176Z 8. Poco::Net::TCPServerConnection::start() @ 0x000000001417f598
plausible_events_db-1 | 2026-11-01T07:56:37.918361968Z 9. Poco::Net::TCPServerDispatcher::run() @ 0x000000001417fa74
plausible_events_db-1 | 2026-11-01T07:56:37.918362510Z 10. Poco::PooledThread::run() @ 0x000000001414a4d8
plausible_events_db-1 | 2026-11-01T07:56:37.918363010Z 11. Poco::ThreadImpl::runnableEntry(void*) @ 0x0000000014148910
plausible_events_db-1 | 2026-11-01T07:56:37.918363551Z 12. ? @ 0x000000000007d5c8
plausible_events_db-1 | 2026-11-01T07:56:37.918364051Z 13. ? @ 0x00000000000e5edc
plausible_events_db-1 | 2026-11-01T07:56:37.918364551Z (version 24.12.6.70 (official build))
plausible_events_db-1 | 2026-11-01T07:56:37.918594426Z 2026.11.01 07:56:37.918567 [ 71 ] {} <Error> DynamicQueryHandler: Code: 81. DB::Exception: Database plausible_events_db does not exist. (UNKNOWN_DATABASE), Stack trace (when copying this message, always include the lines below):
plausible_events_db-1 | 2026-11-01T07:56:37.918598718Z
plausible_events_db-1 | 2026-11-01T07:56:37.918599301Z 0. DB::Exception::Exception(DB::Exception::MessageMasked&&, int, bool) @ 0x000000000c138f44
plausible_events_db-1 | 2026-11-01T07:56:37.918599968Z 1. DB::Exception::Exception(PreformattedMessage&&, int) @ 0x0000000007d56e3c
plausible_events_db-1 | 2026-11-01T07:56:37.918600593Z 2. DB::Exception::Exception<String>(int, FormatStringHelperImpl<std::type_identity<String>::type>, String&&) @ 0x0000000007d569f8
plausible_events_db-1 | 2026-11-01T07:56:37.918601260Z 3. DB::DatabaseCatalog::assertDatabaseExists(String const&) const @ 0x000000000ffc9be4
plausible_events_db-1 | 2026-11-01T07:56:37.918601885Z 4. DB::Context::setCurrentDatabase(String const&) @ 0x000000000fee60d8
plausible-1 | 2026-11-01T07:59:02.516412795Z (plausible 0.0.1) lib/plausible_web/endpoint.ex:1: PlausibleWeb.Endpoint."call (overridable 3)"/2
plausible-1 | 2026-11-01T07:59:02.516413503Z (plausible 0.0.1) lib/plausible_web/endpoint.ex:1: PlausibleWeb.Endpoint.call/2
plausible-1 | 2026-11-01T07:59:02.520170378Z 07:59:02.519 [error] #PID<0.33887.0> running PlausibleWeb.Endpoint (connection #PID<0.33798.0>, stream id 3) terminated
plausible-1 | 2026-11-01T07:59:02.520178087Z Server: oss-verify.example:80 (http)
plausible-1 | 2026-11-01T07:59:02.520178795Z Request: GET /metrics
plausible-1 | 2026-11-01T07:59:02.520179295Z ** (exit) an exception was raised:
plausible-1 | 2026-11-01T07:59:02.520179920Z ** (Protocol.UndefinedError) protocol Enumerable not implemented for Atom. This protocol is implemented for: Ch.Stream, DBConnection.PrepareStream, DBConnection.Stream, Date.Range, Ecto.Adapters.SQL.Stream, File.Stream, Floki.HTMLTree, Function, GenEvent.Stream, HashDict, HashSet, IO.Stream, Jason.OrderedObject, LazyHTML, List, Map, MapSet, Phoenix.LiveView.LiveStream, Postgrex.Stream, Range, Req.Response.Async, Scrivener.Page, Stream, Timex.Interval
plausible-1 | 2026-11-01T07:59:02.520180837Z
plausible-1 | 2026-11-01T07:59:02.520181337Z Got value:
plausible-1 | 2026-11-01T07:59:02.520181837Z
plausible-1 | 2026-11-01T07:59:02.520182295Z nil
plausible-1 | 2026-11-01T07:59:02.520182795Z
plausible-1 | 2026-11-01T07:59:02.520189628Z (elixir 1.19.4) lib/enum.ex:5: Enumerable.impl_for!/1
plausible-1 | 2026-11-01T07:59:02.520190295Z (elixir 1.19.4) lib/enum.ex:170: Enumerable.reduce/3
plausible-1 | 2026-11-01T07:59:02.520190837Z (elixir 1.19.4) lib/enum.ex:4570: Enum.map/2
plausible-1 | 2026-11-01T07:59:02.520191378Z (plausible 0.0.1) lib/plausible/prom_ex/striped_peep.ex:11: Plausible.PromEx.StripedPeep.scrape/1
plausible-1 | 2026-11-01T07:59:02.520191962Z (prom_ex 1.11.0) lib/prom_ex/plug.ex:58: PromEx.Plug.call/2
plausible-1 | 2026-11-01T07:59:02.520192503Z (plausible 0.0.1) lib/plausible_web/endpoint.ex:1: PlausibleWeb.Endpoint.plug_builder_call/2
plausible-1 | 2026-11-01T07:59:02.520193170Z (plausible 0.0.1) lib/plausible_web/endpoint.ex:1: PlausibleWeb.Endpoint."call (overridable 3)"/2
plausible-1 | 2026-11-01T07:59:02.520193837Z (plausible 0.0.1) lib/plausible_web/endpoint.ex:1: PlausibleWeb.Endpoint.call/2
plausible-1 | 2026-11-01T07:59:03.348366504Z 07:59:03.347 [notice] Elixir.Plausible.Cache.Warmer running &Plausible.Shield.IPRuleCache.refresh_updated_recently/1 on ip_blocklist_by_domain...
plausible-1 | 2026-11-01T07:59:03.351615087Z 07:59:03.351 [notice] Elixir.Plausible.Cache.Warmer running &Plausible.Shield.CountryRuleCache.refresh_updated_recently/1 on country_blocklist_by_domain...
plausible-1 | 2026-11-01T07:59:03.354593421Z 07:59:03.354 [notice] Elixir.Plausible.Cache.Warmer running &Plausible.Shield.PageRuleCache.refresh_updated_recently/1 on page_blocklist_by_domain...
plausible-1 | 2026-11-01T07:59:08.249735006Z 07:59:08.249 request_id=GOPc4_SRVLTPpL4ABkjy [notice] Session transfer attempted?: true
plausible_events_db-1 | 2026-11-01T07:56:37.918602551Z 5. DB::HTTPHandler::processQuery(DB::HTTPServerRequest&, DB::HTMLForm&, DB::HTTPServerResponse&, DB::HTTPHandler::Output&, std::optional<DB::CurrentThread::QueryScope>&, StrongTypedef<unsigned long, ProfileEvents::EventTag> const&) @ 0x00000000117fb86c
plausible_events_db-1 | 2026-11-01T07:56:37.918603343Z 6. DB::HTTPHandler::handleRequest(DB::HTTPServerRequest&, DB::HTTPServerResponse&, StrongTypedef<unsigned long, ProfileEvents::EventTag> const&) @ 0x00000000117ffcfc
plausible_events_db-1 | 2026-11-01T07:56:37.918604010Z 7. DB::HTTPServerConnection::run() @ 0x0000000011890174
plausible_events_db-1 | 2026-11-01T07:56:37.918604510Z 8. Poco::Net::TCPServerConnection::start() @ 0x000000001417f598
plausible_events_db-1 | 2026-11-01T07:56:37.918605010Z 9. Poco::Net::TCPServerDispatcher::run() @ 0x000000001417fa74
plausible_events_db-1 | 2026-11-01T07:56:37.918605551Z 10. Poco::PooledThread::run() @ 0x000000001414a4d8
plausible_events_db-1 | 2026-11-01T07:56:37.918606051Z 11. Poco::ThreadImpl::runnableEntry(void*) @ 0x0000000014148910
plausible_events_db-1 | 2026-11-01T07:56:37.918606551Z 12. ? @ 0x000000000007d5c8
plausible_events_db-1 | 2026-11-01T07:56:37.918607051Z 13. ? @ 0x00000000000e5edc
plausible_events_db-1 | 2026-11-01T07:56:37.918619385Z (version 24.12.6.70 (official build))