프로젝트 소개
OpenAnalytics는 AGPL-3.0 라이선스로 배포되는 자체 호스팅용 공개소스 웹 분석 제품으로, pnpm 모노레포 형태로 제공됩니다. 쿠키 없는 프라이버시 우선 측정과 집계만 허용하는 읽기 전용 설계를 지향합니다.
방문자 신원은 nightly 회전되는 솔트 해시로 처리되며, 한 방문자의 추적 거리는 단일 방문 세션 길이로 제한됩니다. Do Not Track 및 Global Privacy Control는 수집 계층에서 적용되며, 도시 수준의 지리적 위치 정보는 사이트별로 옵트인 방식으로 호스트 내부 DB로 Resolve됩니다.
모노레포는 브라우저 트레이서 스니펫, 컬렉터, ClickHouse에 이벤트 및 롤업 집계를 쓰기 위한 워커, 인증/사이트/키/공유/퍼널/위젯/수익/AI 어시스턴트/MCP 서버를 포함한 API 컨트롤 플레인, Ed25519 서명 쿼리 envelope만 허용하는 쿼리 게이트웨이, SSE 기반 실시간 대시보드 애플리케이션, Next.js 대시보드, `oa` CLI, 그리고 도메인 로직·Postgres/ClickHouse 스키마·Redis/Valkey·OpenAPI 계약·관찰 가능성·통합 패키지로 구성됩니다.
저장소는 Postgres(컨트롤 플레인), ClickHouse(이벤트 및 롤업), 두 개의 Valkey 인스턴스(내구 이벤트 큐 + 임시 실시간 캐시)로 분리됩니다. 지원 기능은 페이지뷰, 맞춤·속성 기반 이벤트, 세션, Web Vitals, 퍼널, 사이트별 retention, 임베드 가능한 위젯, 공개 공유 링크, Stripe 연동 수익 분석, CSV/JSON import·export, MCP 서버, CLI입니다. 대시보드는 실시간 방문자 목록, 방문 경로, 선택적 실시간 세계 지도를 표시합니다.
CI가 아키텍처 규칙을 강제합니다: 웹 앱은 shared contracts 패키지만 임포트 가능하며 OpenAPI 문서가 프론트엔드와 백엔드의 유일한 경계선입니다. ClickHouse는 쿼리 게이트웨이只能通过 접근 가능하며, 트레이서 크기 예산 초과 변경은 빌드 실패, Postgres 스키마에 청구 테이블이 없음을 CI 테스트가 검증합니다.
SELF-HOSTING.md에 따라 단일 `docker compose up -d`로 자동 TLS 설정이 가능합니다. 리눅스 호스트에 Docker, 네 개의 DNS 레코드(app/api/c/rt 서브도메인), 약 4GB RAM, 25GB 디스크가 필요합니다. 릴리스는 ghcr.io에서 ten 개 이미지를 pull하는 방식으로 배포되며, arm64 호스트나 브랜치 빌드는 로컬 컴파일이 필요합니다. 마이그레이션은 되돌릴 수 없으므로 `upgrade.sh`는 필수 snapshot을 생성하고, 소스 빌드는 컴파일된 마이그레이션 러너 전에 실행되어야 합니다. AI 어시스턴트와 object storage는 미설정 시 자동으로 비활성화됩니다.
지리적 위치 데이터는 번들에 포함되지 않습니다(README에 따르면 60MB 다운로드로 한 달 내 노후화). DB-IP 데이터베이스는 CC BY 4.0 하에 사용됩니다. 기여는 풀 리퀘스트로 진행되며, CLAd는 저작권을 기여자가 보유하면서 병합만으로 이루어집니다. AGPL-3.0은 수정된 버전을 네트워크 서비스로 실행하는 경우 수정 소스를 제공해야 하지만, 프로젝트명 및 hosted 서비스 도메인은 라이선스 혜택에 포함되지 않습니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.