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.
All that is needed for the analytics to work on your website is one simple JavaScript tracker that you include within the headers of your website HTML. The code is open source, so there’s no scary black box when it comes to how the code works.
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: alwaysnetworks: 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.
