Umami Analytics VPS
Umami and PostgreSQL in Docker, with Umami's default admin password replaced before anyone can reach it. You log in through an SSH tunnel, give it a domain with one command, and add the script to your sites.
Who it suits
Site owners who want light, privacy-friendly statistics for a few sites without a ClickHouse database to look after. Plausible CE is the alternative with a heavier stack; Umami Cloud is the managed version of Umami.
Which plan
Budget (2 GB) is enough for Umami and PostgreSQL with modest traffic. Umami publishes no minimum; a busy site grows the database, so watch disk and memory and move up when PostgreSQL wants more.
What we install
Umami is open-source web analytics: page views, referrers, devices and custom events, without cookies. We run the compose setup from Umami's repository (Umami's image and postgres:15-alpine) in /opt/umami with generated secrets, and change the default admin password through Umami's API; the new one is in /root/umami-admin.txt.
- jq
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
- jq
- docker-ce
- docker-ce-cli
- containerd.io
- docker-buildx-plugin
- docker-compose-plugin
From order to ready
- Server ready. We email you when the server is running, and you can log in with SSH. The installer starts on that same first boot.
- Installer running. It logs to
/var/log/vps9-setup.log;tail -fit to watch. - Application ready.
/var/lib/vps9-setup.exitappears when the installer has finished, holding 0 if it worked. Umami is ready whencurl http://127.0.0.1:3000/api/heartbeatanswers on the server and the login in /root/umami-admin.txt works.
What you still do
- From your computer, run
ssh -L 3000:127.0.0.1:3000 root@<your IPv4>, openhttp://localhost:3000and log in as admin with the password fromcat /root/umami-admin.txt. - Point a domain such as stats.example.com at the server, allow ports 80 and 443 in the panel firewall, and run
vps9-https stats.example.com. - Add your website in Umami and paste its tracking script into your pages.
Exposure and security
Umami ships with the login admin / umami. The installer changes that password through Umami's API while Umami is only reachable on 127.0.0.1:3000, so the default never faces the internet, and Umami has no public sign-up. vps9-https puts Caddy on 80 and 443 for your domain, which the tracking script needs.
Backups and upgrades
Update with cd /opt/umami && docker compose pull && docker compose up -d after reading the release notes. We turn on the operating system's automatic security updates. Back up the database with docker compose exec db pg_dump -U umami umami and copy the dump and /opt/umami/.env off the server. We run the hardware, the network and the first-boot install; after that, Umami is yours to run, and we don't manage, update or back it up for you.
Umami questions
Umami or Plausible?
Both count visits without cookies. Umami runs on PostgreSQL alone and fits the Budget plan; Plausible CE adds ClickHouse for its events, needs Standard, and has more reports built in. Pick Umami for a few small sites, Plausible for heavier traffic or its reports.
Do ad blockers block Umami?
Some block the default script name. Umami can serve its script and collection endpoint under other names with its TRACKER_SCRIPT_NAME and COLLECT_API_ENDPOINT settings; add them to the umami service in /opt/umami/compose.yaml.
Can one Umami track several sites?
Yes. Add each website in Umami's settings; each gets its own tracking script and dashboard, and you can share a read-only link to any of them.
Order it from your terminal
$ vps9 servers create --plan budget --image ubuntu-24.04 --app umami --hostname web-1 --key key_8f2c{
"plan": "budget",
"image": "ubuntu-24.04",
"hostname": "web-1",
"app": "umami"
}Related apps
Or browse all 28 one-click apps.