Umami Analytics provides website owners with the ability to opt out of the Google Analytics walled garden. You can easily self-host the software on your own server in order to monitor a remotely deployed website somewhere else. In this article, I’ll use the usual Docker-Compose method of spinning up the needed containers in order to run the software.
Here’s the yml file that will be used for the containers:
version: "3" services: umami: image: sparanoid/umami:postgresql-latest ports: - "3000:3000" environment: DATABASE_URL: postgresql://umami:umami@db:5432/umami DATABASE_TYPE: postgresql HASH_SALT: awget34rrq23rqawd456874 depends_on: - db networks: - tunnel restart: always db: image: postgres:12-alpine environment: POSTGRES_DB: umami POSTGRES_USER: umami POSTGRES_PASSWORD: 902309waefhalkwn volumes: - ./schema.postgresql.sql:/docker-entrypoint-initdb.d/schema.postgresql.sql:ro - /mnt/storage/umami/db:/var/lib/postgresql/data networks: - tunnel restart: always networks: tunnel: external: true
You’ll notice here that I am using an external network called “tunnel”. This allows me to expose the analytics dashboard to the outside internet thru a Cloudflare Tunnel. I am currently using that in conjunction with Cloudflare Access in order to secure the site and only allow a range of IP addresses access to it.