프로젝트 소개
Flarelytics는 방문자가 개별 페이지에 머무르는 시간을 추적하기 위해 설계된 오픈소스 웹 분석 플랫폼입니다. 기존의 많은 분석 서비스에서 제공하지 않는 '페이지에 머무른 시간' 메트릭과 프라이버시 문제를 해결하기 위해 제작되었습니다.
**주요 기능**
- 브라우저 측 JavaScript 스니펫으로 방문자마다 고유한 UUID를 생성하고 *열기* 및 *닫기* 이벤트를 백엔드로 전송합니다.
- TypeScript로 작성된 백엔드로 Cloudflare Workers에서 실행되며 이벤트 수집 및 대시보드 조회를 위한 최소한의 HTTP API를 노출합니다.
- 이벤트를 데이터베이스에 저장하며, 프로젝트는 원래 MongoDB를 사용했으나 확장성을 위해 PlanetScale/MySQL로 전환 중입니다.
- 배포당 하나의 도메인만 지원하며 (향후 다중 도메인 지원 계획), 프라이버시 우선 접근 방식을 따릅니다: 제3자 추적이 없고 완전히 자체 호스팅되며 EU 규정에 준수됩니다.
**아키텍처**
1. **브라우저 스크립트** (`/analytics`): 대상 웹사이트에 내장되어 페이지 로드/언로드 이벤트를 기록하고 Worker로 전송합니다.
2. **Cloudflare Worker** (`/src`): 이벤트를 수신하여 데이터베이스에 기록하고 대시보드용 데이터를 집계합니다.
3. **데이터베이스**: 현재 MongoDB이며, 관계형 쿼리와 신뢰성을 위해 PlanetScale(MySQL 호환)으로 이전 중입니다.
**개발 상태**
- 부다페스트 공과대학 기술 및 경제 대학의 Google Developer Student Club에서 활발히 개발 중입니다.
- 아직 프로덕션 준비가 되지 않았으며, 저장소에는 기여 지침과 개발 설정이 포함되어 있습니다.
**시작하기**
- 무료 Cloudflare 및 PlanetScale 계정을 만듭니다.
- Node.js(NVM 권장)를 설치하고 `npm install`을 실행합니다.
- 로컬 테스트의 경우 `.dev.vars` 파일에 비밀값을 구성하거나 프로덕션의 경우 Cloudflare UI를 통해 구성합니다.
- `npm run dev`로 로컬 Workers 서버를 시작합니다.
**기여하기**
- GitHub 저장소 또는 프로젝트 보드에서 열린 이슈를 선택합니다.
- 저장소를 포크하고 개발 설정을 따르며 GitHub 플로우를 사용해 풀 리퀘스트를 제출합니다.
**라이선스**
- GPLv3.
Flarelytics는 사이트 소유자가 외부 분석 제공업체에 의존하지 않고도 독자 참여도를 이해할 수 있는 간단하고 프라이버시를 존중하는 방법을 제공하려 합니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.