[{"data":1,"prerenderedAt":248},["ShallowReactive",2],{"seo-verification":3,"blog-plausible-vs-umami-which-self-hosted-analytics-to-choose-ma-en":6,"promo-bar-likely":247},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-plausible-vs-umami-which-self-hosted-analytics-to-choose-ma-en",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":27,"featuredImage":29,"bgImage":30,"posterImage":31,"relatedSolution":32,"intro":35,"sections":36,"ctaTitle":185,"ctaBody":186,"ctaButton":187,"ctaUrl":188,"relatedPosts":189},97,"plausible-vs-umami-which-self-hosted-analytics-to-choose",{"fr":12,"en":10,"ar":13,"es":14},"plausible-vs-umami","plausible-مقابل-umami-أي-أداة-تحليلات-مستضافة-ذاتيا-تختار","plausible-vs-umami-que-analitica-self-hosted-elegir","Plausible vs Umami: which self-hosted analytics to choose?","In-depth comparison of Plausible vs Umami in 2026: setup, GDPR compliance, funnels, custom events API, migration from GA4, and a decision tree to pick the right tool.",9,1,false,"2026-03-15T00:00:00+00:00","2026-11-08T01:13:15+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},5,"Comparison","comparatif","bg-info\u002F10 text-info",[28],{"id":23,"name":24,"slug":25,"color":26,"icon":25},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fplausible-vs-umami-poster.svg",{"categorySlug":33,"appSlug":34},"analytics","analytics-plausible","Plausible Analytics and Umami Analytics are the two leading self-hosted, privacy-friendly web analytics tools. But their philosophies diverge: Plausible bets on radical simplicity, Umami on progressive feature depth. This guide compares them in detail — architecture, legal compliance, advanced features, migration from GA4, and troubleshooting — to help you make the right call in 2026.",[37,41,51,95,97,100,114,117,119,127,135,137,139,141,154,156,158,160,162,170,172],{"type":38,"title":39,"content":40},"h2","Why self-host your web analytics","Classic SaaS analytics (Google Analytics, Mixpanel) send visitor data to third-party servers, often in the United States. This creates two concrete problems: proving GDPR compliance becomes difficult, and you lose control of your data. Self-hosting analytics on a VPS solves both: data never leaves your infrastructure, and there is no subscription that scales with traffic.",{"type":42,"title":43,"items":44},"ul","Benefits of self-hosted analytics",[45,46,47,48,49,50],"Native GDPR compliance: no third-party data transfer, no consent banner required when no cookie is used","100% data ownership: CSV\u002FSQL export at any time, long-term retention with no expiry","Fixed cost: the VPS price does not depend on how many pageviews you record","Lightweight script (\u003C 2 KB): negligible impact on Core Web Vitals","No sampling: every pageview is counted, even at high volumes","Open source: auditable code, no vendor lock-in",{"type":52,"title":53,"headers":54,"rows":58},"comparison","Plausible vs Umami: key criteria comparison",[55,56,57],"Criterion","Plausible 3.2","Umami 3.4",[59,63,67,71,75,79,83,87,91],[60,61,62],"Language \u002F stack","Elixir + ClickHouse","Node.js + PostgreSQL",[64,65,66],"Database","ClickHouse (columnar)","PostgreSQL only (MySQL dropped in v3)",[68,69,70],"Interface","Very minimal, single-page","Multi-site, configurable dashboards",[72,73,74],"Funnels","Not in Community Edition (Plausible Cloud only)","Yes, via custom reports",[76,77,78],"Custom events","Yes, with props API","Yes, with props API + TypeScript SDK",[80,81,82],"Heatmaps \u002F Session replay","No","Yes (replay since v3.1, heatmaps since v3.2, 2026)",[84,85,86],"Advanced segmentation","Combined filters","Session segments, property filters",[88,89,90],"Recommended min RAM","2 GB (ClickHouse)","No published minimum (PostgreSQL, lighter)",[92,93,94],"License","AGPL-3.0","MIT",{"type":38,"title":96},"Prerequisites by tool",{"type":98,"body":99},"p","Plausible requires ClickHouse, a columnar database built for analytics. ClickHouse is powerful but RAM-hungry: plan for at least 2 GB, ideally 4 GB for a comfortable instance. Umami runs on PostgreSQL, which is far lighter: a small VPS is enough for moderate-traffic sites. If your VPS already runs PostgreSQL for another application, Umami integrates without additional resources. As of Umami v3, MySQL is no longer supported; if migrating from an older MySQL install, export and reimport to PostgreSQL first.",{"type":101,"title":102,"steps":103},"steps","Deploying Plausible (or Umami) on a VPS",[104,106,108,110,112],{"body":105},"Clone the official repo (`plausible\u002Fcommunity-edition` at version v3.2.1 or later, which fixes the critical CVE-2026-8467 flaw, or `umami-software\u002Fumami`) and create a `.env` file: neither repo ships a `.env.example`",{"body":107},"Fill in required variables: `BASE_URL` and `SECRET_KEY_BASE` (Plausible) or `DATABASE_URL` and `APP_SECRET` (Umami), generating each secret with `openssl rand -base64 48`. Umami's `docker-compose.yml` ships an example `APP_SECRET` and PostgreSQL password: replace them with `.env` variables (`${APP_SECRET}`), and publish its port as `127.0.0.1:3000:3000` so only nginx reaches it",{"body":109},"Run `docker compose up -d` — the image pulls ClickHouse\u002FPostgreSQL and auto-migrates the schema",{"body":111},"Configure an nginx reverse proxy with HTTPS (Let's Encrypt) on your chosen domain, and ensure `X-Forwarded-For` is forwarded correctly",{"body":113},"Add the tracking script to your site and verify the first pageview in the dashboard. On Umami, first change the password of the default `admin` account",{"type":115,"body":116},"tip","Block bots in the analytics nginx vhost only, never in your site's vhost where the rule would also block Googlebot (`if ($http_user_agent ~* \"(bot|crawler|spider)\")`) to keep your stats clean without any analytics-side configuration.",{"type":38,"title":118},"Decision tree: Plausible or Umami?",{"type":42,"title":120,"items":121},"Choose Plausible if…",[122,123,124,125,126],"You want an interface any teammate understands in 5 minutes without training","Your team doesn't need session replay or heatmaps","You have at least 4 GB of RAM on the VPS (ClickHouse earns it)","You manage several sites from a single minimalist dashboard","You don't need funnels or revenue tracking when self-hosting (missing from Community Edition, Plausible Cloud only)",{"type":42,"title":128,"items":129},"Choose Umami if…",[130,131,132,133,134],"You have a resource-constrained VPS (less than the 2 GB of RAM recommended for Plausible) or PostgreSQL is already installed","You need heatmaps and session replay (since Umami 3.2, 2026)","Your team builds custom integrations via the official TypeScript API (`@umami\u002Fapi-client`)","You manage many sites for different clients (native multi-tenant)","You want to query your data in natural language via an AI assistant using MCP (Umami 3.4, enabled with `MCP_ENABLED=1` when self-hosting)",{"type":38,"title":136},"GDPR, CNIL, and ePrivacy compliance: what each tool actually covers",{"type":98,"body":138},"Both tools are designed to work without tracking cookies and without storing complete IP addresses. Plausible hashes the IP with a daily rotating salt; Umami uses a similar approach. Result: no persistent identifier is stored server-side, which allows you to skip the consent banner for analytics alone — provided the script is not combined with other trackers. The French CNIL exempts from consent audience-measurement trackers that serve the site publisher exclusively, produce only anonymous statistics, and allow no cross-matching with other processing, no transfer to third parties and no tracking of the person across sites. The ePrivacy Directive points the same way. Caveat: if you cross-match the data with a third-party advertising solution, the exemption no longer applies; and a VPS outside the EU also raises the question of data transfers under the GDPR. Documenting hosting details (VPS location, retention policy) in your processing register remains mandatory.",{"type":38,"title":140},"Migrating from Google Analytics 4",{"type":101,"title":142,"steps":143},"Steps to move from GA4 to Plausible or Umami",[144,146,148,150,152],{"body":145},"Export GA4 history as CSV via Google Analytics > Reports > Export, or via the GA4 Data API for large volumes — Plausible can import GA4 history (in Community Edition, once the Google integration is configured: `GOOGLE_CLIENT_ID` and `GOOGLE_CLIENT_SECRET`); for Umami, keep this export as an archive",{"body":147},"Run the Plausible\u002FUmami script alongside the GA4 tag for 2–4 weeks to compare metrics (numbers will differ: GA4 may sample above its quotas, Plausible\u002FUmami count everything)",{"body":149},"Verify that critical custom events (forms, clicks, purchases) are replicated via `plausible('goal')` or `umami.track()`",{"body":151},"Remove the GA4 tag and its `_ga` cookie once satisfied — update your privacy policy accordingly",{"body":153},"Document the new metrics in your GDPR register: legal basis, retention period, server location",{"type":115,"body":155},"Traffic numbers will often be higher with Plausible or Umami than with GA4 on the same site: being cookieless, they do not wait for visitor consent, whereas GA4 only fully measures visitors who accepted its cookies. The gap varies from site to site with your consent rate — this is not a bug, it is measurement without a banner.",{"type":38,"title":157},"Advanced features: funnels, segments, events and API",{"type":98,"body":159},"At Plausible, multi-step funnels and revenue tracking are reserved for the cloud offer: the self-hosted Community Edition does not include them. Plausible 3.2 (January 2026) does let you limit a shared link to a segment, and version 3.2.1 (May 2026) fixes the critical CVE-2026-8467 flaw: it is the minimum to install. Segmentation relies on combined filters (source, country, device, event properties) that can be saved as segments. The Stats API v2 (`POST \u002Fapi\u002Fv2\u002Fquery`) extracts any dimension; the old `\u002Fapi\u002Fv1\u002Fstats\u002Fbreakdown` endpoint is now marked legacy. Umami 3.4 (September 2026) goes further with session segments — you can group visitors by session properties and replay their journey. Session replay (Umami 3.1, April 2026) and heatmaps (Umami 3.2, June 2026) enable visual behavior analysis. The TypeScript `@umami\u002Fapi-client` SDK (generated from OpenAPI) simplifies data pipeline integration. Umami also supports session identity stitching: if a visitor returns on another device and authenticates, sessions are merged into a single profile.",{"type":38,"title":161},"Common troubleshooting",{"type":42,"title":163,"items":164},"Frequent issues and solutions",[165,166,167,168,169],"**ClickHouse won't start (Plausible)**: check available RAM (`free -h`) — the vendor recommends at least 2 GB of RAM for ClickHouse and Plausible, and the CPU must support SSE 4.2 (or NEON on ARM). If the VPS is tight, add a 2 GB swap file (`fallocate -l 2G \u002Fswapfile && chmod 600 \u002Fswapfile && mkswap \u002Fswapfile && swapon \u002Fswapfile`). Check logs with `docker compose logs plausible_events_db`.","**Umami migrations stuck**: after an update, if the app refuses to start with `relation does not exist`, restart the container (`docker compose restart umami`): on startup, Umami applies pending Prisma migrations itself (`prisma migrate deploy`); read `docker compose logs umami` to find the one that fails.","**Pageviews not recorded**: verify your site's CSP header allows the analytics domain (`script-src 'self' https:\u002F\u002Fanalytics.yourdomain.com`). Ad blockers may also block the script — consider proxying it from your own domain.","**ClickHouse error after hard restart**: if ClickHouse reports a corrupted table, find the table involved in `docker compose logs plausible_events_db`, then query `system.detached_parts` via `clickhouse-client`, which lists detached parts and why they were detached; if data is missing, restore your latest backup.","**Umami v3: errors after migrating from MySQL**: Umami v3 dropped MySQL support. If upgrading from v2 with MySQL, export all data first, provision PostgreSQL, then reimport following the official MySQL-to-PostgreSQL migration guide in the Umami docs.",{"type":38,"title":171},"Backing up and restoring your analytics data",{"type":101,"title":173,"steps":174},"Backup strategy for Plausible and Umami",[175,177,179,181,183],{"body":176},"**Plausible \u002F ClickHouse**: use the `clickhouse-backup create` tool (image `altinity\u002Fclickhouse-backup`, run in a neighbouring container with access to ClickHouse's data volume) or export critical tables to Parquet via `docker compose exec -T plausible_events_db clickhouse-client --query \"SELECT * FROM plausible_events_db.events_v2 FORMAT Parquet\" > events_$(date +%Y%m%d).parquet`",{"body":178},"**Umami \u002F PostgreSQL**: a standard `pg_dump` is enough — `docker compose exec db pg_dump -U umami umami > umami_$(date +%Y%m%d).sql`. Schedule daily via cron and upload to object storage (S3, Backblaze B2)",{"body":180},"Test restoration at least quarterly on a staging VPS: `docker compose exec -T db psql -U umami umami \u003C umami_backup.sql`",{"body":182},"For Plausible, also back up the Docker volume holding the app's PostgreSQL data (separate from ClickHouse)",{"body":184},"Document the restoration procedure in your runbook — an untested backup is not a backup","Your Statistics, on Your Own Server","Deploy Plausible or Umami on a ServOrbit Cloud VPS with preconfigured Docker. Fast, privacy-friendly analytics that's 100% under your control, with no cookie banner.","Deploy My VPS Analytics","\u002Fvps-cloud",[190,210,227],{"id":191,"slug":192,"slugs":193,"title":197,"excerpt":198,"readTime":199,"views":200,"isPinned":19,"noindex":19,"publishedAt":201,"updatedAt":202,"category":203,"categories":204,"featuredImage":29,"bgImage":30,"posterImage":206,"relatedSolution":207},4,"coolify-vs-dokploy-which-tool-to-deploy-on-a-vps",{"fr":194,"en":192,"ar":195,"es":196},"coolify-vs-dokploy","coolify-مقابل-dokploy-أي-أداة-للنشر-على-vps","coolify-vs-dokploy-que-herramienta-elegir-para-su-vps","Coolify vs Dokploy: which tool to deploy on a VPS?","Coolify or Dokploy for your VPS? A binary comparison on idle RAM, license, templates and multi-node support to make the right choice once and for all.",7,3,"2026-06-07T00:00:00+00:00","2026-09-18T02:05:20+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[205],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fcoolify-vs-dokploy-poster.svg",{"categorySlug":208,"appSlug":209},"application-deployment-devops","coolify",{"id":211,"slug":212,"slugs":213,"title":217,"excerpt":218,"readTime":17,"views":200,"isPinned":19,"noindex":19,"publishedAt":219,"updatedAt":21,"category":220,"categories":221,"featuredImage":29,"bgImage":30,"posterImage":223,"relatedSolution":224},93,"n8n-vs-node-red-which-self-hosted-automation-tool-to-choose",{"fr":214,"en":212,"ar":215,"es":216},"n8n-vs-node-red","n8n-مقابل-node-red-أي-أداة-أتمتة-مستضافة-ذاتيا-تختار","n8n-vs-node-red-que-automatizacion-self-hosted-elegir","n8n vs Node-RED: which self-hosted automation tool to choose?","n8n or Node-RED for your VPS workflows? Complete technical comparison: license, server resources, IoT vs SaaS use cases, migration steps, and Docker deployment.","2026-03-19T00:00:00+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[222],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fn8n-vs-node-red-poster.svg",{"categorySlug":225,"appSlug":226},"automation-workflows","n8n",{"id":228,"slug":229,"slugs":230,"title":234,"excerpt":235,"readTime":236,"views":237,"isPinned":19,"noindex":19,"publishedAt":238,"updatedAt":239,"category":240,"categories":241,"featuredImage":29,"bgImage":30,"posterImage":243,"relatedSolution":244},94,"supabase-vs-appwrite-which-self-hosted-backend-for-your-vps",{"fr":231,"en":229,"ar":232,"es":233},"supabase-vs-appwrite","supabase-مقابل-appwrite-أي-خلفية-مستضافة-ذاتيا-لـ-vps","supabase-vs-appwrite-que-backend-self-hosted-para-vps","Supabase vs Appwrite: Choosing Your Open-Source BaaS on a VPS","Full comparison of Supabase vs Appwrite: Docker deployment, RAM requirements, auth, serverless functions, realtime, and a decision guide for your VPS.",14,0,"2026-03-18T00:00:00+00:00","2026-11-08T01:13:16+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":25},[242],{"id":23,"name":24,"slug":25,"color":26,"icon":25},"\u002Fblog\u002Fcovers\u002Fsupabase-vs-appwrite-poster.svg",{"categorySlug":245,"appSlug":246},"databases","supabase",true,1794270468231]