awesome-stacks/stacks/matomo.yml
2024-10-07 01:24:30 +02:00

60 lines
1.7 KiB
Docker

# DOMAIN=example.com docker stack deploy -c matomo.yml matomo
services:
nginx:
image: ethibox/nginx-proxy:latest
environment:
- NGINX_TEMPLATE=${NGINX_TEMPLATE:-/etc/nginx/matomo.template}
- SERVER_NAME={{ index .Service.Labels "com.docker.stack.namespace" }}_app
volumes:
- ${VOLUME_PATH}data:/var/www/html:ro
- ${VOLUME_PATH}data:/var/www/html/config:ro
deploy:
labels:
- traefik.enable=true
- traefik.http.routers.matomo-${NUMBER:-1}.rule=Host(`${DOMAIN:-matomo.localhost}`)
- traefik.http.routers.matomo-${NUMBER:-1}.entrypoints=${SCHEME:-https}
- traefik.http.routers.matomo-${NUMBER:-1}.service=matomo-${NUMBER:-1}
- traefik.http.routers.matomo-${NUMBER:-1}.tls.certresolver=letsencrypt
- traefik.http.services.matomo-${NUMBER:-1}.loadbalancer.server.port=80
networks:
- internal
- traefik
app:
image: matomo:${VERSION:-5-fpm-alpine}
environment:
- MATOMO_DATABASE_USERNAME=matomo
- MATOMO_DATABASE_DBNAME=matomo
- MATOMO_DATABASE_PASSWORD=myp@ssw0rd
- MATOMO_DATABASE_HOST=mariadb
volumes:
- ${VOLUME_PATH}config:/var/www/html/config:cached
- ${VOLUME_PATH}data:/var/www/html:cached
networks:
- internal
mariadb:
image: mariadb:${MARIADB_VERSION:-10.5.9}
volumes:
- ${VOLUME_PATH}mariadb:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=myp@ssw0rd
- MYSQL_DATABASE=matomo
- MYSQL_USER=matomo
- MYSQL_PASSWORD=myp@ssw0rd
networks:
- internal
volumes:
mariadb:
config:
data:
networks:
internal:
driver: overlay
attachable: true
traefik:
external: true
name: traefik-net