Quickstart Guide
This guide will help you get Umami running quickly using Docker Compose. You’ll have a working analytics dashboard in just a few minutes.Prerequisites
Before you begin, make sure you have:- Docker and Docker Compose installed on your system
- Basic command line knowledge
- A domain or server to host Umami (optional for local testing)
Installation with Docker Compose
Start Umami with Docker Compose
The repository includes a This command will:
docker-compose.yml file that sets up both Umami and PostgreSQL:- Pull the latest Umami image from
ghcr.io/umami-software/umami:latest - Set up a PostgreSQL 15 database
- Create persistent storage for your data
- Start Umami on port 3000
The
-d flag runs the containers in detached mode (in the background).Verify Installation
Wait a few seconds for the services to start, then check they’re running:You should see both
umami and db containers running and healthy.Initial Login
Add Your First Website
Now let’s add a website to track:Add Website
Click the Add Website button and fill in the details:
- Name: A friendly name for your website (e.g., “My Blog”)
- Domain: Your website domain (e.g., “myblog.com”)
- Share URL: Optional - enable public stats sharing
Install Tracking Script
Add the tracking script to your website:- HTML Website
- React / Next.js
- WordPress
- Custom Domain
Add the script tag to the
<head> section of your HTML:The tracking script is lightweight (< 2KB) and loads asynchronously, so it won’t impact your page load times.
View Your First Pageview
Let’s verify everything is working:Check the Dashboard
Go back to your Umami dashboard and click on your website. You should see:
- Your first pageview appearing in real-time
- The page URL in the “Pages” section
- Browser and device information
- Geographic location (if GeoIP is configured)
Explore the Dashboard
The dashboard shows:
- Real-time visitors: Current active users
- Views: Total pageviews
- Unique visitors: Distinct visitor count
- Bounce rate: Single-page visits
- Visit duration: Average time on site
- Top pages: Most visited pages
- Referrers: Traffic sources
- Browsers, OS, Devices: Technology breakdown
- Countries: Geographic distribution
Next Steps
Track Custom Events
Learn how to track button clicks, form submissions, and custom interactions.
Configure Environment Variables
Customize Umami with environment variables for advanced features.
Set Up a Custom Domain
Configure a reverse proxy with nginx or use a platform’s domain features.
Explore the API
Use the Umami API to integrate analytics into your applications.
Troubleshooting
Tracking script not loading
Tracking script not loading
- Check that Umami is running:
docker compose ps - Verify the script URL is correct and accessible
- Check browser console for errors
- Ensure your website-id is correct
No data appearing in dashboard
No data appearing in dashboard
- Verify the tracking script is in the
<head>section - Check that the script has loaded in browser DevTools > Network tab
- Wait a few seconds - data updates in near real-time
- Check browser console for CORS errors
Can't access localhost:3000
Can't access localhost:3000
- Ensure Docker containers are running:
docker compose ps - Check port 3000 isn’t already in use
- View logs:
docker compose logs umami - Try restarting:
docker compose restart
Database connection errors
Database connection errors
- Check both containers are healthy:
docker compose ps - View database logs:
docker compose logs db - Ensure the DATABASE_URL is correct in docker-compose.yml
- Try recreating containers:
docker compose down && docker compose up -d