ラズベリーパイをプライベートインターネットアーカイブに変える方法

Archivebox Raspberry Pi Cover Image

ラズベリーパイと古いハードドライブは、インターネットアーカイブのハッキング事件が報じられるまで私の引き出しの中で埃をかぶっていました。今、彼らは私のローカルウェブアーカイブシステムの中核を成しており、お気に入りのブログ記事からオープンソースプロジェクトまで、すべてを保存しています。この記事では、ArchiveBoxを使用してプライベートインターネットアーカイブを作成し、デジタル保存の独立性を獲得するためのステップバイステップの道のりを示します。

プライベートインターネットアーカイブを自宅ホストすることにした理由

最近のインターネットアーカイブのセキュリティ侵害は、デジタル保存コミュニティとその活動の恩恵を受けるすべての人々に衝撃を与えました。10月9日、ハッカーたちはサイトを侵害し、3100万件のレコードを含む大規模なユーザー認証データベースを盗みました。

問題をさらに悪化させたのは、これがアーカイブのトラブルの終わりではなかったことです。10月21日までにいくつかのサービスを復旧させることに成功した矢先に、ハッカーたちはZendeskのサポートシステムにアクセスし、脆弱性が当初考えていたよりも深刻であることを示しました。

Internet Archive Offline

アーカイブはその後業務を再開しましたが、セキュリティ侵害だけがデジタル保存に対する脅威でないため、その未来は不透明です。最近の連邦控訴裁判所の判決は、インターネットアーカイブにとってもう一つの大きな打撃となり、彼らのデジタル貸出図書館がフェアユースの原則によって保護されていないと判断し、したがって、コンテンツの大部分を削除するよう強制される可能性があるとされました。

その意味は明白です:デジタル保存に対する個人的な管理の必要性はかつてないほど明らかになっています。良いニュースは、誰でもラズベリーパイとArchiveBoxを使用して簡単にプライベートインターネットアーカイブを設定できることです。

私の推奨するラズベリーパイアーカイブハードウェアセットアップ

プライベートインターネットアーカイブを作成する準備ができているのであれば、いくつかのハードウェアが必要です。

まず第一に、ラズベリーパイが必要です。最高の体験のためには、最新のラズベリーパイ5を強くお勧めします。なぜなら、その大幅に改善されたパフォーマンスにより、アーカイブ作業がよりスムーズかつ迅速に行われ、将来的なアーカイブの拡張のための余裕がたっぷり持てるからです。

Raspberry Pi In The Box

とはいえ、すでにラズベリーパイ4B(4GBまたは8GBのRAMを搭載)を所有している場合は、無理を感じる必要はありません。これらのモデルでもプライベートアーカイブを十分に運用することができ、実際にはPi 5に対して1つの興味深い利点があります:ハードウェアH.264ビデオエンコーディングです。これは、アーカイブしたビデオをテレビや家の他のデバイスにストリーミングしようとする場合に特に貴重です。

Piと一緒に必要なものは以下の通りです:

  • microSDカード:32GBのmicroSDカードでArchiveBoxを稼働させるのに十分です。このmicroSDカードはPiの主要なブートドライブとして機能するため、将来的なデータ破損の問題を防ぐために、信頼性のある高品質のものを選ぶことが重要です。
  • 外付けハードドライブ:実際のアーカイブ保存のためには、自身の電源供給を持つ3.5インチの外付けハードドライブが必要です。なぜなら、3.5インチのドライブは、より現代的なSSDと比較して時間の経過とともにより良い信頼性を提供し、アーカイブにおいて最も重要なのは信頼性だからです。
  • モニター、マウス、キーボード:技術的にはオプションですが、特に初めてPiを設定する際には設定を簡単にすることができます。あるいは、SSH(セキュアシェルプロトコル)、VNC(バーチャルネットワークコンピューティング)、またはRDP(リモートデスクトッププロトコル)などのツールを使用して完全にリモートで制御することもできます。

これらのアイテムが手元に揃ったら、自宅ホストのインターネットアーカイブのセットアップを始める準備が整いました!

アーカイブのためのソフトウェア環境の準備

最初のステップは、ラズベリーパイにオペレーティングシステムをインストールすることです。私は個人的にラズベリーパイOSをお勧めします。なぜなら、ラズベリーパイデバイスの公式OSであり、これまでで最も人気があり、サポートされているオプションだからです。microSDカードにインストールする方法がわからない場合は、私たちのラズベリーパイOSインストールガイドに従ってください。

Raspberry Pi Image Writing Larger

もし冒険心があるなら、ラズベリーパイ用の代替オペレーティングシステムを探ってみるのも良いでしょう。

オペレーティングシステムがインストールされたら、Piを起動し、インターネットに接続します(有線接続でも無線接続でも問題ありません)。次に、Terminalを起動し、次のコマンドでシステムの更新を実行します:

sudo apt update &&sudo apt full-upgrade

Sudo Apt Full Upgrade

ArchiveBoxのインストールについては、3つのオプションがあります: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とグループIDをid -uおよびid -gを実行して見つけ、環境セクションに追加します:

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 --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 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などのさまざまなブックマークサービスからインポートすることもできます。詳細な手順については公式Wikiをご確認ください。

あなたのアーカイブは、あなたが維持するバックアップと同じくらい安全であることを忘れないでください。保存したいすべてのコンテンツを保護するために、データ損失、電源障害、または誤って削除することを防ぐために、最も良いLinuxバックアップソフトウェアを使用して信頼性のあるバックアップ戦略を実装することをお勧めします。

カバー画像およびスクリーンショット:デビッド・モレロ