Add Umami service and database configuration to Docker Compose; update environment variables in .env.example

This commit is contained in:
Mohmmed Elfateh Sabry
2025-08-11 20:12:55 +03:00
parent 43e25f7140
commit 834df406f0
2 changed files with 55 additions and 0 deletions

View File

@@ -10,6 +10,7 @@ volumes:
traefik_logs:
portainer_data:
uptime_kuma_data:
umami_data:
########################
# Services
@@ -30,6 +31,10 @@ services:
environment:
TZ: "${TZ}"
command:
# Experimental plugins
- --experimental.plugins.traefik-umami-plugin.modulename=github.com/1cedsoda/traefik-umami-plugin
- --experimental.plugins.traefik-umami-plugin.version=v1.0.3
# Providers
- --providers.docker=true
- --providers.docker.exposedbydefault=false
@@ -81,6 +86,17 @@ services:
# Basic Auth middleware
- traefik.http.middlewares.basic-auth.basicauth.users=${BASIC_AUTH_USERS}
# Umami Analytics middleware
- traefik.http.middlewares.umami-analytics.plugin.traefik-umami-plugin.umamiHost=umami:3000
- traefik.http.middlewares.umami-analytics.plugin.traefik-umami-plugin.websiteId=${UMAMI_WEBSITE_ID}
- traefik.http.middlewares.umami-analytics.plugin.traefik-umami-plugin.forwardPath=umami
- traefik.http.middlewares.umami-analytics.plugin.traefik-umami-plugin.scriptInjection=true
- traefik.http.middlewares.umami-analytics.plugin.traefik-umami-plugin.scriptInjectionMode=tag
- traefik.http.middlewares.umami-analytics.plugin.traefik-umami-plugin.autoTrack=true
- traefik.http.middlewares.umami-analytics.plugin.traefik-umami-plugin.doNotTrack=false
- traefik.http.middlewares.umami-analytics.plugin.traefik-umami-plugin.cache=false
- traefik.http.middlewares.umami-analytics.plugin.traefik-umami-plugin.serverSideTracking=false
# Traefik dashboard (protected)
- traefik.http.routers.traefik.rule=Host(`traefik.gate.${DOMAIN}`)
- traefik.http.routers.traefik.entrypoints=websecure
@@ -124,3 +140,40 @@ services:
- traefik.http.routers.kuma.tls.certresolver=le
- traefik.http.routers.kuma.middlewares=basic-auth,security-headers
- traefik.http.services.kuma.loadbalancer.server.port=3001
## ─────────────────────────────────────────────
## Umami — web analytics
## ─────────────────────────────────────────────
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
container_name: umami
restart: unless-stopped
networks: [traefik_proxy]
environment:
DATABASE_URL: postgresql://${UMAMI_DB_USER}:${UMAMI_DB_PASS}@umami-db:5432/${UMAMI_DB_NAME}
DATABASE_TYPE: postgresql
APP_SECRET: ${UMAMI_APP_SECRET}
depends_on:
- umami-db
labels:
- traefik.enable=true
- traefik.http.routers.umami.rule=Host(`umami.gate.${DOMAIN}`)
- traefik.http.routers.umami.entrypoints=websecure
- traefik.http.routers.umami.tls.certresolver=le
- traefik.http.routers.umami.middlewares=security-headers
- traefik.http.services.umami.loadbalancer.server.port=3000
## ─────────────────────────────────────────────
## Umami Database — PostgreSQL
## ─────────────────────────────────────────────
umami-db:
image: postgres:15-alpine
container_name: umami-db
restart: unless-stopped
networks: [traefik_proxy]
environment:
POSTGRES_DB: ${UMAMI_DB_NAME}
POSTGRES_USER: ${UMAMI_DB_USER}
POSTGRES_PASSWORD: ${UMAMI_DB_PASS}
volumes:
- umami_data:/var/lib/postgresql/data