Exposed Matomo
Running
docker run -d \
$(echo "$DOCKER_RUN_OPTS") \
-h matomo-mysql \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_USER=matomo \
-e MYSQL_PASSWORD=matomo \
-e MYSQL_DATABASE=matomo \
-v matomo-mysql-data:/var/lib/mysql \
-p 3306:3306 \
--name matomo-mysql \
--restart always \
docker.io/library/mysql:5.7
docker exec -i matomo-mysql /bin/sh << 'EOSHELL'
cat << 'EOF' > /etc/mysql/conf.d/increase.cnf
[mysqld]
max_allowed_packet = 128M
EOF
EOSHELL
docker restart matomo-mysql
docker exec -i matomo-mysql /usr/bin/mysql -u root -p'root' -ve 'SET GLOBAL general_log = "ON"'
docker exec -i matomo-mysql /usr/bin/tail -f /var/lib/mysql/matomo-mysql.log
docker run -d \
$(echo "$DOCKER_RUN_OPTS") \
-h matomo \
-e MATOMO_DATABASE_HOST=matomo-mysql \
-e MATOMO_DATABASE_ADAPTER=MYSQLI \
-e MATOMO_DATABASE_TABLES_PREFIX=matomo_ \
-e MATOMO_DATABASE_USERNAME=matomo \
-e MATOMO_DATABASE_PASSWORD=matomo \
-e MATOMO_DATABASE_DBNAME=matomo \
-v matomo-data:/var/www/html \
-p 8080:80 \
--name matomo \
--restart always \
--link matomo-mysql \
docker.io/library/matomo:3.13.0-apache
echo -e '[INFO]\thttp://127.0.0.1:8080'
Onboarding
-
Welcome! -> Next
-
System Check -> Next
-
Database Setup -> Next
-
Creating the Tables
mysqldump \ --skip-comments \ --skip-extended-insert \ -h 127.0.0.1 \ -P 3306 \ -u matomo \ -p'matomo' \ --databases matomo \ > ./sql/01-initial.sql
- Next
-
Super User
- Super user login:
admin
- Password:
Pa$$w0rd!
- Password (repeat):
Pa$$w0rd!
- Email:
admin@example.com
- Next
mysqldump \ --skip-comments \ --skip-extended-insert \ -h 127.0.0.1 \ -P 3306 \ -u matomo \ -p'matomo' \ --databases matomo \ > ./sql/02-user.sql
icdiff ./sql/01-initial.sql ./sql/02-user.sql
- Super user login:
-
Setup a Website
- Website name: Example
- Website URL: http://example.com
- Website time zone: Brazil - Sao Paulo
- Next
mysqldump \ --skip-comments \ --skip-extended-insert \ -h 127.0.0.1 \ -P 3306 \ -u matomo \ -p'matomo' \ --databases matomo \ > ./sql/03-website.sql
icdiff ./sql/02-user.sql ./sql/03-website.sql
-
Tracking code for Example -> Next
-
Congratulations -> Continue to Matomo
Dashboard
docker exec -i matomo ./console config:set \
--section='General' \
--key='enable_trusted_host_check' \
--value='0'
mysqldump \
--skip-comments \
--skip-extended-insert \
-h 127.0.0.1 \
-P 3306 \
-u matomo \
-p'matomo' \
--databases matomo \
> ./sql/04-login.sql
icdiff ./sql/03-website.sql ./sql/04-login.sql
-
Sign in
- Username or Email:
admin
- Password:
Pa$$w0rd!
- Sign In
mysqldump \ --skip-comments \ --skip-extended-insert \ -h 127.0.0.1 \ -P 3306 \ -u matomo \ -p'matomo' \ --databases matomo \ > ./sql/05-logged.sql
icdiff ./sql/04-login.sql ./sql/05-logged.sql
- Username or Email:
-
No data has been recorded yet, get set up below
- Don't show this message for the next hour
mysqldump \ --skip-comments \ --skip-extended-insert \ -h 127.0.0.1 \ -P 3306 \ -u matomo \ -p'matomo' \ --databases matomo \ > ./sql/06-dashboard.sql
icdiff ./sql/05-logged.sql ./sql/06-dashboard.sql
- Disable Browser Archiving:
gtime -v docker exec -i matomo php \ -d memory_limit=8G \ ./console config:set \ 'General.browser_archiving_disabled_enforce=1' \ 'General.time_before_today_archive_considered_outdated=86400' \ 'General.enable_browser_archiving_triggering=0' \ 'General.archiving_range_force_on_browser_request=0'
Visit
# postkid -run-curl ./requests/visit-get.yaml
postkid -run-curl ./requests/visit-post.yaml
mysqldump \
--skip-comments \
--skip-extended-insert \
-h 127.0.0.1 \
-P 3306 \
-u matomo \
-p'matomo' \
--databases matomo \
> ./sql/07-visit.sql
icdiff --encoding=ISO8859 ./sql/06-dashboard.sql ./sql/07-visit.sql
gtime -v docker exec -i matomo php \
-d memory_limit=8G \
./console core:archive \
--url http://127.0.0.1 \
--force-idsites 1 \
--php-cli-options='-d memory_limit=8G'
mysqldump \
--skip-comments \
--skip-extended-insert \
-h 127.0.0.1 \
-P 3306 \
-u matomo \
-p'matomo' \
--databases matomo \
> ./sql/08-visit-archive.sql
icdiff --encoding=ISO8859 ./sql/07-visit.sql ./sql/08-visit-archive.sql
Event
postkid -run-curl ./requests/event.yaml
mysqldump \
--skip-comments \
--skip-extended-insert \
-h 127.0.0.1 \
-P 3306 \
-u matomo \
-p'matomo' \
--databases matomo \
> ./sql/09-event.sql
icdiff --encoding=ISO8859 ./sql/08-visit-archive.sql ./sql/09-event.sql
gtime -v docker exec -i matomo php \
-d memory_limit=8G \
./console core:archive \
--url http://127.0.0.1 \
--force-idsites 1 \
--php-cli-options='-d memory_limit=8G'
mysqldump \
--skip-comments \
--skip-extended-insert \
-h 127.0.0.1 \
-P 3306 \
-u matomo \
-p'matomo' \
--databases matomo \
> ./sql/10-event-archive.sql
icdiff --encoding=ISO8859 ./sql/09-event.sql ./sql/10-event-archive.sql
Rollback
mysql \
-h 127.0.0.1 \
-P 3306 \
-u root \
-p'root' \
matomo \
< ./sql/05-logged.sql
Shutdown
docker rm -f matomo-mysql matomo
docker volume rm matomo-mysql-data matomo-data