このプロジェクトについて
Smart-analyticsは、プライバシーを最優先した最小限のセルフホスト型ウェブサイト分析システムで、tiny-analytics 0.1.3を改造して開発されました。中核となる upgrade はマルチサイト/マルチテナント管理のサポートです:単一のアカウントで複数のサイトを管理でき、各サイトは独立したトラッキングスクリプトとデータ分離を持ちます。
技術スタックはPython FastAPI + SQLite(シングルデータベースでマルチテナント)、単一プロセスで動作し、外部サービスやデータベースを必要としません。動作原理は、訪問者がページをロードした際にトラッキングスクリプトがサーバーへPOSTリクエストを送信し、サーバーが「サイトID:IP:UA」のハッシュを生成して匿名の訪問者識別子を作成します。元のIPは保存されません。ページを離れる際にはビーコンが滞在時間を報告し、ダッシュボードがサイト別に集計して可視化します。
機能特性は以下の通りです:
- プライバシー優先:Cookieなし、localStorageなし、フィンガープリント収集なし、クロスサイト追跡なし
- マルチサイト/マルチテナント:各サイトが独立したトークンを持有し、データは完全に分離されます。複数ユーザーとサイトメンバーをサポート
- アカウント体系:メールアドレス+パスワードでの登録・ログイン、Webインターフェースでサイトとメンバーを管理
- オフラインGeoIP定位:DB-IPライブラリベースで、国家/州/都市レベルの地理情報を提供し、第三者APIを必要としない
- ボットフィルタ:自動でボット流量を識別・分離
- 高頻度IPモジュール:高頻度アクセスIPを識別し地理情報を表示
- ページ滞在時間:実際のインタラクション時間を記録
- 地理とデバイス分布:訪問者の来源と使用デバイスタイプの統計
- 人気ページと流量来源:トップページランク、来源ドメインと検索キーワード
- アクセス時間帯分布: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.