О статье

Эта статья посвящена развертыванию и использованию Umami — легковесного, приватного и open-source решения для веб-аналитики. Информация основана на официальной документации проекта: https://umami.is/docs.


Umami: приватная веб-аналитика для вашего сайта

Официальное определение

Umami — это open-source, ориентированный на приватность инструмент веб-аналитики, служащий альтернативой Google Analytics. Он предоставляет ключевые метрики о трафике, поведении пользователей и производительности сайта, не собирая и не храня персональные данные.

https://umami.is/docs

Ключевые особенности

  • Не собирает персональные данные
    Umami не хранит IP-адреса, не использует cookies и не позволяет идентифицировать пользователей.

  • Соответствует GDPR и PECR
    Поскольку данные анонимизированы и не могут быть связаны с конкретным человеком, Umami считается совместимым с GDPR и PECR [1].

  • Не требует уведомления о cookie
    Так как Umami не использует cookies, отсутствует необходимость в баннере согласия на использование cookie-файлов [2].

  • Легковесный и быстрый
    Минимальное влияние на производительность сайта благодаря небольшому размеру трекера.

  • Self-hosted
    Полный контроль над данными: вы сами решаете, где и как хранить информацию.

  • Поддержка SPA (Single Page Applications)
    Работает как с классическими сайтами, так и с одностраничными приложениями на React, Vue и других фреймворках [3].

  • Отслеживание событий (Events)
    Можно настраивать отслеживание кликов, загрузок и других пользовательских действий [4].

Для SelfOps

Разместите Umami на своем сервере рядом с другими сервисами (например, в Docker-контейнере или через Podman). Это естественное продолжение вашей инфраструктуры.


Быстрый старт: как начать использовать Umami

Согласно документации, процесс настройки включает всего 4 шага:

  1. Установить приложение
  2. Войти в интерфейс
  3. Добавить сайт
  4. Вставить код отслеживания в HTML

Рассмотрим каждый шаг подробно.

Шаг 1: Установка Umami

Umami можно развернуть несколькими способами:

  • Через Docker
  • Через npm
  • На хостинге (например, Vercel, Railway, Render и др.)

Рекомендуемый способ: Docker

Создайте docker-compose.yml:

version: '3'
services:
  umami:
    image: umami-software/umami:latest
    container_name: umami
    restart: unless-stopped
    ports:
      - "3000:3000"
    environment:
      - DATABASE_URL=postgresql://umami:umami@db:5432/umami
      - DATABASE_TYPE=postgresql
      - HASH_SALT=your-super-secret-salt
    depends_on:
      - db
 
  db:
    image: postgres:15
    restart: unless-stopped
    environment:
      - POSTGRES_DB=umami
      - POSTGRES_USER=umami
      - POSTGRES_PASSWORD=umami
    volumes:
      - umami-db-data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U umami"]
      interval: 10s
      timeout: 5s
      retries: 5
 
volumes:
  umami-db-data:

Запустите:

docker-compose up -d

Важно!

Замените your-super-secret-salt на случайную строку (например, сгенерированную через openssl rand -hex 32). Это необходимо для безопасного хеширования данных.

После запуска перейдите по адресу: http://localhost:3000 (или ваш домен, если настроено проксирование через Nginx/Caddy).

Первый вход:

  • Логин: admin
  • Пароль: umami

Безопасность

Смените пароль сразу после входа! Это критически важно, особенно если сервис доступен извне.

Umami в CasaOS

Если используете CasaOS, то просто установите big-bear-umami из магазина приложений, только не забудьте:

  • сменить порт с 3000 на другой, желательно выше 10000, уж больно популярный 3000 порт нынче стал.
  • сгенерировать надежный APP_SECRET
  • прокинуть тома в секции db, если используете специфические пути

Шаг 2: Вход в интерфейс

После запуска откройте в браузере адрес, где развернут Umami.

Войдите с учетными данными:

  • Username: admin
  • Password: umami

Производственная среда

Не оставляйте учетные данные по умолчанию. Измените пароль в разделе Settings → Account.


Шаг 3: Добавление сайта

  1. В интерфейсе перейдите в WebsitesAdd website.
  2. Укажите:
    • Domain — домен вашего блога (например, selfops.ru)
    • Name — название (например, SelfOps Blog)
  3. Нажмите Save.

После этого будет сгенерирован код отслеживания.


Шаг 4: Вставка кода отслеживания

Код выглядит примерно так:

<script async src="https://your-umami-domain.com/script.js" data-website-id="ваш-уникальный-id"></script>

Добавьте его в <head> вашего сайта (например, в шаблон Hugo, Jekyll, WordPress или статического генератора).

Пример для Hugo

Если вы используете Hugo, вставьте код в layouts/partials/head.html:

{{ if hugo.IsProduction }}
<script async src="https://analytics.selfops.ru/script.js" data-website-id="abc123xyz"></script>
{{ end }}

Это обеспечит работу только в production-сборке.

Quartz_v4

Если используете генератор статического контента Quartz_v4, как и я, то процесс добавления сайта описан здесь


Дополнительные возможности

Отслеживание событий

Umami позволяет отслеживать пользовательские события, например, клики по кнопкам.

Пример:

<button onclick="umami('download_clicked')">Скачать</button>

Подробнее: Track Events — Umami Docs

Поддержка SPA

Если ваш блог использует React, Vue или другой SPA-фреймворк, Umami автоматически отслеживает навигацию между маршрутами без дополнительной настройки [3].


Безопасность и приватность

Что Umami НЕ собирает

  • ❌ IP-адреса (анонимизированы)
  • ❌ Cookies
  • ❌ Персональные данные
  • ❌ Идентификаторы пользователей
  • ❌ Данные для кросс-сайтового трекинга

Заключение

Umami — это идеальный выбор для тех, кто, как и вы, управляет своими сервисами и ценит приватность. Он прост в установке, соответствует современным требованиям к защите данных и отлично вписывается в экосистему self-hosted решений.

Итог

Umami — это не просто альтернатива Google Analytics. Это философия: аналитика без компромиссов в приватности.

Установите Umami уже сегодня и начните собирать метрики, не жертвуя этикой.


Ссылки