Back to articles
Technology Insight

Deploying Umami on a VPS: A Modern, Privacy-First Web Analytics Alternative to Google Analytics

May 30, 2026

Introduction: The Changing Landscape of Web Analytics

For over a decade, Google Analytics has been the undisputed standard for tracking website traffic and user behavior. However, the modern business landscape is shifting rapidly. Increased regulatory scrutiny under frameworks like GDPR and CCPA, coupled with a growing consumer demand for data privacy, has forced organizations to re-evaluate their third-party tracking dependencies. Furthermore, the complexity of Google Analytics 4 (GA4) has left many product managers, marketers, and business owners looking for a more streamlined, intuitive solution.

Enter Umami Analytics—an open-source, privacy-focused, and incredibly lightweight alternative. By deploying Umami on your own Virtual Private Server (VPS), you retain 100% ownership of your data, bypass cookie banner requirements in many jurisdictions, and drastically reduce the performance overhead on your website. This guide provides a comprehensive, technical walkthrough of why and how to transition to self-hosted Umami analytics.

Why Modern Businesses are Migrating to Umami

While enterprise-grade tools have their place, Umami addresses the core requirements of modern web analytics without the bloat. Here is why it is becoming the go-to choice for businesses deploying on their own infrastructure:

  • Total Data Ownership: When you host Umami on your VPS, your user data never leaves your servers. There are no third parties analyzing your traffic for advertising purposes.
  • GDPR and CCPA Compliance: Umami does not collect any personally identifiable information (PII) and anonymizes all gathered data. It operates entirely without cookies, meaning you do not need to annoy users with consent banners just to track basic pageviews.
  • Lightweight Performance: The tracking script is under 2KB, which is significantly smaller than Google Analytics. This guarantees faster page load times and better Core Web Vitals scores.
  • Clean, Actionable UI: Instead of navigating hundreds of confusing menus, Umami presents all essential metrics—views, visitors, bounce rates, traffic sources, and geographic location—on a single, elegant dashboard.

Prerequisites for VPS Deployment

Before initiating the installation process, ensure your infrastructure meets the following baseline requirements:

  1. A VPS running a modern Linux distribution (e.g., Ubuntu 22.04 LTS or 24.04 LTS).
  2. A registered domain or subdomain (e.g., analytics.yourcompany.com) with A/AAAA records pointed to your VPS IP address.
  3. Docker and Docker Compose installed on the server.
  4. Basic familiarity with the command-line interface (CLI) and SSH access to your server.

Step-by-Step Installation Guide via Docker Compose

Utilizing Docker Compose is the most efficient and maintainable method for deploying Umami. It packages the application environment and the database container together neatly.

Step 1: Connect to Your VPS and Setup the Directory

First, SSH into your server and create a dedicated directory for your Umami deployment to keep your file system organized.

ssh user@your-vps-ip
mkdir -p ~/umami
cd ~/umami

Step 2: Create the Docker Compose Configuration

Umami officially supports both PostgreSQL and MySQL. In this guide, we will utilize PostgreSQL as the backend database. Create a file named docker-compose.yml using your preferred text editor:

nano docker-compose.yml

Paste the following configuration into the file:

Note: Ensure you update the POSTGRES_PASSWORD and APP_SECRET with strong, unique strings before deploying to production.

version: '3'
services:
  db:
    image: postgres:15-alpine
    environment:
      POSTGRES_DB: umami
      POSTGRES_USER: umami
      POSTGRES_PASSWORD: your_secure_password_here
    volumes:
      - umami-db-data:/var/lib/postgresql/data
    restart: always

  umami:
    image: ghcr.io/umami-software/umami:postgresql-latest
    environment:
      DATABASE_URL: postgresql://umami:your_secure_password_here@db:5432/umami
      APP_SECRET: your_random_long_secret_string
      TRACKER_SCRIPT_NAME: custom_tracker_name
    ports:
      - "3000:3000"
    depends_on:
      - db
    restart: always

volumes:
  umami-db-data:

Step 3: Launch the Containers

With the configuration file in place, pull the official images and start the services in detached mode:

docker-compose up -d

Verify that both containers are running successfully by executing docker-compose ps. Umami should now be accessible locally via port 3000.

Configuring a Reverse Proxy with Nginx and SSL

Exposing port 3000 directly to the web is insecure. To ensure enterprise-grade security, we must set up Nginx as a reverse proxy and secure it with a complimentary Let's Encrypt SSL certificate.

Step 1: Install Nginx

sudo apt update
sudo apt install nginx -y

Step 2: Configure the Nginx Server Block

Create a new configuration file for your analytics subdomain:

sudo nano /etc/nginx/sites-available/analytics.yourcompany.com

Insert the following configuration, ensuring you map the server_name to your actual domain:

server {
    listen 80;
    server_name analytics.yourcompany.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Enable the site configuration and restart Nginx:

sudo ln -s /etc/nginx/sites-available/analytics.yourcompany.com /etc/nginx/sites-enabled/
sudo systemctl restart nginx

Step 3: Secure with Let's Encrypt SSL

Incorporate Certbot to handle automatic SSL provisioning and renewal:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d analytics.yourcompany.com

Follow the on-screen prompts to enforce HTTPS redirection. Your analytics portal is now securely accessible over HTTPS.

Initial Dashboard Setup and Integration

Navigate to [https://analytics.yourcompany.com](https://analytics.yourcompany.com) in your web browser. You will be greeted by the Umami login screen.

  • Default Username: admin
  • Default Password: umami

Critical Security Action: Navigate immediately to Settings > Profile and update the administrator password to a secure alternative.

Adding Your Website and Injecting the Script

To begin tracking traffic, perform the following actions within the dashboard:

  1. Go to Settings > Websites and click on Add Website.
  2. Enter your website's name and domain, then click save.
  3. Click the Edit button next to your new website and select the Tracking Code tab.

Copy the generated asynchronous script tag. It will resemble the following structure:

Paste this script tag into the section of your target website. Because the script executes asynchronously, it will not hinder your website's DOM parsing or rendering speed.

Advanced Features: Custom Event Tracking

Beyond basic page views, businesses often need to track conversions, such as button clicks, form submissions, or digital downloads. Umami handles this seamlessly using simple JavaScript events. For instance, to track a newsletter subscription signup button, you can append a data attribute directly to your HTML element:

Alternatively, you can trigger events programmatically via JavaScript inside your web applications:

umami.track('Purchase Complete', { value: 49.99 });

These events populate dynamically within your Umami dashboard under the "Events" tab, providing immediate insight into user conversion paths.

Conclusion: Long-term Benefits of Self-Hosting Analytics

Migrating away from legacy analytics suites to a self-hosted Umami setup on a VPS is a strategic investment. It demonstrates a profound commitment to consumer data privacy while simultaneously boosting your web properties' technical performance. By maintaining total governance over your analytics pipeline, your organization is insulated from sudden corporate policy shifts, tracking blocklists, and evolving global privacy compliance laws. Umami proves that you do not need to compromise on data depth to preserve user trust.

Deploying Umami on a VPS: A Modern, Privacy-First Web Analytics Alternative to Google Analytics | DPTCloud