Команда инженеров · свой ЦОД в РФ · своё железо · своя панель · CloudStack + Linstor · MCP · база знаний по self-hosted
Проверено
16 июля 2026 г.
Запуск
docker compose (готовый образ ghcr.io/umami-software/umami)
Ключевой замер
RAM idle ~202 MiB на два контейнера
Версия
3.2.0
Репозиторий
GitHub →
Аналитика и метрики

Umami

Легкая приватная веб-аналитика на своем сервере: посещаемость, источники трафика, страницы и события без cookie-баннера. Open-source альтернатива Google Analytics. Развернули, вошли в живой дашборд и замерили потребление.

Июль 2026 ~9 минут чтения Fatmetal Team
Аналитика Лицензия: MIT Статус: запущен у нас, v3.2.0

Вердикт

Подходит
  • нужна посещаемость без cookie-баннера и без вывоза данных за рубеж (152-ФЗ)
  • минимум ресурсов и обслуживания - два контейнера, ставится за минуты
  • одна инсталляция на много сайтов (мультисайт), каждому свой дашборд
Не подходит
  • нужна продуктовая аналитика - воронки по событиям, session replay, feature flags (это PostHog)
  • нужны отчеты уровня Matomo и сырой доступ к хитам
  • не готовы держать даже маленький сервер - тогда облако
Мин. тариф: CPU2-RAM4-DISK50 Рекомендуем: CPU2-RAM4-DISK50 Сложность: easy Время запуска: меньше минуты Главный риск: своего TLS нет, дефолтные креды при первом входе Прод-готовность: с оговорками (внешний TLS + смена пароля)
Что это

Что это и какую задачу решает

Umami - open-source альтернатива Google Analytics с упором на приватность. Одна строчка скрипта на сайт, и вы видите посещаемость, источники трафика, популярные страницы, страны, устройства, браузеры, UTM-метки, кастомные события и цели. Cookieless по умолчанию: в типовом случае cookie-баннер не нужен, персональные данные не собираются, данные посетителей не покидают ваш сервер.

Стек предельно простой: приложение на Next.js плюс одна база PostgreSQL - два контейнера, около двухсот мегабайт ОЗУ в простое. Одна инсталляция обслуживает много сайтов: у каждого свой website-id и свой дашборд. Лицензия MIT - весь функционал доступен в self-host бесплатно, без платных тиров и open-core-урезания.

Next.jsTypeScriptPostgreSQL 15Docker
Сравнение

Чем отличается от Google Analytics

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

ПараметрUmami (self-hosted)Google Analytics 4
Модельopen-source, свой сервербесплатный SaaS, данные у Google
Где данные посетителейна вашем сервере (152-ФЗ)на серверах Google, за рубежом
Cookie-баннерне нужен (cookieless)нужен, плюс согласие
Ресурсыдва контейнера, ~200 МБне ваша забота
Vendor lock-inнет, MIT, свой экспортэкосистема Google
Под капотом

Тех-стек и архитектура

Приложение - Next.js на TypeScript: и дашборд, и прием событий, и API - все в одном контейнере на Node. Хранилище - одна база PostgreSQL (в официальном compose это postgres:15-alpine): просмотры, события, сайты и пользователи лежат в ней, никаких ClickHouse, Kafka или Redis. Сбор данных - через легковесный скрипт, который шлет события на эндпоинт приложения; по умолчанию без cookie.

Важная деталь про версию. В линии 3.x проект стал postgres-only, а официальный образ публикуется только тегом latest - персональных тегов вида postgresql-v3.2.0 в реестре больше нет (мы проверяли: манифест отдает 404). Для воспроизводимости мы запинили образ по sha256-digest, а версию сверили с реальностью - package.json внутри контейнера показывает 3.2.0, что совпадает с GitHub Releases.

Конфигурация

Минимальная конфигурация

Реальные требования против официального минимума.

Официальный минимум RAM~1 GB
Реально в простое~0.2 GB (около 202 MiB на два контейнера)
Рекомендуем тарифCPU2-RAM4-DISK50
Тариф FatmetalCPU2-RAM4-DISK50 - 500 ₽/мес
i

Важно: Umami реально живет на паре сотен мегабайт, так что упирается не в аналитику, а в базовые накладные расходы виртуалки. Хватает тарифа CPU2-RAM4-DISK50 за 500 руб/мес с большим запасом.

В маркетплейсе Fatmetal

Не хотите ставить руками?

Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из разбора вручную. Заказываете сервер, за пару минут получаете рабочий домен, валидный TLS и файл с доступами.

Рекомендуемая конфигурация: CPU2-RAM4-DISK50

Развернуть в 1 клик →
Развертывание

Развертывание на Fatmetal

Базовый путь - Fatmetal Cloud Server + Ubuntu 24.04 + Docker.

  1. Создать сервер

    тариф CPU2-RAM4-DISK50, Ubuntu 24.04, приложение Docker из маркетплейса.

  2. Поднять стек

    mkdir ~/umami && cd ~/umami
    # docker-compose.yml: app umami (Next.js) + postgres:15-alpine
    # APP_SECRET и пароль Postgres - сгенерировать случайными
    docker compose up -d
  3. Выдать TLS

    # приложение слушает 127.0.0.1:3000, наружу - Caddy с авто-TLS
    caddy reverse-proxy --from umami.example.com --to 127.0.0.1:3000

    Проверка: curl -I https://ваш-домен/ отдает 200. Хелсчек приложения - /api/heartbeat.

Дашборд Umami: метрики посещаемости и график просмотров развернутого экземпляра
Обзорный дашборд Umami 3.2.0 на тарифе CPU2-RAM4-DISK50.
Замеры

Что измерили после запуска

Цифры со свежей установки на тарифе CPU2-RAM4-DISK50. Данные в дашборде - живые: отправили 90 просмотров и 12 кастомных событий, чтобы графики были непустыми.

RAM в простое (всего)~202 MiB (umami ~172, postgres ~30)
Контейнеров2
Образы на диске~1.68 GB
Старт до готовностименьше минуты (при готовых образах)
Отклик корня (localhost)~11-22 мс
i

Главное: для сравнения - PostHog в простое просит больше 12 GiB на тридцати контейнерах, Plausible около 570 МБ из-за ClickHouse. Umami с одной SQL-базой держится в пределах пары сотен мегабайт: это самая легкая аналитика из наших разборов.

Umami: метрики, топ-страницы, источники трафика и браузеры на живых данных
Живые данные: топ-страницы, источники (habr.com, telegram.me, yandex, google) и браузеры.
Realtime-раздел Umami с живой лентой событий signup-click
Realtime: просмотры, события и живая лента - видно кастомные события signup-click.
Umami: таблица разбивки посещаемости по страницам
Breakdown: разбивка по страницам - визиты, просмотры, отказы по каждому URL.

Проверено на версии 3.2.0, июль 2026. На новых версиях результаты могут отличаться.

Подводные камни

Где может сломаться

Реальные грабли, на которые наткнулись при запуске.

!

Своего TLS нет. Cookieless-скрипт с https-страницы не будет слать события на http или самоподписанный бэкенд - браузер их отрежет. Нужен валидный сертификат: внешний Caddy или nginx с Let's Encrypt перед приложением.

!

Дефолтные креды. Первый вход - admin / umami. Сразу смените пароль (Settings, Profile, Change password). В примере APP_SECRET и пароль Postgres - плейсхолдеры, в проде генерируйте случайные.

failed to resolve reference "ghcr.io/umami-software/umami:postgresql-v3.2.0": not found

Причина. В линии 3.x проект стал postgres-only и убрал версионные теги с префиксом (postgresql-vX.Y.Z) - в апстрим-compose стоит просто latest.

Решение. Использовать latest, а для воспроизводимости пинить по digest: ghcr.io/umami-software/umami:latest@sha256:.... Версию сверять по package.json внутри контейнера.

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

Безопасность и обновления

Перед продом закройте базовое: смените пароль admin и пароль Postgres, сгенерируйте случайный APP_SECRET, выставьте приложение только через проксированный HTTPS (порт 3000 - на localhost, наружу через Caddy или nginx). Обновление:

docker compose pull && docker compose up -d

Бэкап - это дамп единственной базы PostgreSQL (плюс сам том):

docker exec umami-db-1 pg_dump -U umami umami > umami-backup.sql
Рядом

Связь с другими стеками

  • Обратный прокси - Caddy или nginx для TLS (у Umami своего HTTPS нет).
  • Бэкапы - pg_dump единственной базы плюс том в S3.
  • Продуктовая аналитика рядом - если нужны воронки и session replay, ставьте PostHog отдельно, Umami оставьте на посещаемость.
Честно

Когда это НЕ ваш выбор

Нужна продуктовая аналитика

Воронки по событиям, session replay, feature flags, A/B-тесты - это PostHog или Amplitude. Umami про посещаемость, а не про поведение внутри продукта.

Нужны отчеты уровня Matomo

Сложная сегментация, сырой доступ к необработанным хитам, кастомные отчеты - здесь вы упретесь в простоту Umami. Это ее плюс и ее потолок одновременно.

Не готовы держать сервер

Если своя виртуалка не вариант - берите облако (Umami Cloud или GA). Self-host бесплатен, но требует пусть минимального, но обслуживания.

FAQ

Частые вопросы

Нужен ли cookie-баннер?

В типовом случае нет: Umami cookieless по умолчанию и не собирает персональные данные. Итоговое решение - за вашим юристом, но техническая причина для баннера отпадает.

Хватит ли 2 GB RAM?

С запасом. В простое стек занимает около 202 MiB на двух контейнерах - упираетесь скорее в накладные расходы виртуалки, чем в аналитику.

Можно ли одной установкой считать много сайтов?

Да, это штатный режим. Каждому сайту - свой website-id, свой скрипт и свой дашборд в общей инсталляции.

Можно в продакшен?

Да, при внешнем TLS, смене пароля admin и случайном APP_SECRET. Порт 3000 держите на localhost, наружу - только через HTTPS-прокси.

Как обновлять и бэкапить?

Обновление - docker compose pull и up -d. Бэкап - pg_dump единственной базы PostgreSQL плюс ее том.

Какие ограничения лицензии?

MIT - весь функционал в self-host бесплатно, коммерческое использование разрешено, платного enterprise-урезания нет. Монетизация вендора - через облако Umami Cloud, а не через закрытие ядра.

Umami или Plausible?

Оба - self-host замена Google Analytics без cookie, данные остаются на вашем сервере. Umami легче: одна база PostgreSQL, около 200 МБ в простое, лицензия MIT. Plausible взрослее и лучше держит большой трафик, но тянет ClickHouse (нужно 2+ GB RAM) и распространяется под AGPL. Небольшой или средний сайт с минимумом ресурсов - Umami; высокий трафик и зрелый интерфейс - Plausible.

Итог

Umami - эталон легкости в веб-аналитике: MIT, два контейнера, около 200 МБ в простое, приватность из коробки и cookieless по умолчанию. За посещаемость без cookie-баннера и без вывоза данных за рубеж платить нечем, кроме маленькой виртуалки. Важное ограничение: это только про посещаемость, не про продуктовую аналитику - для воронок и session replay берите PostHog.

Анонсы новых разборов в Telegram-канале Новые гайды и карточки в маркетплейсе первыми @fatmetal_channel →

Этот стек у нас запущен на тарифе CPU2-RAM4-DISK50. Нашли баг в гайде - напишите, поправим в течение дня.

Спросить инженера в TelegramМы на связи