Об этом проекте
Smart-analytics — минималистичная self-hosted система веб-аналитики, ориентированная на приватность, созданная на базе tiny-analytics 0.1.3. Ключевое улучшение — поддержка нескольких сайтов и многопользовательского управления: один аккаунт может управлять несколькими сайтами, каждый из которых получает собственный трекер-скрипт и изолированные данные.
Технологический стек: Python FastAPI + SQLite (одна БД, многопользовательский доступ), работает в одном процессе, не требует внешних сервисов или баз данных. Принцип работы: при загрузке страницы трекер отправляет POST-запрос на сервер; сервер хэширует "siteID:IP:UA" для формирования анонимного идентификатора посетителя, исходный IP не сохраняется; при уходе со страницы beacon передаёт длительность сеанса; на панели управления данные агрегируются и визуализируются по сайтам.
Ключевые возможности:
- Приватность прежде всего: без Cookie, localStorage и сбора отпечатков, отслеживание между сайтами отсутствует
- Многосайтовость и многопользовательский доступ: независимые токены для каждого сайта, полная изоляция данных; поддержка нескольких пользователей и участников
- Система аккаунтов: регистрация и вход по e-mail и паролю, веб-интерфейс для управления сайтами и участниками
- Офлайн-GeoIP-локализация: на основе базы DB-IP, предоставляет географические данные на уровне страны/региона/города без сторонних API
- Фильтрация ботов: автоматическое определение и разделение ботового трафика
- Модуль высокочастотных IP: выявление часто посещающих IP-адресов с отображением их геопозиции
- Длительность на странице: учёт реального времени взаимодействия
- Распределение по географии и устройствам: статистика источников посетителей и используемых типов устройств
- Популярные страницы и источники трафика: рейтинг страниц, домены-рефереры и поисковые ключевые слова
- Распределение по времени доступа: наблюдение за закономерностями трафика почасово и по дням недели
- Сравнение периодов: динамика уникальных посетителей, просмотров и времени на странице за сопоставимые периоды
- Онлайн в реальном времени: число посетителей за последние 5 минут, автоматическая перезагрузка панели
- Новые/возвращающиеся посетители: различаются по анонимному идентификатору
- UTM-отслеживание: статистика по источнику/каналу/кампании
- Анализ сеансов: показатель отказов, средняя продолжительность сеанса, входные/выходные страницы (расчётные значения)
- Распределение по браузерам и ОС: грубая статистика по User-Agent
- Гибкий диапазон времени: поддержка 1/2/24 часов, 7/30 дней; интервалы統計 — 1/5/15 минут или 1 час
- Тёмный режим UI
Настройка осуществляется через переменные окружения: SMART_ANALYTICS_PASSWORD (пароль администратора), SMART_ANALYTICS_SECRET_KEY (ключ подписи сессии), SMART_ANALYTICS_ALLOWED_ORIGINS (ограничение CORS-доменов), SMART_ANALYTICS_DB_PATH (путь к базе данных) и др.
Для деплоя предусмотрен скрипт быстрого запуска (deploy/linux/setup.sh), поддерживающий systemd-сервис, обратный прокси на nginx и.Cloudflare origin (автоматическое чтение заголовков cf-connecting-ip и др.). Также можно запустить одной командой через uvx или собрать из исходного кода.
Лицензия: MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.