Об этом проекте
Insight — это панель веб-аналитики, которую вы запускаете на собственном сервере. Она устанавливается один раз с помощью Docker, после чего в head сайта вставляется один тег скрипта; затем панель в реальном времени показывает, кто посещает сайт, откуда, что читает, что покупает и какие AI-боты сканируют страницы. Здесь нет SaaS-аккаунтов и сторонних сервисов — каждый байт остается в базе данных на выбранной вами машине.
Метрики аудитории и контента
- Посетители, просмотры страниц, показатель отказов, время взаимодействия, новые и вернувшиеся посетители
- Живая лента и 3D-карта мира с деталями по каждому посетителю
- Топ страниц, целевые страницы, страницы выхода и исходящие клики
- Страны, регионы, города и языки
Привлечение
- Классификация каналов (поиск, соцсети, AI, рефералы, прямой заход), рефереры, кампании и полный разбор UTM-меток
- Ключевые слова Search Console через опциональное подключение
Доход
- Подключение к Stripe с использованием ключа только для чтения отображает доход за вычетом возвратов, коэффициент конверсии, доход на посетителя, а также атрибуцию по источникам и кампаниям на основе ваших событий покупки
Поведение и боты
- Воронки от двух до четырех шагов, еженедельные когорты удержания и тепловая карта часов пик
- Логирование AI и индексирующих краулеров для каждой страницы, разделенное на группы: ответы AI, индексация и обучение; краулеры, которые не исполняют JavaScript, все равно фиксируются на стороне сервера
Функции комфорта
- Диапазоны дат: сегодня, 7д, 30д, 90д или произвольный, а также заметки к графикам
- Светлая и темная темы, кастомизация панели методом drag-and-drop
- Опциональный импорт из GA4 для исторических данных и Mapbox для глобуса
Модель конфиденциальности
- По умолчанию трекер ничего не записывает на устройство посетителя: никаких cookies и localStorage
- Посетители подсчитываются с помощью соленого SHA-256 хеша, который меняется ежедневно; необработанные IP-адреса никогда не записываются в базу данных и не могут быть восстановлены из хеша
- Опциональный точный режим через data-persist="true" сохраняет случайный first-party id в localStorage для точного отслеживания вернувшихся посетителей и удержания; в README указано, что это следует рассматривать как cookie в политиках конфиденциальности и в потоках согласия для аудитории из ЕС
- В проекте прямо заявляется, что ни один инструмент аналитики не делает сайт соответствующим GDPR сам по себе, так как соответствие касается всех действий с персональными данными
Установка и эксплуатация
- Скрипт подготовки для чистого сервера Ubuntu устанавливает Docker, правила брандмауэра и автоматические обновления безопасности
- Конфигурация хранится в файле .env: email и пароль администратора, секрет аутентификации и пароль ClickHouse
- Два контейнера, запускаемые через Docker Compose; сервер с 1 vCPU / 2 ГБ ОЗУ описывается как достаточный
- Опциональный рабочий процесс GitHub Actions собирает образ и развертывает его на вашем сервере через SSH при каждом пуше
Безопасность
- Нет публичной регистрации и эндпоинта регистрации; единственным администратором является email и пароль, заданные в окружении сервера, которые сравниваются за константное время
- Обязательная двухфакторная аутентификация: при первом входе отображается QR-код, в дальнейшем требуется 6-значный код
- Сессии подписаны HMAC с использованием секрета аутентификации и истекают через 30 дней
- Панель управления помечена noindex и запрещена в robots.txt
- Секреты хранятся только в .env сервера; в репозитории их нет
CLI
- CLI только для чтения с отдельным токеном предоставляет такие данные, как "insight stats 30d", "insight stats today --site myshop.com" и "insight sites", и может быть подключен к AI-ассистенту для вопросов на естественном языке; токен не дает доступа к панели управления
Стек и лицензия
- Next.js 16 App Router (standalone), React 19, TypeScript и Tailwind CSS v4
- ClickHouse хранит события, SQLite хранит конфигурацию; Mapbox GL отрисовывает глобус, а Recharts рисует графики
- Лицензия MIT, создано Nicolas Lecocq
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.