maintained by francoisp
This image's scripts are derived from marvambass's Piwik image. It has enough state to be restarteable, and is based straight on the nginx reference image for clarity. It downloads the piwik install from the piwik website so if you build the image you'll get the most recent stable version of piwik.
This Dockerfile (available as francoisp/piwik) gives you a completly secure piwik.
The php nginx setup comes from the commands in this marvambass/nginx-ssl-php Image
View in Docker Registry francoisp/piwik-nginx
View in GitHub francoisp/docker-piwik-nginx
Piwik Database Settings
- PIWIK_MYSQL_USER
- no default - if null it will start piwik in initial mode
- PIWIK_MYSQL_PASSWORD
- no default - if null it will start piwik in initial mode
- PIWIK_MYSQL_HOST
- default: mysql
- PIWIK_MYSQL_PORT
- default: 3306 - if you use a different mysql port change it
- PIWIK_MYSQL_DBNAME
- default: piwik - don't use the symbol - in there!
- PIWIK_MYSQL_PREFIX
- default: piwik_
Piwik Admin Settings
- PIWIK_ADMIN
- default: admin - the name of the admin user
- PIWIK_ADMIN_PASSWORD
- default: [randomly generated 10 characters] - the password for the admin user
- PIWIK_ADMIN_MAIL
- default: [email protected] - only needed if you are interested in one of those newsletters
- PIWIK_SUBSCRIBE_NEWSLETTER
- 1 or 0 - default: 0
- PIWIK_SUBSCRIBE_PRO_NEWSLETTER
- 1 or 0 - default: 0
Website to Track Settings
- SITE_NAME
- default: My local Website
- SITE_URL
- default: http://localhost
- SITE_TIMEZONE
- default: Europe/Berlin
- SITE_ECOMMERCE
- 1 or 0 - default: 0
Piwik Track Settings
- ANONYMISE_IP
- 1 or 0 - this will anonymise IPs - default: 1
- DO_NOT_TRACK
- 1 or 0 - this will skip browsers with do not track enabled from tracking - default: 1
- PIWIK_RELATIVE_URL_ROOT
- default: /piwik/ - you can chance that to whatever you want/need
- PIWIK_NOT_BEHIND_PROXY
- default: not set - if set to any value the settings to listen behind a reverse proxy server will be removed
- PIWIK_HSTS_HEADERS_ENABLE
- default: not set - if set to any value the HTTP Strict Transport Security will be activated on SSL Channel
- PIWIK_HSTS_HEADERS_ENABLE_NO_SUBDOMAINS
- default: not set - if set together with PIWIK_HSTS_HEADERS_ENABLE and set to any value the HTTP Strict Transport Security will be deactivated on subdomains
- DH_SIZE
- default: 2048 if you need more security just use a higher value
- as was inherited from MarvAmBass/docker-nginx-ssl-secure
First you need a MySQL Container (the following command would give you one from the plain vanilla mysql )
sudo docker run --name piwik-mysql -e MYSQL_ROOT_PASSWORD=strongMysqlpw -e MYSQL_DATABASE=piwik -e MYSQL_USER=piwik -e MYSQL_PASSWORD=strongPiwikpw -d mysql
Then you can create a container based on this source compiled as an image from dockerhub that --link the myslql one:
sudo docker run -d -p 80:80 -p 443:443 --name piwik --link piwik-mysql:mysql -e 'PIWIK_MYSQL_USER=piwik' -e 'PIWIK_MYSQL_PASSWORD=strongPiwikpw' -e 'PIWIK_ADMIN_PASSWORD=piwikPASS' francoisp/piwik-nginx
If you need to build the image from source, for example to get the latest piwik archive in the image, you can clone this repo locally, and run
sudo docker build -t youruser/piwik-nginx .