Как я превратил свой Raspberry Pi в личный интернет-архив

Обложка Archivebox Raspberry Pi

Raspberry Pi и старый жесткий диск собирали пыль в моем ящике, пока взлом Интернет-архива не попал в заголовки новостей. Теперь они являются сердцем моей местной системы веб-архивирования, сохраняя все от любимых блогов до проектов с открытым исходным кодом. В этой статье я расскажу о своем пошаговом пути по созданию личного интернет-архива и цифровой независимости в области сохранения с помощью ArchiveBox.

Почему я выбрал самостоятельно разместить личный интернет-архив

Недавняя утечка информации из Интернет-архива поразила сообщество цифрового сохранения и всех, кто пользуется его работой, как гром с ясного неба. 9 октября хакеры скомпрометировали сайт и украли огромную базу данных аутентификации пользователей, содержащую 31 миллион записей.

Что еще хуже, так это то, что это не было концом бед Интернет-архива. Как только им удалось восстановить некоторые услуги к 21 октября, хакеры получили доступ к их системе поддержки Zendesk, что продемонстрировало, что уязвимость была глубже, чем первоначально предполагалось.

Интернет-архив офлайн

Хотя архив с тех пор возобновил работу, его будущее остается неопределенным, поскольку утечки информации не являются единственной угрозой для цифрового сохранения. Недавнее решение Федерального апелляционного суда нанесло еще один существенный удар по Интернет-архиву, установив, что их цифровая библиотека не защищена доктриной добросовестного использования и может быть вынуждена удалить значительную часть своего контента.

Последствия очевидны: необходимость личного контроля за цифровым сохранением никогда не была столь явной. Хорошая новость в том, что любой может легко настроить личный интернет-архив, используя Raspberry Pi и ArchiveBox.

Рекомендуемая аппаратная конфигурация для архивирования на Raspberry Pi

Если вы готовы создать свой собственный личный интернет-архив, вам потребуется несколько компонентов.

Прежде всего, вам нужен Raspberry Pi. Для лучшего опыта я настоятельно рекомендую последнюю Raspberry Pi 5, потому что ее значительно улучшенная производительность означает, что ваши архивные задачи будут выполняться более плавно и быстрее, и у вас будет достаточно запасов для будущего расширения вашего архива.

Raspberry Pi в коробке

Тем не менее, не думайте, что вам нужно срочно менять, если у вас уже есть Raspberry Pi 4B с 4 ГБ или 8 ГБ оперативной памяти. Эти модели вполне способны запустить личный архив, и у них есть одно интересное преимущество перед Pi 5: аппаратное H.264 видео-кодирование. Это особенно полезно, если вы планируете транслировать архивированные видео на ваш телевизор или другие устройства в вашем доме.

Помимо вашего Pi, вот что еще вам понадобится:

  • карта microSD: Карта microSD емкостью 32 ГБ достаточна, чтобы запустить ArchiveBox. Эта microSD карта будет служить основным загрузочным диском для Pi, поэтому убедитесь, что вы выбрали качественную, надежную карту, чтобы избежать проблем с повреждением данных в будущем.
  • внешний жесткий диск: Для фактического хранения архива вам понадобится внешний жесткий диск размером 3,5″ с собственным источником питания. Почему? Потому что жесткие диски 3,5″ предлагают лучшую надежность со временем по сравнению с более современными SSD, а надежность имеет наибольшее значение, когда дело касается архивирования.
  • монитор, мышь и клавиатура: Эти устройства технически необязательны, но могут облегчить настройку, особенно если вы настраиваете Pi в первый раз. В качестве альтернативы вы можете управлять им полностью удаленно, используя такие инструменты, как SSH (протокол Secure Shell), VNC (виртуальное сетевое вычисление) или RDP (протокол удаленного рабочего стола).

Как только у вас есть все эти предметы под рукой, вы готовы начать настройку вашего собственного интернет-архива!

Подготовка программной среды для архивирования

Первый шаг — установить операционную систему на вашем Raspberry Pi. Я лично рекомендую Raspberry Pi OS, потому что, как официальная ОС для устройств Raspberry Pi, она является самой популярной и поддерживаемой опцией. Вы можете следовать нашему руководству по установке Raspberry Pi OS, если не знаете, как установить ее на вашу microSD карту.

Запись изображения Raspberry Pi

А если у вас есть желание поэкспериментировать, вы можете исследовать некоторые альтернативные операционные системы, доступные для Raspberry Pi.

После установки операционной системы загрузите свой Pi и подключите его к интернету (не имеет значения, используете ли вы проводное или беспроводное соединение). Затем запустите Терминал и выполните обновление системы с помощью команды:

sudo apt update && sudo apt full-upgrade

Sudo Apt Full Upgrade

Что касается установки ArchiveBox, у вас есть три варианта: Docker, автоматический скрипт установки или использование менеджера пакетов вашей системы. Я настоятельно рекомендую выбрать Docker. Он не только обеспечивает самый плавный процесс установки и обновления, но также дает вам наилучшую изоляцию безопасности и включает все зависимости сразу.

К сожалению, Docker не предустановлен в Raspberry Pi OS, поэтому нам нужно сначала его установить (не забудьте также выполнить шаги после установки).

После успешной установки Docker мы готовы перейти к установке самого ArchiveBox, что будет значительно проще благодаря всем подготовительным работам, которые мы провели.

Установка и запуск ArchiveBox

Чтобы установить ArchiveBox с использованием Docker, сначала создайте каталог, где будет храниться весь ваш архивированный контент. Это будет ваша папка архива на Raspberry Pi, поэтому выберите место с достаточным объемом памяти, например, на вашем внешнем жестком диске (вы можете перейти к нему с помощью команды cd):

mkdir -p archivebox/data && cd archivebox

Затем загрузите официальный файл конфигурации Docker Compose, который определяет, как должен работать ArchiveBox:

curl -fsSL 'https://docker-compose.archivebox.io' > docker-compose.yml

Этот файл конфигурации важен, потому что он настраивает все необходимые компоненты, включая веб-сервер и запланированные задачи. Если вы хотите хранить архив на внешнем диске, а не на SD-карте Pi (что рекомендуется), вам нужно будет отредактировать файл “docker-compose.yml”, чтобы указать путь к вашему смонтированному диску.

Для этого откройте файл конфигурации с помощью любого текстового редактора, например, nano:

nano docker-compose.yml

Ищите раздел volumes под службой archivebox. По умолчанию он выглядит примерно так:

services:  
    archivebox:  
...  
        volumes:  
            - ./data:/data

Нам нужно изменить ./data, чтобы он соответствовал полному пути к каталогу данных на вашем внешнем диске. Например, если ваш диск смонтирован по пути /mnt/external_drive, измените строку так:

services:  
    archivebox:  
...  
        volumes:  
            - /mnt/external_drive/archivebox/data:/data

Это сообщает Docker, чтобы хранить все данные ArchiveBox в каталоге “archivebox/data” на вашем внешнем диске вместо использования относительного пути. Использование абсолютного пути важно, потому что оно гарантирует, что Docker всегда сможет найти ваши архивные данные, даже если вы запускаете команды из разных каталогов.

Пока вы находитесь в файле конфигурации, вы также можете добавить переменные окружения PUID и PGID, соответствующие учетной записи пользователя вашего Pi. Найдите свой идентификатор пользователя и идентификатор группы, выполнив id -u и id -g, и затем добавьте их в раздел окружения:

services:  
    archivebox:  
...  
        environment:  
            - PUID=1000    # замените на ваш идентификатор пользователя  
            - PGID=1000    # замените на ваш идентификатор группы

Наконец, закомментируйте или удалите услуги sonic (более быстрый и лучший поиск для больших коллекций) и novnc (позволяет вам настраивать профиль с логинами на сайты, которые вы хотите архивировать). Настройка этих дополнительных услуг выходит за рамки этого руководства, поэтому я рекомендую изучить официальную документацию, если вас это интересует.

Минимальная рабочая конфигурация должна выглядеть примерно так:

Docker Compose Archivebox

Сохраните файл и выйдите из редактора. Теперь инициализируйте ваш архив и создайте учетную запись администратора для доступа к веб-интерфейсу:

docker compose run archivebox init  
docker compose run archivebox manage createsuperuser

После завершения инициализации вы можете запустить сервер ArchiveBox:

docker compose up -d

Archive Box работает в первый раз

Теперь вы можете получить доступ к вашей инстанции ArchiveBox, открыв веб-браузер и перейдя по адресу http://localhost:8000. Попробуйте это сейчас. Вот что вы должны увидеть:

Настройка и использование ArchiveBox

Чтобы настроить поведение ArchiveBox, вам не нужно редактировать файлы конфигурации напрямую. Вместо этого используйте команду config, чтобы изменить настройки. Например, я всегда корректирую таймауты и лимиты ресурсов для лучшей производительности на Raspberry Pi:

docker compose run archivebox config --set MEDIA_TIMEOUT=3600  
docker compose run archivebox config --set TIMEOUT=60  
docker compose run archivebox config --set MEDIA_MAX_SIZE=750mb

Вы также можете отключить отправку на archive.org для ускорения архивирования:

docker compose run archivebox config --set SAVE_ARCHIVE_DOT_ORG=False

Все настройки автоматически сохраняются в файле ArchiveBox.conf в вашем каталоге данных, и вы можете в любое время просмотреть текущие настройки, выполнив:

docker compose run archivebox config list

Archivebox Добавить новый URL

С завершением базовой настройки вы можете начать добавлять контент в ваш архив. ArchiveBox поддерживает несколько способов добавления URL. Самый простой — это веб-интерфейс. Вы просто нажимаете кнопку Добавить, вставляете ваши URL и нажимаете кнопку Добавить URL и архивировать.

Archivebox Архивированный веб-сайт

В некоторых случаях может быть удобнее архивировать через командную строку. Например, чтобы архивировать отдельную веб-страницу, вы можете выполнить:

docker compose run archivebox add 'https://example.com'

Или, чтобы архивировать целый список URL из текстового файла:

docker compose run -T archivebox add < urls.txt

Наконец, вы можете импортировать из различных сервисов закладок, включая Pocket, Pinboard или Instapaper. Пожалуйста, проверьте официальную вики для подробных инструкций.

Помните, что ваш архив так же безопасен, как и резервные копии, которые вы поддерживаете. Чтобы защитить все содержимое, которое вы пытаетесь сохранить, я настоятельно рекомендую реализовать надежную стратегию резервного копирования с помощью лучшего программного обеспечения для резервного копирования Linux, чтобы защититься от потери данных, сбоя питания или случайных удалений.