mrkeyoor.com_
Sat 05 Sept 14:46 UTC
Self-Hostedevaluationupdated 05 Sept 2026

matomo review

Matomo is a self-hosted web analytics platform built with PHP and MySQL or MariaDB. You add its JavaScript tag to sites, keep the collected visitor data in your own database, and use its dashboards for traffic, campaigns, goals, e-commerce, segments, and reports.

trackingstars / 7d
Verdict

Our Matomo checkout installed 746 npm packages and passed 2,229 of 2,238 Vitest cases, but those results cover the Node side rather than a running PHP and MySQL analytics server. Choose Matomo when data control and deep reporting justify owning that server stack. Choose a smaller tool when you need a few traffic metrics and do not have an operator for archiving, upgrades, privacy settings, and database care.

We ran it

Lab card: what happened when we ran matomoScreenshot of matomo (matomo.org)
Install✓ · 80s746 packages · 310 MB
Buildn/ano build script
Tests✓ · 48s2229 passed · 0 failed · 9 skipped of 2238 (vitest)
Known vulns00 critical · 0 high · 0 moderate · 0 low (npm audit)
Repo17884 files~1,035,175 lines of source · 160.1 MB · 21 CI workflows · tests dir

Answers from our run

Does matomo build from source?

Dependencies installed in 80 seconds (746 packages), and the project has no separate build step. We cloned commit 378d443 into a clean Debian container with 3 CPUs and no project-specific setup.

Do matomo's tests pass?

Yes: 2229 of 2238 passed when we ran the project's own test command (vitest). Some failures need services or credentials a bare container does not have.

Does matomo have known vulnerabilities in its dependencies?

npm audit found none in the dependency tree at the time of our run.

Who should not use matomo?

Teams looking for an npm application they can deploy after the JavaScript tests pass: Matomo itself requires PHP 8.1 or newer, a web server, and MySQL 8.0 or MariaDB 10.6.

What are the alternatives to matomo?

Plausible Analytics, Umami, GoAccess. Our Matomo checkout installed 746 npm packages and passed 2,229 of 2,238 Vitest cases, but those results cover the Node side rather than a running PHP and MySQL analytics server.

Setup3/5Node checks pass; production still needs PHP, SQL, and web-server work
Docs5/5Separate operator, developer, test, security, and DDEV guides
Community5/521,840 stars, a same-day push, and active issue triage
Maturity5/5Versioned releases, plugin architecture, and broad automated tests

Who it’s for

Organizations that want analytics data stored on infrastructure they control.
Analytics teams that need goals, campaigns, e-commerce tracking, segments, scheduled reports, and an API in one product.
Platform teams already comfortable operating PHP, a web server, MySQL or MariaDB, scheduled archiving, backups, and upgrades.
Developers building site-specific analytics plugins or extending Matomo's dashboard and tracking behavior.

Who it’s NOT for

Teams looking for an npm application they can deploy after the JavaScript tests pass: Matomo itself requires PHP 8.1 or newer, a web server, and MySQL 8.0 or MariaDB 10.6.
Small sites that only need page views and referrers but do not want a database, archiving jobs, upgrades, and privacy configuration.
Organizations unwilling to accept GPL v3 or later for the server code: that is the repository's stated license.
Operators who cannot regression-test reverse-proxy settings: issue 18675 reports that trusted_hosts did not respect X-Forwarded-Host in the documented container setup.
Privacy teams expecting one dashboard switch to settle visitor-level access: issue 25217 reports that visitId segmentation remained available after Visits Log and Visitor Profile were disabled.
Anyone planning to unpack GitHub's source archive directly in production: the 5.13.0 release says attached install archives are the supported route and source needs extra work.

Setup reality

Our commit 378d443 checkout installed 746 npm packages in 80 seconds and used 310 MB. Vitest finished in 48 seconds with 2,229 passed, 0 failed, and 9 skipped out of 2,238. There was no build script or target, so that step was skipped; npm audit found 0 known vulnerabilities.

A working Matomo server needs PHP 8.1 or newer, MySQL 8.0 or MariaDB 10.6, a supported PHP database extension, a web server, database credentials, and a JavaScript tag on each tracked site. Production also needs backups, scheduled archiving, HTTPS, and access controls.

The checkout was 160.1 MB before dependencies, with 17,884 files and about 1,035,175 source lines. Matomo tells production users to install its release archive; a source checkout and DDEV are developer paths, and DDEV is explicitly discouraged for public production hosting.

PHP 8.1 and MySQL 8.0 are the starting line

Matomo runs on PHP 8.1 or newer with MySQL 8.0 or MariaDB 10.6 and a PHP database extension. Installation produces a JavaScript tag for each site, and tracking data stays in the operator's database. The product covers visits, campaigns, goals, e-commerce, custom segments, scheduled email reports, geolocation, and a reporting API. That scope makes it a credible replacement for a hosted analytics suite, with the corresponding server duties.

Owning the data is useful only if the organization can own the system around it. A production instance needs HTTPS, database backups, retention choices, user access controls, upgrades, and archiving that keeps reports current as traffic grows. Matomo's current requirements explain the server baseline. The JavaScript snippet is the easy part; operational quality depends on how the PHP application, database, cron work, and reverse proxy are managed.

Version 5.13.0 should come from the release archive

The latest stable GitHub release we fetched was Matomo 5.13.0, published August 16, 2026. Its release note tells operators to use the attached archives for installation or updates. GitHub's automatic source download is meant for developers and requires extra work. That distinction matters because a repository checkout contains development tooling and source that a prepared production package handles differently.

Developers have a DDEV route, but Matomo's DDEV instructions explicitly discourage exposing that environment as a public production installation. DDEV can start the app, run the browser installer, initialize development dependencies, prepare test suites, generate sample visits, and mount plugin checkouts. It also needs DDEV plus a Docker provider, and its local ports can conflict with a Kubernetes router. This is a useful contributor environment, not an operations shortcut.

What happened when we ran it

Our sandbox installed 746 npm packages in 80 seconds at commit 378d443, leaving 310 MB of dependencies on disk. The repository exposed no build script or target, so the build step was skipped. Vitest completed in 48 seconds: 2,229 tests passed, 0 failed, and 9 were skipped out of 2,238. Npm audit reported 0 known vulnerabilities across critical, high, moderate, and low severities.

The checkout was much larger than a front-end package: 17,884 files, roughly 1,035,175 source lines, and 160.1 MB before npm dependencies. Our scan found 21 CI workflow files and a tests directory, with no Dockerfile. The run used a fresh unprivileged Node 22 container with 3 CPUs, 8 GB of RAM, and no secrets. Install and Vitest succeeded without needing service credentials.

Those 2,238 Vitest results do not establish that PHP requests, database migrations, tracking ingestion, scheduled archiving, email delivery, or browser flows work on your infrastructure. We did not start MySQL or MariaDB, install the PHP application, send visits, or run the project's PHP, integration, system, and screenshot suites. The measured result is still useful: the checked JavaScript unit surface passed, and its installed dependency audit was clean. It is one slice of a much larger application.

Privacy control still needs tests against your own policy

Matomo 5.13.0 gives operators control over storage and advertises privacy configuration, but self-hosting does not choose a lawful or appropriate tracking policy for them. Teams still decide which identifiers to collect, whether consent is required, who can inspect visitor detail, how long records remain, and which plugins or reports expose sensitive fields. Those decisions need documentation and tests tied to the organization's actual configuration.

Open issue 25217 describes a precise inconsistency: disabling Visits Log and Visitor Profile removed some identifying segments, while visitId remained registered and usable for segmentation. The report was triaged and had one comment when fetched. Open issue 18675 covers trusted_hosts behind a reverse proxy, where the reporter found Matomo checking the internal container host instead of the forwarded public host. Both deserve targeted regression cases before rollout.

The September 5 push comes with 2,579 open items

GitHub recorded 21,840 stars, 2,579 open issues and pull requests combined, and a last push on September 5, 2026. A queue that large contains feature requests, support-shaped reports, bugs, and code contributions, so it is not a count of defects. Recent issues were being labeled and discussed, and the same-day push plus the August 5.13.0 release show current maintenance. The queue also tells buyers to search for their exact proxy, database, consent, and reporting edge cases.

Matomo earns its place when an organization wants a mature analytics application under its own control and can staff it accordingly. The 80-second npm install and 2,229 passing tests make the front-end checkout approachable, while the million-line repository and multi-service runtime set the true scale. Plausible and Umami are easier comparisons for a narrower analytics brief. GoAccess is the cleaner choice when existing server logs answer the question without client-side tracking.

Alternatives

ProjectWhat it isPick it when
Plausible AnalyticsA privacy-focused analytics product with a smaller feature surface and no-cookie tracking.pick this instead when a simpler dashboard and lighter analytics model matter more than Matomo's reporting depth and plugin system.
UmamiA self-hosted or cloud analytics platform for traffic, campaigns, behavior, conversions, and revenue.pick this instead when you want a modern, narrower product and do not need Matomo's long list of reports and extensions.
GoAccessA terminal and browser viewer that derives traffic reports from web-server logs.pick this instead when server logs are enough and adding a browser tracking tag or analytics database would be excessive.

What people are saying

  1. [velocity-scout] matomo-org/matomo

Sources

  1. Matomo repository and README
  2. Matomo 5.13.0 release note
  3. Matomo server requirements
  4. Matomo DDEV environment instructions
  5. Matomo issue 25217 on visitId segmentation
  6. Matomo issue 18675 on trusted hosts behind a proxy

More self-hosted reviews

openfga · signoz · SmartTube · copyparty · frigate · zot · the whole board →