umami-software

    umami-software/umami

    #290 this week

    Umami is a privacy-first analytics platform. Traffic, campaigns, behavior, conversions, and revenue in one place — no cookies, no surveillance, self-hosted or in the cloud.

    analytics
    audience-segmentation
    charts
    cohort-analysis
    google-analytics
    product-analytics
    TypeScript
    MIT
    38.2K stars
    7.8K forks
    38.2K GitHub watchers
    Updated 8/17/2026
    View on GitHub

    Build with Backblaze B2

    SDKs, agent skills, IDE extensions, and reference pipelines from Backblaze Labs. All open source.

    Explore Backblaze Labs

    Loading star history...

    Use Cases & Benefits

    • Provides a modern, privacy-focused web analytics platform as an open-source alternative to Google Analytics and similar tools.
    • Ensures user privacy by avoiding tracking cookies and personal data collection while delivering essential analytics features.
    • Use for website owners seeking GDPR-compliant analytics without compromising visitor privacy or relying on third-party services.
    • Use for developers wanting to self-host a lightweight, customizable analytics solution with support for PostgreSQL, MySQL, or MariaDB.
    • Use for product teams needing audience segmentation, cohort analysis, and user journey insights without vendor lock-in.

    About umami

    Umami Logo

    Umami

    Umami is a simple, fast, privacy-focused alternative to Google Analytics.

    GitHub Release MIT License Build Status Umami Demo


    🚀 Getting Started

    A detailed getting started guide can be found at umami.is/docs.


    🛠 Installing from Source

    Requirements

    • A server with Node.js version 18.18 or newer
    • A database. Umami supports MariaDB (minimum v10.5), MySQL (minimum v8.0) and PostgreSQL (minimum v12.14) databases.

    Get the Source Code and Install Packages

    git clone https://github.com/umami-software/umami.git
    cd umami
    npm install
    

    Configure Umami

    Create an .env file with the following:

    DATABASE_URL=connection-url
    

    The connection URL format:

    postgresql://username:mypassword@localhost:5432/mydb
    mysql://username:mypassword@localhost:3306/mydb
    

    Build the Application

    npm run build
    

    The build step will create tables in your database if you are installing for the first time. It will also create a login user with username admin and password umami.

    Start the Application

    npm run start
    

    By default, this will launch the application on http://localhost:3000. You will need to either proxy requests from your web server or change the port to serve the application directly.


    🐳 Installing with Docker

    To build the Umami container and start up a Postgres database, run:

    docker compose up -d
    

    Alternatively, to pull just the Umami Docker image with PostgreSQL support:

    docker pull docker.umami.is/umami-software/umami:postgresql-latest
    

    Or with MySQL support:

    docker pull docker.umami.is/umami-software/umami:mysql-latest
    

    🔄 Getting Updates

    To get the latest features, simply do a pull, install any new dependencies, and rebuild:

    git pull
    npm install
    npm run build
    

    To update the Docker image, simply pull the new images and rebuild:

    docker compose pull
    docker compose up --force-recreate -d
    

    🛟 Support

    GitHub Twitter LinkedIn Discord

    Discover Repositories

    Search across tracked repositories by name or description