Пошаговый гайд по развёртыванию self hosted analytics на Plausible и Umami и интеграции с Next.js. Окончательная настройка займёт примерно 60–120 минут, в зависимости от скорости сети и опыта с Docker.
Что вы изучите
Запуск Plausible self-hosted 1.46 (релиз 2025) через Docker Compose и минимальная конфигурация.
Запуск Umami 1.31 (релиз 2026) как лёгкой альтернативы и сравнение архитектур.
Интеграция в Next.js 14 (релиз 2025) с примерами кода для client- и server-side трекинга.
Резервные копии PostgreSQL, мониторинг, рекомендации по RAM/CPU и Nginx 1.26 как reverse proxy.
Практики соответствия GDPR: IP-анонимизация, срок хранения и управление согласием.
Требования
Сервер: Linux (Ubuntu 22.04 LTS или 24.04), 2 vCPU минимум, рекомендуем 4 vCPU для стабильной работы при 10k хитов/день.
ОЗУ: минимум 2 ГБ для тестовой, 4 ГБ рекомендуются для production; Redis + PostgreSQL требуют дополнительной памяти: PostgreSQL 16 (релиз 2024) 512 МБ минимум, оптимально 1–2 ГБ.
Docker Engine 24.x (релиз 2025) и Docker Compose v2.17 (2025) или выше.
Nginx 1.26 (релиз 2024) как обратный прокси на порту 80/443; порты приложений: Plausible 8000, Umami 3000, PostgreSQL 5432, Redis 6379.
Домен и запись DNS: A/AAAA для сервера; TLS: certbot или ACME (пример с certbot 2.3, 2025).
Проблема Google Analytics в РФ
С 2022–2025 годов ряд ограничений и политик вокруг сервисов Google привёл к росту спроса на self hosted analytics. Для бизнеса в РФ это означает риски потери метрик из-за блокировок, проблемы с хранением персональных данных за границей и зависимость от третьей стороны при работе с аналитикой.
0
Статья была полезной?
Комментарии (0)
Войдите или зарегистрируйтесь, чтобы оставить комментарий
Загрузка комментариев…
Self hosted решения решают две главные задачи: контроль над данными и минимизация внешних запросов. При этом они требуют инфраструктуры, резервного копирования и базовых навыков DevOps. Ожидаемая экономия на платных планах и снижение GDPR/локальных рисков делает self hosted аналитики привлекательными для проектов от стартапов до крупных сайтов с трафиком до 100k хитов/день.
Шаг 1: Plausible self-hosted
Задача: развернуть Plausible Analytics 1.46 (релиз 2025) с PostgreSQL и Redis через Docker Compose; домен plausible.example.com, TLS через certbot.
Пояснение: Docker Compose создаёт три контейнера: PostgreSQL, Redis и Plausible. Образ plausible/analytics:1.46 в 2025 году имеет размаркированный размер ~150 MB. Запуск командой занимает типично 10–40 секунд для pull + 20–60 секунд для инициализации БД в зависимости от сети.
Ожидаемый успешный вывод (после docker compose up -d):
Creating network "plausible_default" with the default driver
Creating plausible_postgres_1 ... done
Creating plausible_redis_1 ... done
Creating plausible_plausible_1 ... done
Типичная ошибка: приложение не стартует из-за неверного SECRET_KEY_BASE или проблем с доступом к PostgreSQL.
Ошибка:
plausible_1 | ERROR: could not connect to server: Connection refused
plausible_1 | Is the server running on host "postgres" (172.18.0.2) and accepting
plausible_1 | TCP/IP connections on port 5432?
Фикс: проверьте логи PostgreSQL и порядок запуска. Выполните:
docker compose logs postgres --tail=100
docker compose ps
# если БД не инициализируется, очистите volume и попробуйте снова
docker compose down -v && docker compose up -d
Скриншот дашборда Plausible
Шаг 2: Umami альтернатива
Задача: запустить Umami 1.31 (релиз 2026) — лёгкая, single-page self hosted аналитика, на том же сервере, используя PostgreSQL или MySQL. Мы покажем развёртывание с PostgreSQL.
Пояснение: Umami легче по функционалу, меньше кода для front-end (скрипт клиента ~2.4 KB gz в 2026). Типичный pull и build занимает 20–60 секунд, запуск сервиса 5–15 секунд.
Ожидаемый успешный вывод:
Creating network "umami_default" with the default driver
Creating umami_db_1 ... done
Creating umami_umami_1 ... done
Типичная ошибка: миграции базы не выполнены или переменная окружения DATABASE_URL неверна.
Ошибка в логах umami_1:
Error: connect ECONNREFUSED 127.0.0.1:5432
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1145:16)
Фикс: проверьте, что db запускается, и используйте правильный хост в DATABASE_URL. Если база пустая, выполните миграции вручную:
Задача: внедрить трекинг страниц и событий в Next.js 14 (релиз 2025) с минимальным влиянием на перформанс. Покажем два варианта: подключение клиентского скрипта и отправка событий с сервера (server-side).
Вариант A — вставка скрипта Plausible/Umami в app/layout.tsx (app router):
Ожидаемый вывод в браузерной консоли при успешной загрузке скрипта:
plausible.js loaded
plausible: tracking pageview
Типичная ошибка: скрипт блокируется CORS или по CSP, или указан неверный путь к скрипту (HTTP/HTTPS). Фикс: проверьте CSP заголовки (Content-Security-Policy) в Nginx и используйте протокол-совместимый URL (https). Пример CSP для Nginx:
Комментарии (0)
Войдите или зарегистрируйтесь, чтобы оставить комментарий
Загрузка комментариев…