프로젝트 소개
Smart-analytics는 최소주의, 프라이버시 우선의 자가 호스팅 웹사이트 분석 시스템으로, tiny-analytics 0.1.3을 개선하여 다중 사이트/다중 테넌트 관리를 지원한다. 단일 계정으로 여러 사이트를 관리할 수 있으며, 각 사이트는 고유한 트래킹 스크립트와 데이터 격리를 가진다.
기술 스택은 Python FastAPI + SQLite(단일 DB 다중 테넌트)로, 단일 프로세스로 실행되며 외부 서비스나 데이터베이스가 필요 없다. 작동 원리는 방문자가 페이지를 로드할 때 트래킹 스크립트가 서버로 POST 요청을 보내면, 서버가 '사이트ID:IP:UA'를 해싱하여 익명 방문자 식별자를 생성하고 원본 IP는 저장하지 않는다. 페이지를 떠날 때 비콘이 체류 시간을 보고하고, 대시보드는 사이트별로 집계하여 시각화한다.
기능 특징:
- 프라이버시 우선: 쿠키 없음, localStorage 없음,指紋 수집 없음, 크로스사이트 추적 없음
- 다중 사이트/다중 테넌트: 각 사이트 독립 토큰, 데이터 완전 격리; 다중 사용자 및 사이트 멤버 지원
- 계정 시스템: 이메일+비밀번호 등록·로그인, 웹 인터페이스로 사이트 및 멤버 관리
- 오프라인 GeoIP 위치 추적: DB-IP 라이브러리 기반, 국가/도/도시 레벨 지리 정보 제공, 제3자 API 불필요
- 봇 필터링: 봇 트래픽 자동 식별 및 분리
- 고빈도 IP 모듈: 고빈도 방문 IP 식별 및 위치 정보 표시
- 페이지 체류 시간: 실제 상호작용 시간 기록
- 지리적·장치 분포: 방문자 출처 및 사용 기기 유형 통계
- 인기 페이지 및 트래픽 소스: Top 페이지 순위, 소스 도메인 및 검색 키워드
-访问时间 분포: 24시간/주 단위 트래픽 패턴 분석
- 전후 비교: 독립 방문자, 페이지 뷰, 체류 시간의 동기간 변화
- 실시간 온라인: 최근 5분간 온라인 인원, 대시보드 자동 폴링
- 신규/재방문자: 익명 식별자로 구분
- UTM 채널 추적: 소스/매체/캠페인 차원별 통계
- 세션 분석: 이탈률, 평균 세션 시간, 진입/종료 페이지(추정치)
- 브라우저/OS 분포: 순수 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 백엔드(cf-connecting-ip 헤더 자동 읽기)를 지원한다. uvx로 원 명령어 실행 또는 소스에서 빌드도 가능하다.
라이선스는 MIT.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.