Личный архив страниц из интернета?
Я человек любопытный и нередко нахожу страничку интернете, которые не очень попялурны, но при этом в будущем я хотел бы посерьезнее изучить. Вы можете подумать, ну сделай закладку и делов. Но проблема в том что люди просто переносят, удаляют, меняют эти странички. И остается это чувство... я сошел с ума и мне приснилась та статья? Может её не было никогда?
Идея в том что нужно просто скопировать всякие картинки, стили, javascript по соотстветствующему адресу и как-то их аккуратно сохранить чтобы открывать локально. Ну и потому еще как их сделать доступными легко с любого компьютера. Ну к сути, я нашел прекрасный проект под названием ArchiveBox, который создавался почти один в один под мои запросы.
Я долго маялся, зная что мне надо будет разобраться как лучше использовать этот проект у себя на сервере. Установка различных приложений с базой данных и прочим может быть откровенной головной болью. Пользователи, пакеты, настройки, недокументированные временные файлы... много мест накосячить. Потому я с самого начала намеревался использовать контейнеризацию, что для обычного программиста звучит как Docker.
Не все VPS поддержавают контейнеры...
Это стало для меня новостью после нескольких безуспешных часов с обновления Ubuntu, и попытками запустить базовый образ для проверки работоспособности Docker. Так как я использую фактически виртуальный сервер (Virtual Private Server), то они создаются на базе специального программного обеспечения со своими стандартами, как OpenVZ, KVM.
Общение с тех.поддержкой подтвердило мои подозрения и мне пришлось обновить сервер буквально отказавшись от всех старых данных, настроек и прочего. Но после заказа нового хостинга я смог получить работающую контейнеризацию. И теперь я могу вызывать со своего сервера образ проекта по арзивации веб-страниц и не заваливать все непонятным зависимостями и файликами.
Не так быстро
Так для результатов работы ArchiveBox я решил использовать папку которую в контейнер я монтировал на этапе запуска архивации. И оказалось что моя папка не соответствует правам доступа пользователя от которого запускается основной процесс образа. Есть грубый вариант дать доступе к папке для ВСЕХ (как я сделал первоначально), а по факту надо было дать доступ на запись группе docker на сервере.
Так же имейте ввиду что архив создается, на века! Там есть и pdf-версия, и какие-то специальные архивные форматы, так что сложные странички легко могут потребовать гигабайт места на жестком диске. Но сейчас 21 век и это стоит копейки в сравнении с началом 3 тысячетелия.
Так же мне потребовалось сделать маленькую модификацию работы веб-сервера, чтобы он сам создавал index-content при просмотре папок с архивным данными.
Немного о грустном
Если вы скачали страницу с ошибкой, хотите что-то удалить, исправить. То я реально без понятия как это сделать без полной установки проекта на ваш сервер. Когда мне потребовалось удалить неудачные данные, то я просто снес интересующие меня папки и руками отредактировал основную страницу со списком архивированных данных. Кривота конечно, но я просто буду осмотрительнее выбирать адреса в следующий раз.