よくある質問(FAQ)¶
一般¶
HistorySync は私のブラウジングデータをサードパーティに送信しますか?¶
いいえ。 HistorySync は完全にローカルファーストです。すべての履歴データはご自身のマシン上の SQLite データベースに保存されます。唯一のネットワーク通信はオプションの WebDAV バックアップで、これはご自身が管理するサーバー(またはセルフホストサービス)に対して行われます。分析情報、テレメトリ、外部への通信は一切行いません。
どのブラウザに対応していますか?¶
HistorySync は 30 以上のブラウザ をネイティブサポートしています:
Chromium 系: Chrome、Edge、Brave、Vivaldi、Arc、Chromium、Opera、Opera GX、Yandex ブラウザ、CentBrowser、Thorium など多数。
Firefox 系: Firefox、Firefox ESR、LibreWolf、Waterfox、Pale Moon、SeaMonkey、Basilisk。
Safari: macOS のみ。
地域別ブラウザ(Windows/macOS/Linux): QQ ブラウザ、Sogou、UC ブラウザ、Liebao、Maxthon、Twinkstar など。
お使いのブラウザが一覧にない場合は、設定 → ブラウザ → カスタムパスを追加 から手動で追加するか、スマートスキャン機能をお試しください。
複数のコンピューターで HistorySync を使用できますか?¶
はい!各マシンに HistorySync をインストールし、すべてのマシンで同じ WebDAV サーバーを設定して自動同期を有効にしてください。クラウドから復元(または HistorySync が自動マージ)する際、すべてのデバイスのレコードがブラウザタイプ、URL、訪問日時に基づいてインテリジェントに重複除去されます。
同期と取得¶
ブラウザを開いたまま HistorySync は動作しますか?¶
はい。HistorySync は SQLite WAL(Write-Ahead Log)スナップショット を使用します — WAL ファイルを読み取る前にコピーするため、実行中のブラウザとの競合が発生しません。ブラウザがロックされたり一時停止されたりすることはありません。
同期後に一部のレコードが欠けているのはなぜですか?¶
いくつかの原因が考えられます:
- プライベート / シークレットブラウジング — ブラウザはシークレット履歴をディスクに書き込みません。HistorySync はそれを見ることができません。
- ブラウザプロファイルが無効化 — 設定 → ブラウザ でプロファイルが無効化されていないか確認してください。
- URL がフィルタリングされている — HistorySync はブラウザの内部 URL(
chrome://、about:、file://など)およびブラックリスト上のドメインを無視します。 - 最初の同期が増分同期だった — 設定 → メンテナンス → 完全再同期を試すか、GUI の起動エントリポイント
python -m src.main --resyncを使用して、すべての履歴レコードを再読み込みしてください。
「完全な再同期」とは何ですか?¶
通常の同期は増分同期です — 最終同期タイムスタンプより新しいレコードのみを読み込みます。完全な再同期はウォーターマークを無視してすべてのブラウザからすべてのレコードを再読み込みし、変更された可能性のある visit_count などのフィールドを遡って補完します。レコードはアップサートされるため、重複することなく、いつでも安全に実行できます。
プライバシーとセキュリティ¶
データはどこに保存されますか?¶
| プラットフォーム | デフォルトの場所 |
|---|---|
| Windows | %APPDATA%\HistorySync\ |
| macOS | ~/Library/Application Support/HistorySync/ |
| Linux | ~/.config/HistorySync/ |
--config-dir PATH で変更するか、--portable を使用してすべてのデータを実行ファイルのそばに保存できます。
WebDAV の認証情報はどのように保護されていますか?¶
認証情報は平文で保存されることはありません。HistorySync は OS キーチェーン(keyring 経由)に保存されたマスターキーから HKDF を使用して独立した暗号化・認証サブキーを導出します。詳細は セキュリティアーキテクチャ をご参照ください。
「ソフト非表示」/ 非表示レコードとは何ですか?¶
ソフト非表示は、レコード(またはドメインのすべてのレコード)を非表示としてマークします — メインの履歴ビューからは見えなくなりますが、データベースには残ります。履歴 → 非表示を表示 で確認できます。機密性の高いページを完全に削除することなく隠したい場合に便利です。
ドメインブラックリストとは何ですか?¶
ブラックリストに登録されたドメインはインポートされることはなく、既存のレコードも完全に削除されます。レコードを右クリック →ドメインをブラックリストに追加、または 設定 → プライバシー → ドメインブラックリスト で管理できます。
WebDAV とクラウドバックアップ¶
HistorySync はどの WebDAV プロバイダーに対応していますか?¶
標準的な WebDAV サーバーであればどれでも動作します。テスト済み: Nextcloud、Synology DSM、ownCloud、AList、Nginx WebDAV、Apache mod_dav、Caddy WebDAV。プロバイダー別の設定手順については WebDAV 設定ガイド をご覧ください。
バックアップはいくつ保持されますか?¶
デフォルトでは、サーバー上に 10 件のバックアップ が保持されます。各アップロード成功後に古いものは自動的に削除されます。hsync config set webdav.max_backups N で変更できます。
「接続が拒否されました」でバックアップに失敗した場合は?¶
- WebDAV の URL(プロトコル、ホスト名、ポート、パス)を確認します。
- ユーザー名とパスワードを確認します — Nextcloud の場合は アプリパスワード を使用してください。
- 接続をテストします:
curl -u user:pass https://your-server/dav/ - 自己署名証明書を使用している場合は、
hsync config set webdav.verify_ssl falseを設定します。
パフォーマンス¶
数百万件のレコードがあると HistorySync が遅い — どうすればいいですか?¶
次の手順を順番に試してください:
hsync db vacuumを実行 — 断片化したスペースを回収し、クエリプランナーの統計を更新します。hsync db rebuild-ftsを実行 — 全文検索インデックスを再構築します。- データベースが高速なローカル SSD 上にあることを確認します(ネットワーク共有や USB ドライブではなく)。
- 正規表現検索を使用している場合、プレーンなキーワード検索への切り替えを検討してください — 正規表現は SQL プッシュダウンにより高速ですが、非常に複雑なパターンは遅くなることがあります。
データベースはどのくらいのディスクスペースを使いますか?¶
レコード数とページのメタデータの量によって異なります。おおよその目安:
| レコード数 | おおよそのサイズ |
|---|---|
| 100,000 | ~20〜40 MB |
| 500,000 | ~80〜150 MB |
| 1,000,000 | ~150〜300 MB |
| 5,000,000 | ~600 MB〜1.2 GB |
定期的に hsync db vacuum を実行してファイルを小さく保ちましょう。
CLI(hsync)¶
hsync をシステムコマンドとしてインストールするには?¶
ソースから実行している場合:
# Linux / macOS
echo '#!/bin/sh\npython -m src.cli "$@"' > /usr/local/bin/hsync
chmod +x /usr/local/bin/hsync
ビルド済みパッケージを使用している場合、インストーラーが通常 hsync を PATH に自動的に追加します。
Docker コンテナ / CI パイプラインで hsync を使用できますか?¶
はい。GUI の依存関係を避けるために --headless モードを使用してください:
または hsync を直接使用:
Qt がディスプレイがないと警告を出す場合は QT_QPA_PLATFORM=offscreen を設定してください。
コントリビュートと開発¶
バグを報告するには?¶
GitHub のバグ報告テンプレート を使用してください。OS、HistorySync のバージョン、関連するブラウザ、再現手順を含めてください。
セキュリティの脆弱性を発見した場合は?¶
公開 Issue を開かないでください。 説明、再現手順、潜在的な影響とともに 0x4fe6@gmail.com にメールを送ってください。72 時間以内に返信します。
新しいブラウザのサポートを追加するには?¶
コントリビュートガイド をご覧ください。ブラウザエクストラクターは src/services/extractors/ にあります。新しい Chromium フォークのほとんどは ChromiumExtractor をサブクラス化するだけで、数行のコードで追加できます。