프로젝트 소개

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.