Об этом проекте
Flarelytics — это open-source проект по веб-аналитике, предназначенный для измерения времени, которое посетители тратят на чтение контента на веб-сайте. Его цель — предоставить альтернативу основным сервисам аналитики, которые часто собирают избыточные персональные данные или не имеют точных метрик времени пребывания.
**Архитектура**
- **Браузерный скрипт** (находится в папке `analytics`) — небольшой фрагмент JavaScript, который владельцы сайтов встраивают в свои страницы. Он генерирует UUID для каждой сессии посетителя и отправляет два события на бэкенд: одно при загрузке страницы и другое, когда страница скрывается или выгружается.
- **Бэкенд** (в `src`) — приложение на TypeScript, развернутое как Cloudflare Worker. Оно предоставляет простой HTTP API, который принимает события и сохраняет их в совместимой с MySQL базе данных PlanetScale. Бэкенд также агрегирует необработанные события в статистику времени пребывания по каждой странице, которую можно просмотреть на панели управления.
**Ключевые особенности**
- Self-hosted: запускайте worker в своем аккаунте Cloudflare и храните данные в собственной базе данных PlanetScale.
- Приоритет конфиденциальности: никаких сторонних отслеживающих cookies, никакого логирования IP-адресов, и все данные остаются под вашим контролем.
- Поддержка одного домена (в будущих версиях может быть добавлена поддержка нескольких доменов).
- Простой рабочий процесс развертывания с использованием `wrangler` и `pnpm`.
**Процесс разработки**
1. Создайте бесплатные аккаунты Cloudflare и PlanetScale.
2. Клонируйте репозиторий и установите Node.js v18+, pnpm и PlanetScale CLI.
3. Настройте базу данных PlanetScale с именем `flarelytics` с ветками `main` и `dev`; используйте ветку `dev` для локальной работы.
4. Создайте Cloudflare Worker (например, `flarelytics-dev`) и сохраните учетные данные базы данных в виде секретных переменных окружения.
5. Запустите `pnpm run setup-test-db` для создания таблиц, затем `pnpm run dev` для запуска локального worker.
6. Разверните проект с помощью `npm run deploy-dev`, когда будете готовы к тестовой среде.
**Вклад в проект**
Проект поддерживается Google Developer Student Club в Будапештском университете технологии и экономики. Контрибьюторам предлагается выбирать задачи из трекера GitHub, следовать стандартному процессу fork-branch-PR и придерживаться руководства по внесению вклада, изложенного в README.
**Статус**
Flarelytics находится в стадии активной разработки и пока не рекомендуется для использования в продакшене. Планы на будущее включают поддержку нескольких доменов, более функциональные панели управления и опциональную аутентификацию для пользовательского интерфейса аналитики.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.