All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Initial release of Matomo Docker Stack
- PHP 8.3 with OPcache and JIT compiler
- MariaDB 11.4 with performance-optimized configuration
- Redis 7 for caching and session management
- Traefik integration with security middlewares
security-headers@filefor HSTS, X-Frame-Options, CSPcompression@filefor Gzip/Brotli compressionrate-limit@filefor DoS protectionredirect-to-https@filefor HTTP to HTTPS redirection
- Automatic SSL/TLS certificates via Let's Encrypt
- Automatic database backups every 6 hours
- Ofelia CronJobs for maintenance
- Hourly archiving of all sites
- Daily log deletion (180 days retention)
- Daily temporary data cleanup
- Apache security configuration
- Blocks public access to
/tmp/,/config/,/vendor/, etc. - Protects sensitive files (config.ini.php, backups)
- Blocks public access to
- tmpfs mount for improved I/O performance
- Multi-language documentation (DE, EN, FR)
- GitHub Actions CI/CD workflows
- Automated testing on push/PR
- YAML linting
- Security scanning with Gitleaks
- Container build tests
- Automated releases on tag push
- Comprehensive README with installation, configuration, and troubleshooting guides
- MariaDB optimized for 10-15 sites, ~500 users/day
innodb_buffer_pool_size = 3Ginnodb_flush_log_at_trx_commit = 2for better performancemax_connections = 200
- Redis with 1GB memory limit and volatile-lru eviction policy
- PHP with 768M memory limit and 120s execution time
- Session cookies configured as secure and httponly
- All sensitive data moved to
.env.examplewith placeholders .envexcluded from Git repository via.gitignore- Apache security headers configured
- Private directories properly protected
- No hardcoded passwords or domains in repository
- Detailed installation guide
- Matomo configuration instructions (Redis, browser archiving)
- CronJob documentation
- Troubleshooting section
- Performance monitoring guidelines
- Backup and restore procedures
- Scaling recommendations for high-traffic scenarios
- Available in German, English, and French
When upgrading between versions, always:
-
Backup first:
docker exec matomo-sql mariadb-dump -uroot -p"${SQL_ROOT_PASSWORD}" MatomoDB > backup.sql
-
Pull latest changes:
git pull
-
Update containers:
docker compose pull docker compose up -d
-
Check logs:
docker compose logs -f
For questions, issues, or feature requests: