Umami is a privacy-first, self-hosted web analytics solution. It tracks website visits, pages and referrers without collecting personal data or using cookies. The dashboard is clean and customizable, giving you essential insights without the bloat. It’s GDPR-compliant by design and lightweight enough to run on small servers. Great for developers and businesses who care about data privacy.
Setup
docker-compose.yaml
version: '3.7'
networks:
docker_net:
external: true
volumes:
umami-db-data:
services:
umami:
image: ghcr.io/umami-software/umami:postgresql-latest
container_name: umami
restart: unless-stopped
ports:
- 3005:3000
environment:
DATABASE_URL: postgresql://umami:$UMAMI_DB_PASSWORD@umami_db:5432/umami
DATABASE_TYPE: postgresql
APP_SECRET: $UMAMI_APP_SECRET
depends_on:
umami_db:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"]
interval: 5s
timeout: 5s
retries: 5
networks:
- docker_net
umami_db:
image: postgres:15-alpine
container_name: umami_db
restart: unless-stopped
environment:
POSTGRES_DB: umami
POSTGRES_USER: umami
POSTGRES_PASSWORD: $UMAMI_DB_PASSWORD
volumes:
- umami-db-data:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"]
interval: 5s
timeout: 5s
retries: 5
networks:
- docker_net