From dc5c33b6c027953ad3e47b10b2aa5f9e4d6bea22 Mon Sep 17 00:00:00 2001 From: Mauricio Siu <47042324+Siumauricio@users.noreply.github.com> Date: Sun, 9 Mar 2025 17:17:36 -0600 Subject: [PATCH] Add Umami analytics blueprint with Docker Compose and configuration --- blueprints/umami/docker-compose.yml | 34 ++++++++++++++++++++++++++++ blueprints/umami/template.yml | 13 +++++++++++ blueprints/umami/umami.png | Bin 0 -> 4179 bytes meta.json | 16 +++++++++++++ 4 files changed, 63 insertions(+) create mode 100644 blueprints/umami/docker-compose.yml create mode 100644 blueprints/umami/template.yml create mode 100644 blueprints/umami/umami.png diff --git a/blueprints/umami/docker-compose.yml b/blueprints/umami/docker-compose.yml new file mode 100644 index 00000000..26efd337 --- /dev/null +++ b/blueprints/umami/docker-compose.yml @@ -0,0 +1,34 @@ +services: + umami: + image: ghcr.io/umami-software/umami:postgresql-v2.16.1 + restart: always + healthcheck: + test: ["CMD-SHELL", "curl http://localhost:3000/api/heartbeat"] + interval: 5s + timeout: 5s + retries: 5 + depends_on: + db: + condition: service_healthy + environment: + DATABASE_URL: postgresql://umami:umami@db:5432/umami + DATABASE_TYPE: postgresql + APP_SECRET: ${APP_SECRET} + db: + image: postgres:15-alpine + restart: always + healthcheck: + test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] + interval: 5s + timeout: 5s + retries: 5 + + volumes: + - db-data:/var/lib/postgresql/data + environment: + POSTGRES_DB: umami + POSTGRES_USER: umami + POSTGRES_PASSWORD: umami + +volumes: + db-data: diff --git a/blueprints/umami/template.yml b/blueprints/umami/template.yml new file mode 100644 index 00000000..d9bed628 --- /dev/null +++ b/blueprints/umami/template.yml @@ -0,0 +1,13 @@ +variables: + main_domain: ${randomDomain} + +config: + domains: + - serviceName: umami + port: 3000 + host: ${main_domain} + + env: + APP_SECRET: ${base64:64} + + mounts: [] diff --git a/blueprints/umami/umami.png b/blueprints/umami/umami.png new file mode 100644 index 0000000000000000000000000000000000000000..de2f7615bd66089c2bcf814f3f46ffee1a124f4d GIT binary patch literal 4179 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 JQNu3ie*m&@+GYR% literal 0 HcmV?d00001 diff --git a/meta.json b/meta.json index 1ae699dd..3ebaad8e 100644 --- a/meta.json +++ b/meta.json @@ -31,5 +31,21 @@ "analytics", "privacy" ] + }, + { + "id": "umami", + "name": "Umami", + "version": "v2.16.1", + "description": + "Umami is a simple, fast, privacy-focused alternative to Google Analytics.", + "logo": "umami.png", + "links": { + "github": "https://github.com/umami-software/umami", + "website": "https://umami.is", + "docs": "https://umami.is/docs" + }, + "tags": [ + "analytics" + ] } ]