WebDAV 設定¶
HistorySync は WebDAV を使用して、ブラウジング履歴データベースをクラウドにバックアップ・復元します。WebDAV に対応したサーバーであればどれでも使用できます。このページでは、よく使われるプロバイダーの設定手順を説明します。
仕組み¶
- HistorySync が
history.db(オプションでファビコンキャッシュも)を ZIP 圧縮します。 - アトミックストリーミング でアーカイブをリモートの WebDAV パスにアップロードします — アップロードが成功した後にのみ古いバックアップが置き換えられます。
- 最大
max_backups件のコピーが保持され、古いものは自動的に削除されます。 - 復元時、HistorySync は選択したバックアップをダウンロードし、そのレコードをローカルデータベースとマージします(
--replaceモードの場合は置き換え)。
クイック設定(GUI)¶
- 設定 → WebDAV クラウドバックアップ を開きます。
- 各フィールドを入力します:
- URL — パスを含む完全な URL。例:
https://cloud.example.com/remote.php/dav/files/alice/ - ユーザー名 / パスワード — WebDAV の認証情報
- リモートパス — バックアップ用サブフォルダー(デフォルト:
HistorySync/) - 最大バックアップ数 — 保持するスナップショット数(デフォルト: 10)
- 接続テスト をクリックします。
- 自動バックアップ を有効にして間隔を設定します。
クイック設定(CLI)¶
hsync config set webdav.enabled true
hsync config set webdav.url "https://cloud.example.com/remote.php/dav/files/alice/"
hsync config set webdav.username "alice"
# パスワードは GUI で設定するか、必要なら config.json を事前投入してください。
# hsync config では現在 webdav.password キーを公開していません。
hsync config set webdav.remote_path "HistorySync/"
hsync config set webdav.max_backups 7
hsync config set webdav.auto_backup true
hsync config set scheduler.auto_backup_enabled true
hsync config set scheduler.auto_backup_interval_hours 12
# テスト実行
hsync -b
プロバイダー別設定ガイド¶
Nextcloud¶
Nextcloud の WebDAV URL の形式:
- Nextcloud にログインします。
- 設定 → セキュリティ → デバイスとセッション に移動し、アプリパスワード を作成します(メインパスワードより推奨)。
- HistorySync の URL に上記の形式を使用し、Nextcloud のユーザー名とアプリパスワードを入力します。
- オプション:専用フォルダー(例:
HistorySync)を先に作成し、remote_pathをHistorySync/に設定します。
Nextcloud のアプリパスワード
アプリパスワードを使用すると、認証情報が漏洩した場合でも HistorySync はアカウントの他の部分にアクセスできません。強く推奨します。
Synology DSM(QuickConnect / ダイレクト)¶
Synology DSM で WebDAV を有効化する方法:
- コントロールパネル → ファイルサービス → WebDAV を開きます。
- WebDAV または WebDAV HTTPS を有効にします(HTTPS を強く推奨)。
- ポートを確認します(デフォルト: HTTP は 5005、HTTPS は 5006)。
HistorySync の URL 形式:
書き込み権限のある共有フォルダーへのリモートパスを設定します。例: homes/alice/HistorySync/
自己署名証明書
Synology はデフォルトで自己署名証明書を使用しています。次のいずれかの対応が必要です:
- DSM で Let's Encrypt 証明書をインストールする(推奨)
- webdav.verify_ssl を false に設定する(hsync config set webdav.verify_ssl false)
AList(WebDAV 経由の S3 / OneDrive / Google Drive)¶
AList は多くのクラウドストレージプロバイダーを WebDAV として公開するオープンソースのファイルマネージャーです。
AList のユーザー名とパスワードを使用します。remote_path には設定済みストレージ内のパスを指定します。例: OneDrive/HistorySync/
Nginx WebDAV¶
Nginx WebDAV サーバーをセルフホストする場合:
location /dav/ {
root /var/webdav;
dav_methods PUT DELETE MKCOL COPY MOVE;
dav_ext_methods PROPFIND OPTIONS;
dav_access user:rw group:rw all:r;
create_full_put_path on;
auth_basic "WebDAV";
auth_basic_user_file /etc/nginx/.htpasswd;
}
HistorySync の URL: https://<your-domain>/dav/
Apache WebDAV¶
<Location /dav>
DAV On
AuthType Basic
AuthName "WebDAV"
AuthUserFile /etc/apache2/.htpasswd
Require valid-user
</Location>
Cloudflare R2(rclone 経由)¶
R2 はネイティブ WebDAV エンドポイントを持ちませんが、rclone serve webdav でプロキシできます:
webdav.url を http://localhost:8080/ に設定します。
トラブルシューティング¶
「接続が拒否されました」/ 「タイムアウト」¶
- URL を確認してください — プロトコル(
https://)とポートが正しいことを確認します。 - マシンからサーバーに到達できるか確認します:
curl -u user:pass https://your-server/dav/
「401 Unauthorized」¶
- ユーザー名とパスワードを再確認してください。
- Nextcloud の場合:ログインパスワードではなく アプリパスワード を使用してください。
- アカウントがリモートパスへの書き込み権限を持っているか確認してください。
「SSL: CERTIFICATE_VERIFY_FAILED」¶
- サーバーが自己署名証明書または期限切れ証明書を使用しています。
- 証明書を修正するか、
hsync config set webdav.verify_ssl falseを設定してください(信頼できる内部ネットワークのみ)。
バックアップは成功するが、復元でバックアップが表示されない¶
webdav.remote_pathを確認してください — バックアップ時に使用したパスと一致している必要があります。hsync restore --listを実行して、hsyncがサーバー上で何を検出するか確認してください。
大きなバックアップが時間がかかりすぎる / タイムアウトする¶
- HistorySync はストリーミングアップロードを使用しているため、ファイルサイズに関わらずメモリ使用量は少量です。
- サーバーのリクエストタイムアウトが短い場合は延長してください(例: Nginx の
client_body_timeout 300s;)。 - 手動での実行よりも、スケジュール実行(
-wフラグまたはscheduler.auto_backup_interval_hours)を検討してください。
セキュリティについて¶
- WebDAV の 認証情報は HKDF 派生サブキーを使用して暗号化 されてディスクに保存されます。詳細は セキュリティアーキテクチャ をご参照ください。
- 認証情報と履歴データを保護するため、必ず HTTPS を使用してください。平文の HTTP は通信経路上で情報を公開します。
- プロバイダーがサポートしている場合、メインアカウントのパスワードよりもアプリ専用パスワードを使用してください。
- ストレージが限られている場合は
max_backupsを小さな値に設定してください。デフォルトは 5 です。