tadoruたどる

自分のサーバーで使うプライベートな web 解析

Cookie バナーのいらない web 解析。

成果につながるページ、流入元、キャンペーン、イベントを確認できます。Cookie、同意バナー、 第三者の SaaS は不要で、データは自分のサーバーから出ません。Tadoru はセルフホスト型で、 3 つのコマンドでインストールできます。

$ sudo npm install -g tadoru
3 つのコマンドで導入 ソースを見る
0
Cookie(種類を問わず)
0
サードパーティへのリクエスト
25
生データを保持する最大月数
1
バックアップするファイル

得られる情報

サイト改善に必要な答えを、分かりやすく。

数字の背後にいる人をプロファイルせず、訪問者、コンテンツ、コンバージョンをひと目で把握できます。

訪問のきっかけを確認する

訪問者数とページビュー、よく見られるページ、リファラー、国、デバイス、UTM キャンペーンを 確認できます。どこから関心が集まり、どのページに向かうかを分かりやすく表示します。

複雑な解析ツールを使わずに、次に公開、告知、改善すべき内容を判断できます。

訪問後の行動を確認する

エンゲージメント時間、スクロール到達率、外部リンク、ダウンロード、独自イベントと目標を 測定します。Core Web Vitals で、実際の表示が高速で安定しているかも確認できます。

個々の訪問者を追跡せず、コンテンツ、キャンペーン、製品の判断に必要な情報を得られます。

改善に使える解析

必要な情報を取得し、個人プロファイルは作らない。

訪問者、ページ、リファラー、キャンペーン、イベント、Web Vitals を測定します。個人を継続的に 特定できる詳細情報は、意図的に取得しません。

取得するもの

  • +機密情報を除いたページパス
  • +流入元と参照サイト
  • +キャンペーン
  • +国のみ(正確な位置情報は取得しません)
  • +デバイスとブラウザーの種類(正確なバージョンは取得しません)
  • +エンゲージメント時間とスクロール到達率
  • +外部リンクのクリックとダウンロード
  • +独自イベントと目標
  • +Web Vitals

Tadoru が取得しないもの

  • ×Cookie やブラウザーのストレージ
  • ×ブラウザーのフィンガープリンティング
  • ×生の IP アドレスやブラウザー情報の保存
  • ×デバイスやブラウザーの正確な詳細
  • ×毎日のプライバシーリセット後も残る識別子
  • ×サイトをまたいで人を追跡するプロファイル
  • ×DNT または GPC を使う訪問者のデータ

これは単なる宣伝文句ではありません。Tadoru はここに挙げた種類のデータだけを受け付け、 それ以外は拒否するため、余分な個人データが時間とともに蓄積されることを防ぎます。

インストール

3 つのコマンドで Tadoru をインストール。

Node 22 以上の VPS で、インストールし、4 つの質問に答え、サービスを起動するだけです。 Docker、別のデータベース、crontab は不要です。

パッケージをインストールする

npm でグローバルインストールするだけです。GeoIP データベースも同梱されているため、外部サービスへの問い合わせは不要です。

sudo npm install -g tadoru

設定する

計測するドメインを渡します。権限を持たないユーザーを作成し、堅牢化した unit を書き、ダッシュボードのパスワードを一度だけ表示します。必ず控えてください。マイグレーションは起動時に適用され、ソルトのローテーション、集計、保持期限を過ぎたデータの削除もプロセス内で実行されます。これらを手動で管理する必要はありません。

sudo tadoru install-service \
  --sites yourdomain.com,another.dev

起動する

install-service は意図的に何も起動しません。サービスを動かすかどうかは、あなたの明示的な判断として残されています。

sudo systemctl enable --now tadoru

外から届くようにする

Tadoru は 127.0.0.1:3000 で待ち受け、インターネットに直接は姿を見せません。サブドメインをサーバーに向け、すでに使っているもの(nginx、Caddy、Apache、ホスティングのロードバランサー)で HTTPS を終端し、次を渡して転送してください:

Host              公開ホスト名
X-Forwarded-Proto https
X-Forwarded-For   訪問者の IP

これらが無いと、ダッシュボードが壊れたスニペットを出し、管理用 Cookie が Secure 属性を失い、すべての訪問者がサーバー自身の国から来たように見えます。

サイトにスニペットを追加する

script タグひとつ。約 4 KB、依存関係なし。サイトは自身のドメインで識別されるので、登録するものはありません。

<script defer
  src="https://tadoru.yourdomain.com/t.js">
</script>

ダッシュボード

何が機能しているかを 1 画面で確認。

レポートを作成しなくても、アクセスの変化、よく見られるコンテンツ、主な流入元を確認できます。 軽量なダッシュボードは 3 言語に対応し、サードパーティのリソースを読み込みません。

内訳ごとにユニーク訪問者を個別に計算し、互換性のない合計値は足し合わせません。ページ、国、 流入元を正確に比較できます。

デフォルトでプライバシーを保護

永続的な識別情報を使わず、必要な集計を。

// リクエストごとに導出し、そのまま捨てる
visitor_id = blake2b(
  daily_salt + site_id + ip + user_agent
).slice(0, 16)

// IP と user agent はここで使うだけで、
// どこにも書き込まれません。書き込む先の
// ip カラムも user_agent カラムも、
// データベースには存在しません。
  • +Cookie もブラウザーのストレージも使用しない
  • +生の IP と user agent は一時的に使うだけで、保存しない
  • +フィンガープリンティングもサイト間追跡も行わない
  • +DNT と GPC の信号を尊重する
  • +生イベントは 25 か月後に削除し、匿名の集計だけを残す

毎日のソルトから短期間だけ使う訪問者 ID を作り、24 時間ごとに破棄します。同じ人を日付や サイトをまたいで結びつけることはできません。そのため、00:00 UTC をまたぐセッションは 2 つとして数えます。

コンプライアンス判断のための慎重な土台: Tadoru は EU のオーディエンス測定に関する適用除外を踏まえて設計されていますが、法的助言や 規制当局の承認ではありません。データ管理者は利用者です。 条件ごとの分析を確認し、 プライバシーポリシーのひな形を ご自身の状況に合わせて調整してください。

運用する

面倒な部分は、すでに片づいています。

バックアップはコマンドひとつ

tadoru backup がデータベースを日付つきのファイルに書き出します。復元は tadoru restore で、サーバーが動いていれば拒否し、そのファイルが本当に Tadoru の データベースかを先に検証します。

監視できるヘルスチェック

GET /health がデータベースとすべての定期ジョブの状態を返します。ジョブが停滞して いればそれも含みます。tadoru status は同じことをシェルから尋ねます。

パスワードを失くしたら

ハッシュ化して保存されているので、誰も読み出せません。 sudo tadoru reset-password が新しいものを生成し、環境ファイルをバックアップし、 パスワードを一度だけ表示します。

アップデート

sudo npm update -g tadoru のあと再起動するだけ。マイグレーションは冪等で、起動時に 自動で適用されます。手動のマイグレーション手順はありません。

古いデータは自動で消えます

生イベントは 25 か月で削除されます。設定は不要です。ロールアップは匿名の集計なので保持されます。

危険な状態では起動しません

管理者パスワードがない、あるいは例示用のままであれば、サービスは理由を説明して停止します。 誰でも推測できる認証情報のまま起動することはありません。

よくある質問

インストール前に確認しておきたいこと。

本当に同意バナーは要らないのですか?
同意バナーを不要にすることが設計目標です。Tadoru は用途をオーディエンス測定に限定し、匿名の 結果を提供し、サイト間追跡を防ぎ、生データを 25 か月後に削除します。ただし適用除外が個別の 利用状況に当てはまるかは、データ管理者である利用者が判断します。Tadoru は規制当局の承認や 法的助言を提供するものではありません。 詳細な分析プライバシーポリシーのひな形を確認してください。
データの責任は私とあなたのどちらにありますか?
利用者です。Tadoru はホスト型サービスではなく、配布されるソフトウェアです。解析データは利用者が 運用するインフラに保存され、Tadoru の SaaS アカウントや処理者契約はありません。EU 内でのホストは、 構成によっては国際移転に関する検討を簡素化できます。
JavaScript が無効でも動きますか?
機能を絞った形で動きます。<noscript> のピクセルが、日時、サイト、パス、 リファラー、国、デバイスの系統、言語を記録します。滞在時間、スクロール、外部リンクのクリック、 独自イベント、Web Vitals にはスクリプトが必要です。
なぜ SQLite なのですか。持ちこたえられますか?
運用がきわめて単純になるからです。ファイルはひとつ、バックアップはコピーするだけ、メモリは おおよそ 100 MB、管理するものは何もありません。書き込みは単一のトランザクションにまとめられ、 読み取りはディメンションごとの日次ロールアップから返ります。もしいつか手狭になっても、 ストレージはポートの向こう側にあるので、より大きなものへの移行は 2 つのアダプターを差し替える 作業であって、書き直しではありません。
1 つのインストールでいくつのサイトを計測できますか?
リストに書いただけ計測できます。1 つのインストールは 1 つの組織に属し、その組織自身のドメインを 計測します。第三者のアカウントは存在せず、サイトは登録ではなく設定です。サイトにとっては自分の ドメインが唯一の識別子です。
費用はいくらですか?
かかりません。AGPL-3.0-only であり、すでにあなたが費用を払っているハードウェアの上で動きます。 ライセンスが求めるのは 1 点だけです。改変版をネットワーク越しに他の人が利用できる形で動かす 場合は、そのソースコードを提供しなければなりません。Tadoru はそれを自分自身に対して行っています。 ライセンスが求めるとおり、ダッシュボードが自身のソースコードへのリンクを表示します。
生データをエクスポートできますか?
あなたのディスク上の SQLite ファイルそのものです。sqlite3 で開いて好きなように クエリしてください。エクスポート機能がないのは、抜け出すべき囲い込みがそもそもないからです。

サイトを計測する。誰も追跡しない。

無料、AGPL-3.0。5 分ほどで、あなた自身のサーバーで動きます。

$ sudo npm install -g tadoru
ソースを読む