/docker

Official Docker project for Matomo Analytics

Primary LanguageShellOtherNOASSERTION

Matomo (formerly Piwik)

GitHub CI build status badge update.sh build status badge amd64 build status badge arm32v5 build status badge arm32v6 build status badge arm32v7 build status badge arm64v8 build status badge i386 build status badge mips64le build status badge ppc64le build status badge s390x build status badge

Matomo logo Matomo (formerly Piwik) is the leading open-source analytics platform that gives you more than just powerful analytics:

  • Free open-source software
  • 100% data ownership
  • User privacy protection
  • User-centric insights
  • Customisable and extensible

How to use this image

You can run the Matomo container and service like so:

docker run -d --link some-mysql:db matomo

This assumes you've already launched a suitable MySQL or MariaDB database container.

Persistent data

Use a Docker volume to keep persistent data:

docker run -d -p 8080:80 --link some-mysql:db -v matomo:/var/www/html matomo

Matomo Installation

Once you're up and running, you'll arrive at the configuration wizard page. If you're using the compose file, at the Database Setup step, please enter the following:

  • Database Server: db
  • Login: MYSQL_USER
  • Password: MYSQL_PASSWORD
  • Database Name: MYSQL_DATABASE

And leave the rest as default.

Then you can continue the installation with the super user.

The following environment variables are also honored for configuring your Matomo instance:

  • MATOMO_DATABASE_HOST
  • MATOMO_DATABASE_ADAPTER
  • MATOMO_DATABASE_TABLES_PREFIX
  • MATOMO_DATABASE_USERNAME
  • MATOMO_DATABASE_PASSWORD
  • MATOMO_DATABASE_DBNAME

The PHP memory limit can be configured with the following environment variable:

  • PHP_MEMORY_LIMIT

Docker-composer examples and log import instructions

A minimal set-up using docker-compose is available in the .examples folder, a more complete example can be found at IndieHosters/piwik.

If you want to use the import logs script, you can then run the following container as needed, in order to execute the python import logs script:

docker run --rm --volumes-from="matomo_app_1" --link matomo_app_1 python:2-alpine python /var/www/html/misc/log-analytics/import_logs.py --url=http://ip.of.your.matomo --login=yourlogin --password=yourpassword --idsite=1 --recorders=4 /var/www/html/logs/access.log

Contribute

Pull requests are very welcome!

We'd love to hear your feedback and suggestions in the issue tracker: github.com/matomo-org/docker/issues.

GeoIP

This product includes GeoLite data created by MaxMind, available from https://www.maxmind.com. https://blog.maxmind.com/2019/12/18/significant-changes-to-accessing-and-using-geolite2-databases/