Skip to content

For Umami

Umami on Edge, one VM for every site you track

Umami and Postgres on a small VM, with the tracking script cached in 988 locations. Unlimited websites and events, no cookies, and a bill that never counts them.

Free to sign up. No egress fees on any product.

Why Umami on Edge

The lightest analytics stack that still does the job

Umami covers what most teams look at every day, runs on very little, and doesn't care how many sites you point at it.
  • Small script, small stack

    A tracker of about 2 KB and a Node.js app with Postgres behind it. It sits comfortably on a small VM.
  • No cookies, no personal data

    Umami sets no cookies and collects no personal data, so most sites run it without a consent banner.
  • Tracker from the CDN

    script.js caches in 988 locations on your own domain. Rename it with TRACKER_SCRIPT_NAME if ad blockers get in the way.
  • Unlimited websites

    Add every site you run to one instance and share dashboards per site or per team. Made for agencies.
  • Events, goals and funnels

    Real-time dashboards, custom events with properties, goals and funnels. Enough analytics for most teams.
  • Flat price, unlimited events

    Umami Cloud prices by events. Self-hosted on Edge, a busy month costs the same as a quiet one.

Reference architecture

How Umami maps to Edge

Umami and Postgres share one VM. The CDN serves the tracker and forwards event posts, and a nightly dump goes to a bucket.
  • Compute

    Runs Umami and Postgres with Docker Compose on one VM.

  • CDN

    Serves the tracker worldwide from your own subdomain and forwards events to the VM.

  • Storage

    Keeps nightly Postgres dumps off the VM, egress-free.

  • DNS

    Anycast DNS for stats.acme.com.

Deploy

Umami in four steps

One compose file, one CDN domain and a script tag per site.
  1. 01

    Create a Docker VM

    The docker library script installs Docker CE and Compose on first boot.

    shell
    $ edge compute create --name umami --size s-2vcpu-4gb \
        --image ubuntu-24 --region london --script docker
  2. 02

    Write the compose file

    Keep DB_PASSWORD and APP_SECRET in a .env file next to it. Umami creates its tables on first start.

    docker-compose.yml
    services:
      umami:
        image: ghcr.io/umami-software/umami:postgresql-latest
        ports: ["127.0.0.1:3000:3000"]
        environment:
          DATABASE_URL: postgresql://umami:${DB_PASSWORD}@db:5432/umami
          APP_SECRET: ${APP_SECRET}
        depends_on: [db]
        restart: always
      db:
        image: postgres:16-alpine
        environment:
          POSTGRES_DB: umami
          POSTGRES_USER: umami
          POSTGRES_PASSWORD: ${DB_PASSWORD}
        volumes: ["umami-db:/var/lib/postgresql/data"]
        restart: always
    volumes:
      umami-db:
  3. 03

    Start it and put the CDN in front

    Proxy :443 on the VM to port 3000. Then sign in as admin / umami and change the password straight away.

    shell
    $ docker compose up -d
    $ edge cdn create --name umami
    $ edge cdn domains add cdn-a1b2c3 \
        --domain stats.acme.com \
        --origin https://<vm-ip>
  4. 04

    Track your sites

    Add each website in the dashboard to get its ID, then add the tag. Custom events are one call.

    index.html
    <script defer src="https://stats.acme.com/script.js"
      data-website-id="94db1cb1-74f4-4a40-ad6c-962362670409"></script>
    
    <script>
      // custom event with properties
      umami.track('signup', { plan: 'pro' })
    </script>

Prefer to hand it off? Give the job to your AI agent or have our engineers do it.

What it costs

Twenty client sites, one line on the invoice

Umami is light enough that the VM is the whole bill. Events, websites and dashboard users don't add anything.
  • Unlimited sites and events on one VM
  • Under ~500k events a month, the $9.62 Starter size is enough
  • No consent banner to build
  • Zero egress on dashboards and exports
See compute pricing

Estimated monthly bill on Edge

Agency · 20 client sites · ~1M events a month

USD
  • Compute$19.24Standard VM · 2 vCPU · 4 GiB · 80 GB NVMe
  • CDN$0.25~1.5M requests (events + tracker), first 500k free, then $0.25/M
  • Storage$0.00Nightly dumps, inside the 5 GB free tier
  • DNS$0.00Zone and records for stats.acme.com
  • Egress$0.00
Total$19.49

FAQ

Umami on Edge, answered

Something else? Ask an engineer.
How does this compare to Umami Cloud?
Same software, and you control the host. Self-hosting on Edge is a flat fee with no per-event pricing, and the data stays on your infrastructure.
Umami or Plausible?
Umami is lighter and simpler: Node.js and Postgres. Plausible is heavier (Elixir and ClickHouse) with more reporting depth. For most small and medium sites, Umami is plenty.
Can I run it for clients?
Yes. Multi-site is built in. Add each client domain to one instance, give each client access to their own dashboard, and send them a share link or report.
How small can the VM be?
Under roughly 500k events a month, the Starter size (1 vCPU, 2 GiB, $9.62/mo) is enough. Postgres tuning matters more than CPU at that scale, and you can resize in place later.
Will ad blockers stop it?
Some block known tracker names. Serving the script from your own subdomain helps, and TRACKER_SCRIPT_NAME lets you rename script.js to something neutral.

Stand up Umami

Start free. Track every site you run from one small VM.

Free tiers hard-cap. Nothing bills until you add a card.