Часто Задаваемые Вопросы¶
Общее¶
Загружает ли HistorySync мои данные браузера третьим лицам?¶
Нет. HistorySync полностью ориентирован на локальное хранение. Все данные истории хранятся в базе данных SQLite на вашем собственном компьютере. Единственный сетевой трафик — это опциональное резервное копирование WebDAV, которое направляется на сервер, которым управляете вы (или самостоятельно размещённый сервис). Никакая аналитика, телеметрия или внешние вызовы никогда не производятся.
Какие браузеры поддерживаются?¶
HistorySync нативно поддерживает 30+ браузеров, включая:
На основе Chromium: Chrome, Edge, Brave, Vivaldi, Arc, Chromium, Opera, Opera GX, Yandex Browser, CentBrowser, Thorium и многие другие.
На основе Firefox: Firefox, Firefox ESR, LibreWolf, Waterfox, Pale Moon, SeaMonkey, Basilisk.
Safari: только macOS.
Региональные браузеры (Windows/macOS/Linux): QQ Browser, Sogou, UC Browser, 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, которые могли измениться. Её безопасно запускать в любое время — записи обновляются через upsert, а не дублируются.
# Точка запуска GUI (не CLI hsync)
python -m src.main --resync
# Из GUI: Настройки → Обслуживание → Полная пересинхронизация
Конфиденциальность и Безопасность¶
Где хранятся мои данные?¶
| Платформа | Расположение по умолчанию |
|---|---|
| Windows | %APPDATA%\HistorySync\ |
| macOS | ~/Library/Application Support/HistorySync/ |
| Linux | ~/.config/HistorySync/ |
Используйте --config-dir ПУТЬ для переопределения или --portable для хранения всего рядом с исполняемым файлом.
Как защищены учётные данные WebDAV?¶
Учётные данные никогда не хранятся в открытом виде. HistorySync выводит независимые подключи шифрования и аутентификации из мастер-ключа, хранящегося в системном хранилище ключей ОС (через keyring), используя HKDF. Полные сведения см. в разделе Архитектура Безопасности.
Что такое «мягкое скрытие» / скрытые записи?¶
Мягкое скрытие помечает запись (или все записи домена) как скрытые — они исчезают из основного вида «История», но остаются в базе данных. Вы можете просмотреть их в История → Показать скрытые. Это полезно для скрытия чувствительных страниц без постоянного удаления.
Что такое чёрный список доменов?¶
Домены в чёрном списке никогда не импортируются, а существующие записи для этих доменов удаляются навсегда. Щёлкните правой кнопкой мыши на записи → Добавить домен в чёрный список, или управляйте списком в Настройки → Конфиденциальность → Чёрный список доменов.
WebDAV и Облачное Резервное Копирование¶
Какие WebDAV-провайдеры работают с HistorySync?¶
Любой стандартный WebDAV-сервер. Протестировано с: Nextcloud, Synology DSM, ownCloud, AList, Nginx WebDAV, Apache mod_dav, Caddy WebDAV. Пошаговые инструкции для конкретных провайдеров см. в руководстве по настройке WebDAV.
Сколько резервных копий хранится?¶
По умолчанию на сервере хранится 10 резервных копий. Более старые автоматически удаляются после каждой успешной загрузки. Измените это с помощью hsync config set webdav.max_backups N.
Резервное копирование завершилось ошибкой «Connection refused» — что проверить?¶
- Проверьте URL WebDAV (протокол, имя хоста, порт, путь).
- Проверьте имя пользователя и пароль — для 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-накопителе.
- Если вы используете поиск по регулярным выражениям, рассмотрите переход на простой поиск по ключевым словам — regex быстрее через SQL pushdown, но очень сложные шаблоны всё равно могут быть медленными.
Сколько дискового пространства занимает база данных?¶
Зависит от количества записей и объёма хранимых метаданных страниц. Приблизительный ориентир:
| Записей | Приблизительный размер |
|---|---|
| 100 000 | ~20–40 МБ |
| 500 000 | ~80–150 МБ |
| 1 000 000 | ~150–300 МБ |
| 5 000 000 | ~600 МБ – 1,2 ГБ |
Периодически запускайте 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.
Можно ли использовать hsync в Docker-контейнере / CI-пайплайне?¶
Да. Используйте режим --headless, чтобы избежать зависимостей GUI:
Или используйте hsync напрямую:
Установите QT_QPA_PLATFORM=offscreen, если Qt жалуется на отсутствие дисплея.
Вклад и Разработка¶
Как сообщить об ошибке?¶
Используйте шаблон отчёта об ошибке GitHub. Укажите вашу ОС, версию HistorySync, задействованные браузеры и шаги для воспроизведения.
Я обнаружил уязвимость безопасности — что делать?¶
Не открывайте публичный issue. Отправьте письмо непосредственно разработчику на 0x4fe6@gmail.com с описанием, шагами воспроизведения и возможным воздействием. Вы получите ответ в течение 72 часов.
Как добавить поддержку нового браузера?¶
См. руководство по участию. Экстракторы браузеров находятся в src/services/extractors/. Большинство новых форков Chromium можно добавить всего несколькими строками кода, наследуя ChromiumExtractor.