Как сохранить сайт офлайн с помощью OpenZIM и Kiwix
Краткое содержание
- OpenZIM и Kiwix позволяют хранить целые сайты в одном сжатом файле .zim и просматривать их офлайн через Kiwix.
- Zimit — инструмент «печати» сайтов в ZIM: доступен как веб‑сервис (удобно) и как Docker‑образ (быстрее, локально, параллельно).
- Веб‑версия может быть медленной и ограничивать одно задание; Docker‑вариант даёт больше контроля, гибкости и скорости.

Что такое OpenZIM и Kiwix
OpenZIM — открытый проект и экосистема для создания архивов сайтов в формате .zim. ZIM — это компактный, индексируемый контейнер с контентом сайта, оптимизированный для офлайн‑чтения. Kiwix — десктоп/мобильный ридер, который открывает .zim и предоставляет интерфейс, похожий на браузер, но без доступа в интернет.
Факты и ориентиры:
- Полная англоязычная Википедия в ZIM — порядка 100 ГБ; «mini»‑вариант около 11 ГБ. Эти ZIM доступны в библиотеке OpenZIM.
- Кiwix и OpenZIM позволяют хранить и читать большие коллекции, например Project Gutenberg.

Важно: ZIM — это снимок сайта на момент создания архива. Динамический контент (live API, авторизация, потоковое видео) может работать не полностью.
Быстрый способ: печать сайта через веб‑интерфейс Zimit
Zimit — это веб‑портал от сообщества Kiwix/OpenZIM, куда вы вставляете URL сайта и адресу электронной почты. Сервис «печатает» сайт в .zim и отправляет вам ссылку на скачивание по почте.
Плюсы веб‑версии:
- Очень просто: вставили URL и почту — процесс запущен.
- Подходит для единичных, небольших задач.
Ограничения и ожидания:
- Обычно доступно только одно задание на пользователя одновременно.
- Сборка может занимать продолжительное время: у сервиса указано, что выполнение может занимать до 24 часов; типичный пример: ZIM ~2 ГБ может быть собран примерно за 2 часа (в зависимости от нагрузки и размера сайта).
- Вы скачиваете итоговый .zim из интернета — нужен быстрый канал для больших архивов.

Когда использовать веб‑версию:
- Нужно один раз получить офлайн‑копию небольшого сайта.
- Нет желания запускать Docker/локальные инструменты.
Когда лучше не использовать:
- Если нужно массово печатать сайты.
- Если сайт большой и вы хотите избежать длительных загрузок через сеть.
Быстрее и гибче: запуск Zimit локально через Docker
Запуск Zimit в контейнере Docker даёт вам локальный контролируемый процесс создания ZIM: быстрее, можно запускать несколько задач параллельно, не нужно качать ZIM через интернет — он записывается прямо в вашу файловую систему.
Требования:
- Docker установлен (Windows/macOS: Docker Desktop; Linux: Docker Engine).
- Достаточно места на диске для итогового .zim и временных данных.
Простой тест, чтобы убедиться, что Docker работает:
docker run hello-worldПример команды для «печати» сайта (из оригинала статьи):
docker run -v $PWD:/output ghcr.io/openzim/zimit zimit --seeds https://legiblenews.com --name tinynewsПояснения:
- -v $PWD:/output — монтирует текущую папку (где вы запускаете команду) в контейнер, туда будет записан .zim.
- –seeds — список стартовых URL (через пробелы можно добавить несколько).
- –name — человекочитаемое имя архива.
Ограничение глубины и числа страниц:
docker run -v $PWD:/output ghcr.io/openzim/zimit zimit --seeds https://legiblenews.com --name tinynews --pageLimit 20 --depth 1- –pageLimit 20 — максимум страниц для скачивания.
- –depth 1 — насколько глубоко по ссылкам переходить от корневого URL (уровней после первого ‘/‘).
Замечания для Windows PowerShell: замените $PWD на ${PWD} или используйте полный путь C:\path\to\folder, а в параметре -v указывайте его в формате /c/path/to/folder при использовании Docker Desktop.

Где искать результат:
pwdКоманда покажет папку, в которой вы запускали Docker; там окажется итоговый *.zim файл.

Как открыть .zim в Kiwix
- Скачайте Kiwix Desktop с официального сайта и распакуйте/установите.
- Запустите kiwix‑desktop (или соответствующий ярлык).
- Нажмите значок папки и выберите .zim — сайт загрузится мгновенно.
Kiwix индексирует и предоставляет навигацию по статьям, внутренним ссылкам и поиску — как в обычном браузере, но без сети.
Когда метод не сработает (контрпримеры)
- Сайты, требующие авторизации и сессий: большинство «печатей» не пройдёт через авторизацию без специальных настроек.
- Динамические одностраничные приложения (SPA), которые полностью зависят от JS‑API и серверных реализаций — части контента могут отсутствовать.
- Интерактивные сервисы (чат, потоковое видео, live‑трансляции) — не пригодны для полноценной офлайн‑работы.
Важно: если сайт использует строгие правила robots.txt или другие ограничения, сбор может быть неполным в соответствии с этими правилами.
Альтернативные подходы
- wget (режим зеркалирования): универсально, но собранные файлы — не единый индексируемый архив, придётся вручную настраивать.
- HTTrack: графический инструмент для скачивания сайтов, полезен для локальных зеркал, но без удобного офлайн‑ридера.
- Webrecorder/ReplayWeb.page: полезно для интерактивной записи сессий и сложного JS‑контента.
- MHTML/Save Page WE: сохраняет отдельные страницы, подходит для единичных URL.
Каждый метод имеет свои плюсы: ZIM + Kiwix — лучше для поиска и организации больших библиотек; wget/HTTrack — гибче для зеркалирования файловой структуры сайта.
Мини‑методология: шаг за шагом
- Оцените сайт: объём, тип контента, необходимость авторизации.
- Выберите путь: Zimit (веб) для простых задач; Docker Zimit для локальной сборки; альтернативы при специальных требованиях.
- Настройте лимиты страниц и глубину, чтобы не перегружать диск и не архивировать лишнее.
- Запустите сбор; контролируйте логи и итоговый размер .zim.
- Откройте в Kiwix, проверьте навигацию, поисковые результаты и важные страницы.
- Документируйте метаданные (дата сборки, seed URL, флаги сборки) для репликации.
Playbook / SOP: что делать перед, во время и после
Перед:
- Проверьте доступность сайта и согласие на архивирование (если применимо).
- Убедитесь, что у вас достаточно места на диске (с запасом).
- Подготовьте каталог вывода и права на запись.
Во время:
- Запустите процесс, сохраняйте логи.
- Для больших сайтов используйте ограничение –pageLimit и –depth для первых прогонов.
- При ошибках проверьте вывод контейнера и сетевые ограничения.
После:
- Откройте .zim в Kiwix и пройдитесь по ключевым страницам.
- Сохраните метаданные: команда, дата, размер .zim, seeds.
- При необходимости перезапустите с другими параметрами.
Критерии приёмки
- .zim открывается в Kiwix без ошибок.
- Ключевой контент (главная, несколько внутренних страниц, поиск) доступен.
- Размер .zim разумен относительно ожидаемого объёма.
- Метаданные сборки сохранены для повторяемости.
Безопасность, приватность и правовые заметки
Important: архивирование сайтов может захватывать личные данные и контент, защищённый авторским правом. Перед массовыми сборами проверьте юридические ограничения, правила сервиса и политику приватности. В некоторых юрисдикциях автоматический сбор персональных данных подпадает под законы о защите данных (например, GDPR). Это не юридическая консультация — при сомнениях проконсультируйтесь с юристом.
Технические рекомендации по безопасности:
- Запускайте контейнер под учётной записью с ограниченными правами.
- Не публикуйте .zim с чувствительной информацией.
- Ограничивайте доступ к локальным каталогам, куда пишется .zim.
Роль‑ориентированные контрольные списки
Для разработчика/администратора:
- Настроить Docker и предоставить доступ к папке вывода.
- Мониторить потребление ресурсов и логи контейнера.
Для исследователя/журналиста:
- Определить список seed URL и приоритетные страницы.
- Проверить полноту критичных материалов после импорта в Kiwix.
Для архивиста/библиотекаря:
- Составить список метаданных и политики хранения.
- Интегрировать .zim в локальную библиотеку и расписание обновлений.
Факт‑бокс: ключевые числа
- Полная англ. Википедия в ZIM ≈ 100 ГБ.
- Mini‑Wikipedias ≈ 11 ГБ.
- Примерный срок сборки через веб‑сервис: до 24 часов; типичный пример — 2 ГБ ZIM ≈ 2 часа (зависит от нагрузки сервера и структуры сайта).
Примеры команд (cheat sheet)
Запустить тест Docker:
docker run hello-worldСоздать ZIM (простой пример):
docker run -v $PWD:/output ghcr.io/openzim/zimit zimit --seeds https://example.com --name myarchiveОграничить до 50 страниц и глубины 2:
docker run -v $PWD:/output ghcr.io/openzim/zimit zimit --seeds https://example.com --name myarchive --pageLimit 50 --depth 2Windows PowerShell (пример монтирования):
docker run -v ${PWD}:/output ghcr.io/openzim/zimit zimit --seeds https://example.com --name myarchiveГлоссарий — 1 строка каждый
- ZIM: сжатый индексируемый контейнер со снимком сайта для офлайн‑чтения.
- Kiwix: приложение‑ридер для открытия .zim и навигации по ним.
- Zimit: инструмент «печати» сайтов в .zim (веб и Docker версии).
- Docker: платформа для запуска приложений в изолированных контейнерах.
- depth: глубина обхода ссылок от корневого URL.
- pageLimit: лимит страниц, которые сохранит краулер.
Короткое резюме
OpenZIM + Kiwix — надёжный способ собрать офлайн‑библиотеку сайтов в удобном формате .zim. Для единичных задач подойдёт веб‑версии Zimit; при регулярных или массовых сборах лучше запускать Zimit локально через Docker и управлять параметрами сборки.
Подписка: Хотите больше практических советов по офлайн‑архивированию, Docker‑командам и рабочим процессам? Подпишитесь на рассылку, чтобы получать примеры и короткие гайды.
Получая рассылку, вы соглашаетесь на получение новостных и маркетинговых писем и принимаете наши Условия использования и Политику конфиденциальности. Отписаться можно в любой момент.


Похожие материалы
Azure Data Studio на Linux — руководство по установке
Обновить Secure Boot сертификаты до UEFI CA 2023
Как уменьшить меню «Пуск» в Windows — быстрый гайд
Azure CLI на Ubuntu: установка и руководство
Победить синдром самозванца — практическое руководство