bolt Valebyte VPS от $4/мес — NVMe, запуск за 60 секунд.

Получить VPS arrow_forward
eco Начальный Туториал

Установка и настройка Umami Analytics на VPS: легкая и приватная альтернатива Google Analytics

calendar_month May 27, 2026 schedule 9 мин. чтения visibility 21 просмотров
Установка и настройка Umami Analytics на VPS: легкая и приватная альтернатива Google Analytics
info

Нужен сервер для этого гайда? Мы предлагаем выделенные серверы и VPS в 50+ странах с мгновенной настройкой.

Нужен сервер для этого гайда?

Разверните VPS или выделенный сервер за минуты.

Установка и настройка Umami Analytics на VPS: легкая и приватная альтернатива Google Analytics

TL;DR

В этом руководстве мы разберем процесс развертывания Umami Analytics — современного, легковесного и ориентированного на приватность инструмента веб-аналитики, который не требует использования cookie-баннеров и полностью соответствует GDPR. Мы пройдем путь от выбора конфигурации сервера до настройки автоматических бэкапов и оптимизации производительности на стеке Docker, PostgreSQL и Nginx.

  • Приватность: Полное владение данными без передачи третьим лицам.
  • Производительность: Скрипт весит менее 2 КБ, что не замедляет загрузку сайта.
  • Простота: Установка через Docker Compose за 15 минут.
  • Экономия: Работает на минимальных VPS-планах с 1-2 ГБ RAM.
  • Современность: Поддержка PostgreSQL 18 и Node.js 24 в реалиях 2026 года.

1. Что мы настраиваем и зачем

Схема: 1. Что мы настраиваем и зачем
Схема: 1. Что мы настраиваем и зачем

К 2026 году ландшафт веб-аналитики претерпел значительные изменения. Усиление законодательства о защите данных (GDPR в Европе, CCPA в США и аналогичные законы в других регионах) сделало использование Google Analytics 4 (GA4) сложным и зачастую рискованным процессом. Постоянные уведомления о файлах cookie раздражают пользователей и снижают конверсию. Именно здесь на сцену выходит Umami Analytics.

Umami — это open-source решение, которое собирает только необходимые метрики (просмотры, источники, устройства, страны, события) без сбора персонально идентифицируемой информации (PII). Это позволяет легально отказаться от назойливых cookie-баннеров, так как сервис не отслеживает пользователей между сайтами и не создает их цифровой профиль для рекламных сетей.

Что вы получите в итоге:

  • Собственную панель аналитики на вашем домене (например, stats.yourdomain.com).
  • Полный контроль над базой данных — никто, кроме вас, не имеет доступа к статистике.
  • Высокую скорость работы: Umami написан на Next.js и оптимизирован для быстрой обработки миллионов событий.
  • Возможность обхода блокировщиков рекламы (AdBlock), так как скрипт загружается с вашего собственного поддомена.

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

2. Какой VPS-конфиг нужен под эту задачу

Схема: 2. Какой VPS-конфиг нужен под эту задачу
Схема: 2. Какой VPS-конфиг нужен под эту задачу

Umami Analytics крайне нетребователен к ресурсам на начальном этапе, но его аппетиты растут вместе с объемом трафика на ваших проектах. Основная нагрузка ложится на базу данных PostgreSQL при выполнении аналитических запросов за длительные периоды.

Параметр Минимальный (до 100к хитов/мес) Рекомендуемый (до 1 млн хитов/мес) Enterprise (5 млн+ хитов/мес)
vCPU 1 Core (Shared) 2 Cores (Dedicated) 4+ Cores
RAM 1 GB 2-4 GB 8 GB+
Диск (NVMe) 10 GB 40 GB 100 GB+
ОС Ubuntu 24.04 / 26.04 Ubuntu 26.04 LTS Debian 13 / RHEL

Для стабильной работы системы, особенно если вы планируете отслеживать несколько сайтов, лучше всего взять VPS с 2 ГБ оперативной памяти. Это обеспечит достаточный кэш для PostgreSQL и предотвратит срабатывание OOM Killer (Out of Memory) при генерации сложных отчетов.

Когда стоит задуматься о Dedicated сервере? Если ваш трафик превышает 10-15 миллионов событий в месяц, или если вы используете Umami как часть аналитического хаба для десятков крупных клиентов. В остальных случаях виртуализации (KVM) более чем достаточно.

Локация: Выбирайте локацию сервера максимально близко к вашей основной аудитории. Несмотря на то, что скрипт Umami асинхронный, быстрая передача пакетов (low latency) уменьшает вероятность потери данных при уходе пользователя со страницы до завершения запроса аналитики.

3. Подготовка сервера

Схема: 3. Подготовка сервера
Схема: 3. Подготовка сервера

Прежде чем приступать к установке Umami, необходимо обеспечить безопасность и актуальность нашей среды. Мы будем использовать Ubuntu 26.04 LTS (или актуальную на текущий момент 24.04).

Первым делом обновим список пакетов и саму систему:

sudo apt update && sudo apt upgrade -y

Создадим отдельного пользователя с правами sudo, чтобы не работать под root:


# Создаем пользователя
adduser umamiadmin
# Добавляем в группу sudo
usermod -aG sudo umamiadmin
# Переключаемся на пользователя
su - umamiadmin
    

Настроим базовый файрвол (UFW). Нам понадобятся порты 22 (SSH), 80 (HTTP) и 443 (HTTPS):


sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
    

Для защиты от брутфорс-атак установим fail2ban:

sudo apt install fail2ban -y

Базовая конфигурация fail2ban уже защищает SSH "из коробки", что критически важно для любого публичного VPS.

4. Установка Docker и вспомогательного ПО

Схема: 4. Установка Docker и вспомогательного ПО
Схема: 4. Установка Docker и вспомогательного ПО

В 2026 году Docker остается стандартом де-факто для развертывания self-hosted приложений. Это изолирует зависимости Umami от системных библиотек и упрощает процесс обновления.

Установим необходимые пакеты для работы с репозиториями через HTTPS:

sudo apt install ca-certificates curl gnupg lsb-release -y

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


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

Подключим репозиторий:


echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/apt/sources.list.d/docker.list > /dev/null
    

Установим Docker Engine и Docker Compose:

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

Добавим нашего пользователя в группу docker, чтобы запускать контейнеры без sudo:

sudo usermod -aG docker $USER

Внимание: Чтобы изменения вступили в силу, нужно выйти из системы и зайти снова (logout/login).

5. Развертывание Umami Analytics через Docker Compose

Схема: 5. Развертывание Umami Analytics через Docker Compose
Схема: 5. Развертывание Umami Analytics через Docker Compose

Мы будем использовать официальный образ Umami и базу данных PostgreSQL 18. Это наиболее стабильная и производительная связка.

Создадим рабочую директорию:

mkdir ~/umami && cd ~/umami

Создадим файл docker-compose.yml. Мы будем использовать современный синтаксис:

nano docker-compose.yml

Вставьте следующее содержимое:


services:
  umami:
    image: ghcr.io/umami-software/umami:postgresql-latest
    restart: always
    environment:
      DATABASE_URL: postgresql://umami_user:strong_password@db:5432/umami_db
      APP_SECRET: $(openssl rand -base64 32)
    ports:
      - "3000:3000"
    depends_on:
      db:
        condition: service_healthy
    networks:
      - umami-net

  db:
    image: postgres:18-alpine
    restart: always
    environment:
      POSTGRES_USER: umami_user
      POSTGRES_PASSWORD: strong_password
      POSTGRES_DB: umami_db
    volumes:
      - ./sql_data:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U umami_user -d umami_db"]
      interval: 5s
      timeout: 5s
      retries: 5
    networks:
      - umami-net

networks:
  umami-net:
    driver: bridge
    

Важно: Замените strong_password на действительно сложный пароль. Параметр APP_SECRET используется для шифрования сессий — вы можете сгенерировать его командой openssl rand -base64 32 и вставить вручную вместо переменной.

Теперь запустим нашу инфраструктуру:

docker compose up -d

Проверим статус контейнеров:

docker compose ps

Если в колонке STATUS указано "Up (healthy)", значит база данных готова, а приложение запущено на порту 3000.

6. Настройка Reverse Proxy (Nginx) и SSL (Certbot)

Схема: 6. Настройка Reverse Proxy (Nginx) и SSL (Certbot)
Схема: 6. Настройка Reverse Proxy (Nginx) и SSL (Certbot)

Запускать Umami напрямую на порту 3000 в открытый интернет — плохая практика. Нам нужен Nginx в качестве обратного прокси для обработки SSL-сертификатов и обеспечения безопасности.

Установим Nginx:

sudo apt install nginx -y

Создадим конфигурационный файл для нашего домена (например, stats.example.com):

sudo nano /etc/nginx/sites-available/umami

Добавьте следующую конфигурацию:


server {
    listen 80;
    server_name stats.example.com; # Замените на ваш домен

    location / {
        proxy_pass http://localhost:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
    

Активируем конфиг и перезапустим Nginx:


sudo ln -s /etc/nginx/sites-available/umami /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
    

Теперь защитим соединение с помощью Let's Encrypt:


sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d stats.example.com
    

Certbot автоматически изменит конфигурацию Nginx, добавит SSL-сертификаты и настроит редирект с HTTP на HTTPS.

7. Тонкая настройка и интеграция трекера

Схема: 7. Тонкая настройка и интеграция трекера
Схема: 7. Тонкая настройка и интеграция трекера

После установки перейдите по адресу https://stats.example.com. Данные для первого входа по умолчанию:

  • Username: admin
  • Password: umami

Первым делом смените пароль администратора в настройках профиля!

Добавление сайта

  1. Перейдите в раздел Settings -> Websites.
  2. Нажмите Add Website.
  3. Введите название и домен вашего сайта.
  4. Нажмите Save.

После сохранения вы увидите кнопку Get tracking code. Код будет выглядеть примерно так:


<script async src="https://stats.example.com/script.js" data-website-id="your-unique-id"></script>
    

Этот скрипт нужно вставить в секцию <head> вашего сайта. Обратите внимание на атрибут async — он гарантирует, что загрузка аналитики не будет блокировать отрисовку основного контента страницы.

Обход блокировщиков (Pro-tip)

Многие блокировщики рекламы ищут слово "script.js" или запросы к доменам со словом "stats". В настройках Umami в Docker Compose можно изменить имя скрипта через переменную окружения:

TRACKER_SCRIPT_NAME: custom-analytics

После этого ваш скрипт будет доступен по адресу /custom-analytics.js, что значительно повысит точность сбора данных среди технически подкованной аудитории.

8. Бэкапы и обслуживание

Схема: 8. Бэкапы и обслуживание
Схема: 8. Бэкапы и обслуживание

Данные аналитики накапливаются, и их потеря может быть болезненной. Самый важный элемент для бэкапа — база данных PostgreSQL.

Создадим простой скрипт для ежедневного бэкапа:

mkdir ~/backups && nano ~/backups/backup.sh

#!/bin/bash
# Настройки
BACKUP_DIR="$HOME/backups/data"
TIMESTAMP=$(date +"%Y%m%d_%H%M%S")
CONTAINER_NAME="umami-db-1" # Проверьте имя через docker ps
DB_USER="umami_user"
DB_NAME="umami_db"

# Создаем папку если нет
mkdir -p $BACKUP_DIR

# Делаем дамп
docker exec $CONTAINER_NAME pg_dump -U $DB_USER $DB_NAME > $BACKUP_DIR/umami_backup_$TIMESTAMP.sql

# Удаляем бэкапы старше 30 дней
find $BACKUP_DIR -type f -mtime +30 -name ".sql" -delete
    

Сделайте скрипт исполняемым и добавьте его в crontab:


chmod +x ~/backups/backup.sh
crontab -e
# Добавьте строку для запуска в 3 часа ночи ежедневно:
0 3    /home/umamiadmin/backups/backup.sh
    

Обновление Umami: Благодаря Docker, обновление до последней версии происходит в три команды:


cd ~/umami
docker compose pull
docker compose up -d
    

Umami автоматически выполнит миграции базы данных при запуске новой версии.

9. Troubleshooting + FAQ

Ошибка "Database connection failed" при запуске

Чаще всего это происходит, когда контейнер с Umami пытается подключиться к базе данных до того, как PostgreSQL полностью инициализировался. В нашем docker-compose.yml мы добавили healthcheck, который решает эту проблему. Если ошибка сохраняется, проверьте правильность DATABASE_URL и соответствие паролей в обоих сервисах.

Скрипт аналитики не загружается (404 Not Found)

Проверьте настройки Nginx. Убедитесь, что proxy_pass указывает на правильный порт (3000). Также убедитесь, что вы не используете Cloudflare в режиме "Under Attack Mode", который может блокировать JS-запросы к новым поддоменам.

Какой VPS-конфиг минимально подойдет?

Для небольшого блога с посещаемостью до 500 человек в день достаточно 1 vCPU и 1 GB RAM. Однако для комфортной работы панели управления (dashboard), которая строит графики "на лету", мы рекомендуем 2 GB RAM. Это позволит базе данных PostgreSQL держать индексы в памяти.

Что выбрать — VPS или dedicated для этой задачи?

В 95% случаев VPS — лучший выбор. Он позволяет легко масштабировать ресурсы (CPU/RAM) по мере роста вашего проекта. Выделенный сервер (dedicated) имеет смысл только если вы агрегируете данные сотен высоконагруженных сайтов и упираетесь в производительность дисковой подсистемы (I/O) или если вам требуются специфические настройки безопасности на уровне железа.

Как перенести данные с Google Analytics?

На текущий момент прямой импорт истории из GA4 в Umami затруднен из-за разной структуры данных. Большинство пользователей начинают сбор "с чистого листа", параллельно запуская оба счетчика на переходный период в 1-2 месяца.

Влияет ли Umami на SEO?

Да, положительно. Поскольку скрипт Umami весит в 20-30 раз меньше, чем тяжелый бандл Google Analytics, показатели Core Web Vitals (особенно LCP и TBT) улучшаются. Быстрые сайты ранжируются выше.

10. Выводы и следующие шаги

Мы успешно развернули собственную систему аналитики, которая полностью принадлежит вам. Вы больше не зависите от причуд корпораций, не боитесь блокировок аккаунтов и обеспечиваете своим пользователям максимальный уровень приватности.

Что делать дальше:

  • Настройте события (Events): В Umami можно отслеживать клики по кнопкам, отправку форм и загрузку файлов. Это делается через простые data-umami-event атрибуты в HTML.
  • Настройте уведомления: Интегрируйте алерты (через кастомные скрипты), если трафик на сайте резко упал или вырос.
  • Оптимизируйте PostgreSQL: При достижении миллионов записей стоит изучить тюнинг параметров shared_buffers и work_mem в конфигурации БД для ускорения тяжелых отчетов.

Self-hosting — это путь к свободе в цифровом пространстве. Имея правильно настроенный VPS и современное ПО вроде Umami, вы создаете надежный фундамент для своих проектов.

Поделиться этой записью:

установка и настройка umami analytics на vps: легкая и приватная альтернатива google analytics
support_agent
Valebyte Support
Usually replies within minutes
Hi there!
Send us a message and we'll reply as soon as possible.