0

Диванная аналитика

Аналитика — один из ключевых инструментов в управлении современными цифровыми продуктами. Без данных о поведении пользователей невозможно понять, кто и как взаимодействует с вашим сайтом, приложением или сервисом, какие страницы работают эффективно, где пользователи теряются и почему падают конверсии. Аналитика помогает отслеживать рост, вовремя замечать проблемы, принимать решения на основе фактов и улучшать продукт так, чтобы он действительно работал лучше.

Однако всё чаще компании сталкиваются с тем, что популярные трекеры вроде Google Analytics или Яндекс.Метрики блокируются браузерами, adblock-расширениями или просто вызывают недоверие у пользователей. В условиях растущего запроса на приватность, прозрачность и независимость данных становится очевидной потребность в более простых, честных и контролируемых решениях.

Одно из таких решений — Umami Analytics.

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

Но здесь есть нюанс: официальный облачный сервис Umami стоит $20 в месяц. Для небольшого проекта, сайта или небольшого бизнеса это ощутимая сумма, особенно если нужна простая и приватная аналитика без обилия корпоративных функций.

И здесь появляется главный инсайт.

Все эти преимущества — real-time аналитика, приватность, удобный интерфейс, отсутствие блокировок — можно получить всего за 150 рублей в месяц, если развернуть Umami в режиме self-host. Более того, в этом случае вы получаете не только экономию, но и полный контроль над данными и инфраструктурой, что особенно важно в 2025 году.

В этом посте я покажу, как установить Umami на свой сервер, настроить её за несколько минут и получить функциональность уровня платных SaaS-решений — за минимальные деньги и без компромиссов по приватности.

Как развернуть Umami за 150 рублей в месяц

Этот пост является текстовой версией видео: https://www.youtube.com/watch?v=u7WBRaX8i9U

Шаг 1. Удалённый сервер (VPS)

У Cloud.ru есть отличная возможность получить слабенькую, но очень выносливую виртуальную машину в бессрочное бесплатное пользование. Платить нужно только за публичный IP-адрес — а это как раз около 150 рублей в месяц.

1.1 Регистрируемся на Cloud.ru

Переходим на сайт Cloud.ru и создаём аккаунт. Потребуется номер телефона для подтверждения.

1.2 Пополняем баланс (минимум 200 ₽)

Это нужно для того, чтобы сразу оплатить публичный IP и избежать блокировки ресурсов.

1.3 Открываем страницу тарифа Free Tier

Переходим по ссылке:

https://cloud.ru/products/evolution-compute

Листаем вниз до раздела Free tier.

1.4 Создаём виртуальную машину

Вариант Free Tier нельзя настраивать по ресурсам, но можно выбрать способ аутентификации.

Рекомендую метод SSH-ключ — он безопаснее и удобнее, чем пароль.

1.5 Запускаем виртуалку

Нажимаем кнопку Создать и ждём, пока виртуальная машина перейдёт в статус «Running».

ВАЖНО После создания обязательно подключите публичный IP-адрес, иначе вы не сможете зайти на сервер по SSH или открыть веб-интерфейс Umami.

Шаг 2. Настройка удалённого сервера

Я использовал виртуалку на Ubuntu 24.04, поэтому команды ниже рассчитаны именно на неё. Umami и PostgreSQL мы будем запускать в Docker через Docker Compose.

Если вы используете другую ОС — часть команд может отличаться. В этом случае можно либо адаптировать шаги вручную, либо попросить любую LLM помочь под вашу систему.

2.1 Обновляем систему

sudo apt update

sudo apt upgrade -y

2.2 Удаляем старые версии Docker (на всякий случай)

sudo apt remove docker docker-engine docker.io containerd runc

2.3 Устанавливаем необходимые зависимости

sudo apt install -y ca-certificates curl gnupg

2.4 Добавляем официальный GPG-ключ Docker

sudo install -m 0755 -d /etc/apt/keyrings

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg

sudo chmod a+r /etc/apt/keyrings/docker.gpg

2.5 Добавляем Docker Repository

echo \

"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \

https://download.docker.com/linux/ubuntu \

$(. /etc/os-release && echo $VERSION_CODENAME) stable" | \

sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

2.6 Устанавливаем Docker Engine и Docker Compose Plugin

sudo apt update

sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

2.7 Разрешаем запуск Docker без sudo

sudo usermod -aG docker $USER

newgrp docker

2.8 Проверяем установку Docker

docker --version

docker run hello-world

Если вывод показывает версию Docker и затем приветственное сообщение "Hello from Docker!" — значит, всё установлено успешно и сервер готов к разворачиванию Umami.

Шаг 3. Запускаем Umami

Теперь, когда Docker установлен, можно развернуть Umami и PostgreSQL с помощью Docker Compose. Конфигурация максимально простая — всё поднимается в два контейнера.

3.1 Создаём Docker Compose файл

Создаём каталог и открываем файл:

mkdir umami && cd umami

nano docker-compose.yml

Вставляем конфигурацию: https://gist.github.com/eryabyshev/ea25faa285820d0856a1e1c2a7edb8e3

⚠️ ВАЖНО!

Обязательно замените:

umami_password на ваш реальный пароль для БД,

your-random-hash на случайную строку (можно сгенерировать командой openssl rand -hex 32).

3.2 Поднимаем контейнеры

Выполняем:

docker compose up -d

Проверяем статус:

docker ps

Должны появиться два контейнера: umami и umami_postgres.

3.3 Пробрасываем порт 3000 в Cloud.ru

Чтобы открыть web-интерфейс Umami, нужно разрешить входящие запросы на порт 3000.

Переходим в раздел Группы безопасности: https://console.cloud.ru/spa/svp/security-groups

Находим строку, где интерфейс подключён (ДА).

Открываем вкладку Правила.

Добавляем новое правило:

Тип: Входящее

Протокол: TCP

Порт: 3000

Источник: 0.0.0.0/0 (если хотите открыть для всех)

3.4 Открываем Umami в браузере

Берём публичный IP вашей виртуальной машины и открываем:

http://<public_ip>:3000

Должна появиться панель авторизации Umami.

Логин по умолчанию: admin

Пароль по умолчанию: umami

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

Шаг 4. Подключаем Umami к веб-странице

После того как Umami запустилась и вы можете открыть панель по адресу http://<public_ip>:3000, можно приступить к интеграции трекинга на сайт.

4.1 Первый вход

Используем стандартные данные:

Логин: admin

Пароль: umami

После входа сразу меняем пароль на свой.

4.2 Переходим в раздел Websites

В левом меню выбираем Websites.

4.3 Добавляем новый сайт

Нажимаем кнопку Add website, заполняем название и сохраняем.

После создания появится блок настроек сайта — открываем его.

4.4 Копируем скрипт трекера

В настройках сайта есть готовый <script> — копируем его, он будет выглядеть примерно так:

<script defer src="http://<public_ip>:3000/script.js" data-website-id="ВАШ_ID"></script>

4.5 Используем HTML-песочницу для проверки

Чтобы убедиться, что всё работает, создадим простую локальную HTML-страницу.

Замените:

<public_ip> — на публичный IP вашей виртуалки

CODE — на ID сайта из Umami

<!DOCTYPE html>

<html lang="ru">

<head>

<meta charset="UTF-8" />

<title>Пример страницы с Umami</title>

<!-- Umami tracking -->

<script defer src="http://<public_ip>:3000/script.js" data-website-id="CODE"></script>

</head>

<body>

<h1>Test Umami</h1>

<button id="buyBtn">Купить</button>

<script>

const btn = document.getElementById("buyBtn");

btn.addEventListener("click", () => {

if (window.umami && typeof window.umami.track === "function") {

window.umami.track("click_buy_button"); // имя события

console.log("Umami event sent");

} else {

console.warn("Umami object not ready yet", window.umami);

}

});

</script>

</body>

</html>

Сохраните файл и просто откройте его в браузере — локально, без загрузки на сервер.

4.6 Проверяем посещения

Теперь перезагрузите страницу — в интерфейсе Umami во вкладке Realtime появится ваш визит.

4.7 Проверяем события

Нажмите кнопку Купить.

События будут отображаться во вкладке Events для вашего сайта:

там появится событие click_buy_button.

Заключение

Развернуть собственную систему аналитики — проще, чем кажется. Всего за 150 рублей в месяц вы получаете функциональность уровня платных сервисов, полный контроль над данными, приватность, real-time метрики и защиту от блокировок. Umami отлично подходит для небольших проектов, pet-приложений, лендингов и любых сервисов, где нужна честная статистика без лишних зависимостей.

Если вы раньше не поднимали аналитику самостоятельно — этот гайд показывает, что всё решается за 10–15 минут. Дальше вы сможете добавлять события, подключать несколько сайтов, настраивать аналитику под свои задачи и развивать инфраструктуру так, как вам удобно.

Полная документация Umami:

👉 https://umami.is/docs

У меня есть Telegram-канал, где я делюсь опытом запуска инди-проектов, рассказываю о своих экспериментах и публикую практичные гайды:

👉 https://t.me/debug_leg

Если статья была полезной — поддержите её лайком или репостом. Это помогает делать больше практичного контента ❤️