Video tutorial coming soon.
📈 Setup Umami — Simple Privacy-Focused Analytics
Deploy Umami on Ubuntu with Docker — a clean, fast, and privacy-respecting web analytics platform. Track pageviews, sessions, and events across multiple websites from one dashboard, without storing any personal data.
📦 Resources & Setup Scripts
Grab the automated bash script from GitHub to follow along with the video.
Quick Install:
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/analytics/umami/umami-ubuntu.sh
chmod +x umami-ubuntu.sh
sudo bash umami-ubuntu.sh
Tutorial Steps
1 Download & Run the Script
The script installs Docker, starts Umami with a MySQL database, and auto-generates secure DB credentials.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/analytics/umami/umami-ubuntu.sh
chmod +x umami-ubuntu.sh
sudo bash umami-ubuntu.sh
2 Access the Web UI & Login
Open your browser and navigate to Umami. Login with the default credentials — change them immediately after first login:
http://<your-server-ip>:3002
Username: admin
Password: umami
3 Add a Website
Go to Settings → Websites → Add website. Enter your site's name and domain. Umami will generate a unique tracking ID and script snippet for your site.
4 Embed the Tracking Code
Copy the generated <script> tag from the website settings and add it to your site's <head> section. Traffic will start appearing in your dashboard immediately. Umami works without cookies and is fully GDPR-compliant.
Ports Used
| Port | Purpose |
|---|---|
| 3002 | Umami Web Dashboard |
Overview
Umami is an open-source, self-hosted web analytics solution designed to be simple, fast, and privacy-focused. It collects only aggregated, anonymized data — no cookies, no cross-site tracking, no personal data — making it fully GDPR compliant. The dashboard loads in under a second and shows real-time visitor data.
Why Use It
Umami is the simplest path to GDPR-compliant web analytics on your own server. It needs only a single database (PostgreSQL or MySQL), runs in a single Docker container, and has no ClickHouse requirement — making it viable on hosts with as little as 512 MB RAM. The dashboard is real-time, fast, and bilingual-ready. For individuals and small teams who want honest traffic numbers without Google's surveillance apparatus, Umami delivers exactly what is needed with zero overhead.
When You Need It
Who Should Use It
Real Use Cases
Main Features
How to Use After Installation
Security Best Practices
Ports and Firewall Notes
Umami runs on port 3000 inside the Docker container. Map it to localhost:3000 on the host and expose only port 443 (HTTPS) externally via Nginx Proxy Manager or Caddy. Never directly expose port 3000 to the internet. Your database (PostgreSQL on 5432 or MySQL on 3306) should be accessible only within the Docker network, not from outside.
Backup and Maintenance
Common Mistakes
Troubleshooting
Alternatives
Plausible is the more polished self-hosted analytics option — better dashboards, email digests, and a more complete feature set — but requires ClickHouse and 2+ GB RAM. Matomo is the most feature-complete self-hosted option with heatmaps, session recording, and e-commerce funnels, but is significantly heavier to run. Fathom Analytics and Simple Analytics are cloud-hosted privacy-friendly alternatives with similar simplicity to Umami but monthly fees. Google Analytics is free and integrates with Google Ads, but is a privacy liability in GDPR-regulated markets.
When Not to Use It
Skip Umami if you need advanced analytics features like session recordings, heatmaps, funnel visualization, or A/B testing — Umami intentionally keeps its scope minimal. Also avoid it if you need detailed user journey tracking or cohort analysis; the data model is visit-based and not session-replay-capable. If you are already running Plausible with ClickHouse and it is stable, there is no reason to switch to Umami — they serve the same privacy-first analytics purpose.
Need Help Setting Up Umami?
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
Frequently Asked Questions
Is Umami really free? What is the catch?
Umami is fully open-source (MIT license) and self-hosted, so there are no per-visitor fees or subscription costs. The only cost is your server hosting. Umami Cloud (the managed SaaS version) has a paid tier, but the self-hosted version has no artificial limits on sites, pageviews, or team members.
How is Umami different from Plausible?
Both are open-source, privacy-first analytics tools. The main differences: Umami needs only a single database (PostgreSQL or MySQL), while Plausible requires both PostgreSQL and ClickHouse. This makes Umami work on hosts with as little as 512 MB RAM, whereas Plausible needs 2+ GB. Plausible has email digests, a more polished UI, and slightly better documentation. For small sites or resource-constrained servers, Umami is the better choice.
Can I change the tracking script URL to avoid ad blockers?
Yes. You can configure the script path by setting the TRACKER_SCRIPT_NAME environment variable, or by adding a reverse proxy location block that maps a custom path like /metrics.js to Umami's internal script endpoint. Serving the script from your own domain under a generic name prevents most ad blockers from recognizing and blocking it.
Does Umami support tracking custom events beyond pageviews?
Yes. Include the Umami tracking script and call umami.track('event-name', { key: 'value' }) in your JavaScript. You can track button clicks, form submissions, file downloads, or any custom interaction. These events appear in the Umami dashboard under the Events tab for your site.
How do I give a client read-only access to their site's analytics?
Two options: (1) Enable the public dashboard — go to Website Settings, enable Share URL, and send the generated link. The client can view all stats without logging in. (2) Create a team member account for the client in Umami with viewer access to only their specific website. Option 1 is simpler; option 2 gives more control over what they can and cannot see.
Can Umami track visitors across multiple domains?
Each website in Umami gets its own tracking ID and dashboard. Visitors are tracked per-domain, not across domains — which is intentional for privacy. If you run several properties and want unified cross-domain tracking, you would need to aggregate data externally via the API. For most use cases, per-site dashboards are exactly what you want.
Does Umami work without JavaScript (for visitors with JS disabled)?
No. Umami relies on a JavaScript snippet to send pageview events to the backend. Visitors with JavaScript disabled will not be tracked. This is standard behavior for all modern analytics tools. If tracking non-JS visitors is critical, you would need server-side log analysis instead.
How do I upgrade Umami without losing data?
Pull the latest image (docker pull ghcr.io/umami-software/umami:postgresql-latest), stop the current container, and recreate it. Umami runs database migrations automatically on startup. Always take a database backup before upgrading. Check the Umami GitHub releases page for any breaking changes or manual migration steps before pulling a new major version.
