라즈베리 파이를 개인 인터넷 아카이브로 변환한 방법

Archivebox Raspberry Pi Cover Image

라즈베리 파이와 오래된 하드 드라이브가 내 서랍에서 먼지를 쌓고 있었던 차에 인터넷 아카이브 해킹 사건이 헤드라인을 장식했습니다. 이제 그들은 내가 가장 좋아하는 블로그 게시물부터 오픈 소스 프로젝트까지 모든 것을 보존하는 로컬 웹 아카이빙 시스템의 핵심이 되었습니다. 이 기사에서는 ArchiveBox를 사용하여 개인 인터넷 아카이브와 디지털 보존 독립성을 만드는 단계별 여정을 보여주겠습니다.

개인 인터넷 아카이브를 셀프 호스팅하기로 선택한 이유

최근 인터넷 아카이브의 보안 침해는 디지털 보존 커뮤니티와 그 작업으로부터 혜택을 받는 모든 사람들에게 벼락 같은 충격을 주었습니다. 10월 9일 해커들이 웹사이트를 해킹해 3100만 개의 사용자 인증 데이터베이스를 탈취했습니다.

문제를 더욱 악화시킨 것은, 이것이 아카이브의 문제의 끝이 아니었다는 점입니다. 그들이 10월 21일까지 일부 서비스를 복구했을 즈음, 해커들이 그들의 Zendesk 지원 시스템에 액세스하여 취약성이 처음 생각했던 것보다 더 깊이 있음을 보여주었습니다.

Internet Archive Offline

비록 아카이브는 그 후 운영을 재개했지만, 보안 침해는 디지털 보존에 대한 유일한 위협이 아니기 때문에 그 미래는 여전히 불확실합니다. 최근 연방 항소 법원의 판결은 인터넷 아카이브에 또 다른 심각한 타격을 주었고, 그들의 디지털 대출 도서관은 공정 사용 원칙의 보호를 받지 않으며, 따라서 상당한 양의 콘텐츠를 삭제할 수밖에 없다는 것을 발견했습니다.

결과는 명확합니다: 디지털 보존에 대한 개인적 통제의 필요성이 그 어느 때보다 분명해졌습니다. 좋은 소식은 누구나 라즈베리 파이와 ArchiveBox를 사용하여 개인 인터넷 아카이브를 쉽게 설정할 수 있다는 것입니다.

추천하는 라즈베리 파이 아카이브 하드웨어 설정

자신의 개인 인터넷 아카이브를 만들 준비가 되었다면, 하드웨어가 필요합니다.

가장 먼저, 라즈베리 파이가 필요합니다. 최고의 경험을 위해 최신 Raspberry Pi 5를 강력히 추천합니다. 왜냐하면 성능이 상당히 개선되어 아카이빙 작업이 더 부드럽고 빠르게 실행되고, 아카이브의 미래 확장을 위해 충분한 여유가 있기 때문입니다.

Raspberry Pi In The Box

이미 Raspberry Pi 4B (4GB 또는 8GB RAM)를 소유하고 있다면 부담을 느끼지 마세요. 이러한 모델도 개인 아카이브를 운영하는 데 완벽하게 능력이 있으며, 실제로 Pi 5보다 흥미로운 한 가지 장점이 있습니다: 하드웨어 H.264 비디오 인코딩 기능입니다. 이는 아카이빙된 비디오를 TV나 기타 홈 장치로 스트리밍하려는 경우 특히 유용합니다.

Pi 외에 다음이 필요합니다:

  • microSD 카드: ArchiveBox를 설정하기 위해서는 32GB microSD 카드면 충분합니다. 이 microSD 카드는 Pi의 주 부팅 드라이브로 사용되므로, 데이터 손상 문제를 방지하기 위해 품질이 보장된 신뢰성 있는 것을 선택하세요.
  • 외장 하드 드라이브: 실제 아카이브 저장을 위해서는 별도의 전원 공급 장치가 있는 3.5인치 외장 하드 드라이브가 필요합니다. 왜냐하면 3.5인치 하드 드라이브는 더 현대적인 SSD에 비해 시간이 지남에 따라 더 나은 신뢰성을 제공하기 때문입니다. 아카이빙에서는 신뢰성이 가장 중요합니다.
  • 모니터, 마우스, 키보드: 기술적으로는 선택 사항이지만, 처음으로 Pi를 설정할 때 도움이 될 수 있습니다. 또는 SSH (보안 셸 프로토콜), VNC (가상 네트워크 컴퓨팅) 또는 RDP (원격 데스크톱 프로토콜) 같은 도구를 사용하여 전체 원격 조정이 가능합니다.

이 모든 항목을 준비하면, 개인 호스팅 인터넷 아카이브 설정을 시작할 준비가 됩니다!

아카이빙을 위한 소프트웨어 환경 준비하기

첫 번째 단계는 라즈베리 파이에 운영 체제를 설치하는 것입니다. 개인적으로 Raspberry Pi OS를 추천합니다. 이 운영 체제는 라즈베리 파이 장치의 공식 OS로, 가장 인기 있고 지원되는 옵션입니다. microSD 카드에 설치하는 방법을 잘 모른다면 Raspberry Pi OS 설치 가이드를 따르세요.

Raspberry Pi Image Writing Larger

모험을 좋아하는 분은 라즈베리 파이용으로 제공되는 다른 운영 체제를 탐색해 볼 수도 있습니다.

운영 체제를 설치한 후, Pi를 부팅하고 인터넷에 연결하세요 (유선 또는 무선 연결 여부는 상관없습니다). 그런 다음 터미널을 열고 다음 명령어로 시스템 업데이트를 수행합니다:

sudo apt update && sudo apt full-upgrade

ArchiveBox 설치에는 세 가지 옵션이 있습니다: Docker, 자동 설정 스크립트 또는 시스템의 패키지 관리자를 사용하는 것입니다. Docker를 사용하는 것을 강력히 추천합니다. Docker는 가장 매끄러운 설치 및 업데이트 경험을 제공할 뿐만 아니라 최상의 보안 격리를 제공하고 모든 종속 항목을 바로 사용할 수 있게 합니다.

불행히도, Docker는 라즈베리 파이 OS에 기본적으로 설치되어 있지 않으므로 먼저 이를 설정해야 합니다 (설치 후 단계를 수행하는 것도 잊지 마세요).

Docker가 성공적으로 설치되면, 이제 ArchiveBox를 설치할 준비가 되며, 그동안 준비한 작업 덕분에 훨씬 간단하게 진행할 수 있습니다.

ArchiveBox 설치 및 실행

Docker를 사용하여 ArchiveBox를 설치하려면 먼저 모든 아카이브 콘텐츠가 저장될 디렉터리를 생성합니다. 이 디렉터리는 라즈베리 파이의 아카이브 폴더가 될 것이므로, 외장 하드 드라이브와 같은 충분한 저장 공간이 있는 위치를 선택하세요 (cd 명령어를 이용해 탐색할 수 있습니다):

mkdir -p archivebox/data && cd archivebox

다음으로, ArchiveBox가 어떻게 실행될지를 정의하는 공식 Docker Compose 구성 파일을 다운로드합니다:

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

이 구성 파일은 웹 서버 및 예약 작업을 포함하여 필요한 모든 구성 요소를 설정하기 때문에 중요합니다. 아카이브를 Pi의 SD 카드가 아니라 외장 드라이브에 저장하고자 하면, “docker-compose.yml” 파일을 열어 마운트된 드라이브 위치를 가리키도록 수정해야 합니다.

이렇게 하려면, nano와 같은 텍스트 편집기를 사용하여 구성 파일을 엽니다:

nano docker-compose.yml

archivebox 서비스의 volumes 섹션을 찾습니다. 기본적으로 다음과 비슷하게 생겼습니다:

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

./data를 외장 드라이브의 데이터 디렉토리의 전체 경로로 변경해야 합니다. 예를 들어, 드라이브가 /mnt/external_drive에 마운트되어 있다면 다음과 같이 수정해야 합니다:

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

이는 Docker에게 ArchiveBox의 모든 데이터를 상대 경로 대신 외장 드라이브의 “archivebox/data” 디렉토리에 저장하도록 지시합니다. 절대 경로를 사용하는 것은 모든 명령을 다른 디렉토리에서 실행하더라도 Docker가 항상 아카이브 데이터를 찾을 수 있도록 보장합니다.

또한, Pi의 사용자 계정과 일치하도록 PUIDPGID 환경 변수를 추가할 수 있습니다. id -uid -g 명령을 실행하여 사용자 ID와 그룹 ID를 찾은 다음, 환경 섹션에 추가하세요:

services:  
    archivebox:  
...  
        environment:  
            - PUID=1000    # 사용자 ID로 교체  
            - PGID=1000    # 그룹 ID로 교체

마지막으로, sonic (더 빠르고 대규모 컬렉션 검색을 위한 기능)과 novnc (원하는 사이트에 대한 로그인 프로필을 설정할 수 있는 기능) 서비스를 주석 처리하거나 제거합니다. 이러한 선택적 서비스의 구성은 이 가이드의 범위를 벗어나므로, 관심이 있으시면 공식 문서를 따르시기 바랍니다.

최소한의 작동 구성은 다음과 비슷할 것입니다:

Docker Compose Archivebox

파일을 저장하고 편집기를 종료합니다. 이제 아카이브를 초기화하고 웹 인터페이스에 접근하기 위한 관리자 사용자를 만들 준비가 되었습니다:

docker compose run archivebox init  
docker compose run archivebox manage createsuperuser

초기화가 완료되면, ArchiveBox 서버를 시작할 수 있습니다:

docker compose up -d

Archive Box Running For The First Time

이제 웹 브라우저를 열고 http://localhost:8000으로 이동하여 ArchiveBox 인스턴스에 접근할 수 있습니다. 지금 시도해 보세요. 다음과 같은 화면이 나와야 합니다:

ArchiveBox 구성 및 사용

ArchiveBox의 동작을 사용자 정의하려면 구성 파일을 직접 수정할 필요가 없습니다. 대신 config 명령어를 사용하여 설정을 수정할 수 있습니다. 예를 들어, 라즈베리 파이에서 더 나은 성능을 위해 대기 시간과 리소스 한계를 항상 조정합니다:

docker compose run archivebox config --setMEDIA_TIMEOUT=3600  
docker compose run archivebox config --setTIMEOUT=60  
docker compose run archivebox config --setMEDIA_MAX_SIZE=750mb

아카이빙 속도를 높이기 위해 archive.org에 제출하는 기능을 비활성화할 수도 있습니다:

docker compose run archivebox config --setSAVE_ARCHIVE_DOT_ORG=False

모든 설정은 자동으로 데이터 디렉토리의 ArchiveBox.conf 파일에 저장되며, 현재 설정을 언제든지 보려면 다음을 실행합니다:

docker compose run archivebox config list

Archivebox Add New Url

기본 설정이 완료되면 아카이브에 콘텐츠를 추가할 수 있습니다. ArchiveBox는 URL을 추가하는 여러 가지 방법을 지원합니다. 가장 간단한 방법은 웹 인터페이스입니다. 추가 버튼을 클릭하고 URL을 붙여넣은 후 URL 추가 및 아카이브 버튼을 클릭하면 됩니다.

Archivebox Archived Website

경우에 따라 명령 줄을 통해 아카이브하는 것이 더 편리할 수 있습니다. 예를 들어, 단일 웹 페이지를 아카이브하려면 다음을 실행하세요:

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

또는 텍스트 파일에서 URL 목록을 아카이브하려면:

docker compose run -T archivebox add < urls.txt

마지막으로 Pocket, Pinboard 또는 Instapaper와 같은 다양한 북마크 서비스에서 가져올 수 있습니다. 자세한 지침은 공식 위키를 확인하세요.

보존하려는 모든 콘텐츠를 보호하기 위해 아카이브는 유지하는 백업만큼 안전하다는 점을 잊지 마세요. 데이터 손실, 전원 장애 또는 우발적인 삭제에 대비하여 최고의 리눅스 백업 소프트웨어를 이용한 신뢰할 수 있는 백업 전략 구현을 강력히 추천합니다.