Аналитика — один из ключевых инструментов в управлении современными цифровыми продуктами. Без данных о поведении пользователей невозможно понять, кто и как взаимодействует с вашим сайтом, приложением или сервисом, какие страницы работают эффективно, где пользователи теряются и почему падают конверсии. Аналитика помогает отслеживать рост, вовремя замечать проблемы, принимать решения на основе фактов и улучшать продукт так, чтобы он действительно работал лучше.
Однако всё чаще компании сталкиваются с тем, что популярные трекеры вроде Google Analytics или Яндекс.Метрики блокируются браузерами, adblock-расширениями или просто вызывают недоверие у пользователей. В условиях растущего запроса на приватность, прозрачность и независимость данных становится очевидной потребность в более простых, честных и контролируемых решениях.
Одно из таких решений — Umami Analytics.
Umami — это лёгкая, современная система веб-аналитики с открытым исходным кодом. Она не отправляет данные третьим лицам, не использует сторонние куки, работает быстро и предоставляет аккуратный минималистичный интерфейс. Среди ключевых возможностей: реал-тайм аналитика, отсутствие трекинга, который легко блокируется, и понятные метрики без перегруза.
Но здесь есть нюанс: официальный облачный сервис Umami стоит $20 в месяц. Для небольшого проекта, сайта или небольшого бизнеса это ощутимая сумма, особенно если нужна простая и приватная аналитика без обилия корпоративных функций.
И здесь появляется главный инсайт.
Все эти преимущества — real-time аналитика, приватность, удобный интерфейс, отсутствие блокировок — можно получить всего за 150 рублей в месяц, если развернуть Umami в режиме self-host. Более того, в этом случае вы получаете не только экономию, но и полный контроль над данными и инфраструктурой, что особенно важно в 2025 году.
В этом посте я покажу, как установить Umami на свой сервер, настроить её за несколько минут и получить функциональность уровня платных SaaS-решений — за минимальные деньги и без компромиссов по приватности.
Как развернуть Umami за 150 рублей в месяц
Шаг 1. Удалённый сервер (VPS)
У Cloud.ru есть отличная возможность получить слабенькую, но очень выносливую виртуальную машину в бессрочное бесплатное пользование. Платить нужно только за публичный IP-адрес — а это как раз около 150 рублей в месяц.
Переходим на сайт Cloud.ru и создаём аккаунт. Потребуется номер телефона для подтверждения.
1.2 Пополняем баланс (минимум 200 ₽)
Это нужно для того, чтобы сразу оплатить публичный IP и избежать блокировки ресурсов.
1.3 Открываем страницу тарифа Free Tier
Листаем вниз до раздела Free tier.
1.4 Создаём виртуальную машину
Вариант Free Tier нельзя настраивать по ресурсам, но можно выбрать способ аутентификации.
Рекомендую метод SSH-ключ — он безопаснее и удобнее, чем пароль.
Нажимаем кнопку Создать и ждём, пока виртуальная машина перейдёт в статус «Running».
ВАЖНО После создания обязательно подключите публичный IP-адрес, иначе вы не сможете зайти на сервер по SSH или открыть веб-интерфейс Umami.
Шаг 2. Настройка удалённого сервера
Я использовал виртуалку на Ubuntu 24.04, поэтому команды ниже рассчитаны именно на неё. Umami и PostgreSQL мы будем запускать в Docker через Docker Compose.
Если вы используете другую ОС — часть команд может отличаться. В этом случае можно либо адаптировать шаги вручную, либо попросить любую LLM помочь под вашу систему.
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
sudo chmod a+r /etc/apt/keyrings/docker.gpg
2.5 Добавляем Docker Repository
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] \
$(. /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 install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
2.7 Разрешаем запуск Docker без sudo
sudo usermod -aG docker $USER
2.8 Проверяем установку Docker
Если вывод показывает версию Docker и затем приветственное сообщение "Hello from Docker!" — значит, всё установлено успешно и сервер готов к разворачиванию Umami.
Теперь, когда Docker установлен, можно развернуть Umami и PostgreSQL с помощью Docker Compose. Конфигурация максимально простая — всё поднимается в два контейнера.
3.1 Создаём Docker Compose файл
Создаём каталог и открываем файл:
umami_password на ваш реальный пароль для БД,
your-random-hash на случайную строку (можно сгенерировать командой openssl rand -hex 32).
Должны появиться два контейнера: umami и umami_postgres.
Чтобы открыть web-интерфейс Umami, нужно разрешить входящие запросы на порт 3000.
Находим строку, где интерфейс подключён (ДА).
Открываем вкладку Правила.
Источник: 0.0.0.0/0 (если хотите открыть для всех)
3.4 Открываем Umami в браузере
Берём публичный IP вашей виртуальной машины и открываем:
Должна появиться панель авторизации Umami.
Логин по умолчанию: admin
Пароль по умолчанию: umami
Сразу после входа обязательно поменяйте пароль администратора.
Шаг 4. Подключаем Umami к веб-странице
После того как Umami запустилась и вы можете открыть панель по адресу http://<public_ip>:3000, можно приступить к интеграции трекинга на сайт.
Используем стандартные данные:
После входа сразу меняем пароль на свой.
4.2 Переходим в раздел Websites
В левом меню выбираем Websites.
Нажимаем кнопку 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
<title>Пример страницы с Umami</title>
<script defer src="http://<public_ip>:3000/script.js" data-website-id="CODE"></script>
<button id="buyBtn">Купить</button>
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");
console.warn("Umami object not ready yet", window.umami);
Сохраните файл и просто откройте его в браузере — локально, без загрузки на сервер.
Теперь перезагрузите страницу — в интерфейсе Umami во вкладке Realtime появится ваш визит.
События будут отображаться во вкладке Events для вашего сайта:
там появится событие click_buy_button.
Развернуть собственную систему аналитики — проще, чем кажется. Всего за 150 рублей в месяц вы получаете функциональность уровня платных сервисов, полный контроль над данными, приватность, real-time метрики и защиту от блокировок. Umami отлично подходит для небольших проектов, pet-приложений, лендингов и любых сервисов, где нужна честная статистика без лишних зависимостей.
Если вы раньше не поднимали аналитику самостоятельно — этот гайд показывает, что всё решается за 10–15 минут. Дальше вы сможете добавлять события, подключать несколько сайтов, настраивать аналитику под свои задачи и развивать инфраструктуру так, как вам удобно.
Полная документация Umami:
У меня есть Telegram-канал, где я делюсь опытом запуска инди-проектов, рассказываю о своих экспериментах и публикую практичные гайды:
Если статья была полезной — поддержите её лайком или репостом. Это помогает делать больше практичного контента ❤️