프로젝트 소개
Flarelytics는 웹사이트에서 방문자가 콘텐츠를 읽는 데 소요되는 시간을 측정하도록 설계된 오픈소스 웹 애널리틱스 프로젝트입니다. 광범위한 개인 데이터를 수집하거나 정확한 체류 시간 지표를 제공하지 않는 주류 애널리틱스 서비스에 대한 프라이버시를 존중하는 대안을 제공하는 것을 목표로 합니다.
**Architecture**
- **Browser script** (`analytics` 폴더에 위치) – 웹사이트 소유자가 페이지에 삽입하는 작은 JavaScript 스니펫입니다. 방문자 세션마다 UUID를 생성하고 백엔드에 두 가지 이벤트를 전송합니다: 페이지 로드 시 하나, 페이지가 숨겨지거나 언로드될 때 하나.
- **Backend** (`src` 내) – Cloudflare Worker로 배포된 TypeScript 애플리케이션입니다. 간단한 HTTP API를 노출하여 이벤트를 수신하고 PlanetScale MySQL 호환 데이터베이스에 저장합니다. 백엔드는 원시 이벤트를 집계하여 페이지별 체류 시간 통계를 대시보드에서 볼 수 있도록 합니다.
**Key features**
- 자체 호스팅: 자신의 Cloudflare 계정에서 워커를 실행하고 데이터는 자신의 PlanetScale 데이터베이스에 저장합니다.
- 프라이버시 우선: 서드파티 추적 쿠키 없음, IP 로깅 없음, 모든 데이터는 사용자의 통제 하에 있습니다.
- 단일 도메인 지원 (향후 버전에서 다중 도메인 처리 추가 가능).
- `wrangler`와 `pnpm`을 사용하는 간단한 배포 워크플로우.
**Development workflow**
1. 무료 Cloudflare 및 PlanetScale 계정을 생성합니다.
2. 저장소를 클론하고 Node.js v18+, pnpm, PlanetScale CLI를 설치합니다.
3. `main`과 `dev` 브랜치가 있는 `flarelytics` 이름의 PlanetScale 데이터베이스를 설정하고, 로컬 작업에는 `dev` 브랜치를 사용합니다.
4. Cloudflare Worker(예: `flarelytics-dev`)를 생성하고 데이터베이스 자격 증명을 비밀 환경 변수로 저장합니다.
5. `pnpm run setup-test-db`를 실행하여 테이블을 만든 후, `pnpm run dev`를 실행하여 로컬 워커를 시작합니다.
6. 테스트 환경에 배포할 준비가 되면 `npm run deploy-dev`를 실행합니다.
**Contribution**
이 프로젝트는 부다페스트 기술경제대학교 Google Developer Student Club에서 유지 관리됩니다. 기여자는 GitHub 트래커에서 이슈를 선택하고, 표준 fork‑branch‑PR 흐름을 따르며, README에 명시된 기여 지침을 준수하도록 권장됩니다.
**Status**
Flarelytics는 현재 활발히 개발 중이며 프로덕션 사용을 권장하지 않습니다. 향후 계획에는 다중 도메인 지원, 더 풍부한 대시보드, 그리고 분석 UI에 대한 선택적 인증이 포함됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.