pywb — Python Wayback Machine
pywb — серверная система воспроизведения ве б-архивов на Python 3, разработанная Webrecorder. Работает с WARC и ARC (WACZ — через распаковку при добавлении в коллекцию), предоставляет веб-интерфейс с календарём снимков, CDX API и Memento API. IIPC рекомендует pywb как замену OpenWayback, а в документации pywb есть руководство по переходу. Wayback Machine самого Internet Archive работает на собственном стеке, а не на pywb.
Главное отличие от ReplayWeb.page: pywb — это сервер. Несколько пользователей могут одновременно читать архив по обычным HTTP-ссылкам. ReplayWeb.page обрабатывает всё локально в браузере одного пользователя.
Зачем нужен архивисту
- Публичный доступ: постоянные ссылки вида
https://archive.example.org/my-coll/20260601120000/https://example.com/. - Несколько коллекций: параллельно хостить архив газеты, архив госсайта и личный архив исследователя.
- CDX/Memento API: программный поиск снимков по URL через HTTP.
- Динамические коллекции: WARC, добавленные через
wb-manager add, индексируются сразу и доступны без перезапуска сервера. - Запись: у pywb есть режим записи с живого веба (
wayback --record), хотя для обхода сайтов обычно используют отдельные краулеры.
Когда использовать
✅ Подходит:
- Хостинг одного или нескольких архивов для команды или сообщества.
- Большие коллекции; для них документация рекомендует внешний индекс OutbackCDX или ZipNum-индекс.
- Программный доступ (CDX/Memento).
- Замена существующей установки OpenWayback.
❌ Не подходит:
- Разовое открытие одного файла без настройки — проще ReplayWeb.page.
- Когда у вас только ZIM-файлы (Kiwix) — для них есть kiwix-serve; см. также warc2zim.
- Полнотекстовый поиск по содержимом у — pywb ищет только по URL; для текста нужен отдельный движок, например SolrWayback.
Установка
Через pip (рекомендуется)
python3 -m venv pywb-env
source pywb-env/bin/activate
pip install pywb
Требования: Python от 3.9 до 3.14 (по метаданным пакета на PyPI).
Через Docker
Официальный образ webrecorder/pywb работает из каталога /webarchive — его и нужно монтировать как том:
docker pull webrecorder/pywb
# создать коллекцию и добавить WARC
docker run -e INIT_COLLECTION=my-coll \
-v /pywb-data:/webarchive \
-v /path/to:/source \
webrecorder/pywb wb-manager add my-coll /source/my_warc.warc.gz
# запустить сервер на порту 8080
docker run -p 8080:8080 -v /pywb-data:/webarchive webrecorder/pywb wayback
Если команду wayback не указать, контейнер запускает production-сервер uWSGI.