Resources
Umami
-
db
postgres
Ready
-
app
ghcr.io/umami-software/umami:postgresql-latest
Running
-
ingress
stats.example.com
Live
Parameters
Deploy Umami
App Name required
umami
Domain required
stats.example.com
App secret
•••••••••••••••• generated
Generated if left empty
Tracker script name
script.js
Rename it to dodge naive ad blockers
Collect endpoint
/api/send
Ignore IPs
203.0.113.4,10.0.0.0/8
Comma-separated addresses or CIDR ranges to exclude
Disable telemetry
On
Disable update checks
On
Disable the login page
Off
Client IP header
x-forwarded-for
Enable HTTPS
On
Cancel Deploy
YAML
apiVersion: leaf/v1
kind: Template
metadata:
name: umami
displayName: 'Umami'
description: 'Privacy-friendly web analytics. One script tag, no cookies, your own database.'
icon: https://github.com/umami-software.png?size=256
version: '1.0.0'
category: analytics
tags: ['analytics', 'privacy', 'tracking']
keywords: ['google analytics alternative', 'plausible', 'page views', 'visitors', 'stats']
homepage: https://umami.is
license: MIT
parameters:
- name: appName
displayName: 'App Name'
type: string
default: 'umami'
required: true
validation:
pattern: '^[a-z][a-z0-9-]{1,58}[a-z0-9]$'
message: 'Must be lowercase alphanumeric with hyphens, 3-60 chars'
- name: domain
displayName: 'Domain'
type: string
required: true
placeholder: 'stats.example.com'
- name: appSecret
displayName: 'App secret'
description: 'Generated if left empty'
type: secret
validation:
min: 32
- name: trackerScriptName
displayName: 'Tracker script name'
description: 'Rename it to dodge naive ad blockers'
type: string
default: 'script.js'
- name: collectEndpoint
displayName: 'Collect endpoint'
type: string
default: '/api/send'
- name: ignoreIp
displayName: 'Ignore IPs'
description: 'Comma-separated addresses or CIDR ranges to exclude'
type: string
default: ''
placeholder: '203.0.113.4,10.0.0.0/8'
- name: disableTelemetry
displayName: 'Disable telemetry'
type: boolean
default: true
- name: disableUpdates
displayName: 'Disable update checks'
type: boolean
default: true
- name: disableLogin
displayName: 'Disable the login page'
type: boolean
default: false
- name: clientIpHeader
displayName: 'Client IP header'
type: string
default: 'x-forwarded-for'
- name: enableTls
displayName: 'Enable HTTPS'
type: boolean
default: true
resources:
- name: db
type: database
config:
name: '{{ params.appName }}-db'
- name: app
type: deployment
config:
name: '{{ params.appName }}'
image: ghcr.io/umami-software/umami:postgresql-latest
replicas: 1
ports:
- name: http
containerPort: 3000
servicePort: 3000
protocol: TCP
env:
- key: DATABASE_TYPE
value: postgresql
- key: DATABASE_URL
value: '{{ resources.db.connectionString }}'
secret: true
- key: APP_SECRET
value: '{{ params.appSecret }}'
secret: true
- key: TRACKER_SCRIPT_NAME
value: '{{ params.trackerScriptName }}'
- key: COLLECT_API_ENDPOINT
value: '{{ params.collectEndpoint }}'
- key: IGNORE_IP
value: '{{ params.ignoreIp }}'
- key: DISABLE_TELEMETRY
value: '{{ params.disableTelemetry }}'
- key: DISABLE_UPDATES
value: '{{ params.disableUpdates }}'
- key: DISABLE_LOGIN
value: '{{ params.disableLogin }}'
- key: CLIENT_IP_HEADER
value: '{{ params.clientIpHeader }}'
- name: ingress
type: ingress
config:
host: '{{ params.domain }}'
tlsEnabled: '{{ params.enableTls }}'
routes:
- path: /
serviceName: '{{ resources.app.serviceName }}'
servicePort: 3000