Wie ich meinen Raspberry Pi in ein privates Internet-Archiv verwandelt habe

Archivebox Raspberry Pi Cover Image

Ein Raspberry Pi und eine alte Festplatte standen in meiner Schublade herum, bis der Internet-Archive-Hack Schlagzeilen machte. Jetzt sind sie das Herzstück meines lokalen Webarchivierungssystems, das alles von Lieblingsblogbeiträgen bis hin zu Open-Source-Projekten bewahrt. In diesem Artikel zeige ich dir meinen schrittweisen Weg, ein privates Internet-Archiv und digitale Erhaltungsunabhängigkeit mit ArchiveBox zu schaffen.

Warum ich mich entschieden habe, ein privates Internet-Archiv selbst zu hosten

Die kürzliche Sicherheitsverletzung des Internet Archive traf die digitale Erhaltungs-Community und all diejenigen, die von ihrer Arbeit profitieren, wie ein Blitz. Am 9. Oktober kompromittierten Hacker die Website und stahlen eine massive Datenbank zur Benutzerauthentifizierung mit 31 Millionen Datensätzen.

Was die Sache schlimmer machte, war, dass dies nicht das Ende der Probleme des Archivs war. Just als sie am 21. Oktober versuchten, einige Dienste wiederherzustellen, erlangten Hacker Zugriff auf ihr Zendesk-Supportsystem und zeigten, dass die Verwundbarkeit tiefer ging, als ursprünglich gedacht.

Internet Archive Offline

Obwohl das Archiv mittlerweile den Betrieb wieder aufgenommen hat, bleibt seine Zukunft ungewiss, da Sicherheitsverletzungen nicht die einzige Bedrohung für die digitale Erhaltung sind. Ein kürzlich ergangenes Urteil des Bundesberufungsgerichts fügte dem Internet Archive einen weiteren erheblichen Schlag zu, indem festgestellt wurde, dass ihre digitale Ausleihe nicht durch das Fair-Use-Prinzip geschützt sei und sie somit gezwungen werden könnten, einen erheblichen Teil ihres Inhalts zu entfernen.

Die Implikationen sind klar: Der Bedarf an persönlicher Kontrolle über digitale Erhaltung war noch nie deutlicher. Die gute Nachricht ist, dass jeder mit einem Raspberry Pi und ArchiveBox problemlos ein privates Internet-Archiv einrichten kann.

Mein empfohlener Raspberry Pi Archiv-Hardware-Setup

Wenn du bereit bist, dein eigenes privates Internet-Archiv zu erstellen, benötigst du einige Hardware.

Zunächst einmal brauchst du einen Raspberry Pi. Für das beste Erlebnis empfehle ich dringend den neuesten Raspberry Pi 5, da dessen deutlich verbesserte Leistung dafür sorgt, dass deine Archivierungsaufgaben reibungsloser und schneller ablaufen und du viel Spielraum für die zukünftige Erweiterung deines Archivs hast.

Raspberry Pi In The Box

Das gesagt, fühl dich nicht unter Druck gesetzt, wenn du bereits einen Raspberry Pi 4B mit 4GB oder 8GB RAM besitzt. Diese Modelle sind durchaus in der Lage, ein persönliches Archiv zu betreiben und haben tatsächlich einen interessanten Vorteil gegenüber dem Pi 5: die Hardware-H.264-Videokodierung. Dies wird besonders wertvoll, wenn du archivierte Videos auf deinem Fernseher oder anderen Geräten in deinem Zuhause streamen möchtest.

Zusätzlich zu deinem Pi benötigst du Folgendes:

  • microSD-Karte: Eine 32GB microSD-Karte reicht aus, um ArchiveBox zum Laufen zu bringen. Diese microSD-Karte wird das Hauptboot-Laufwerk des Pi sein, also achte darauf, eine qualitativ hochwertige und zuverlässige auszuwählen, um zukünftige Datenkorruptionsprobleme zu vermeiden.
  • Externe Festplatte: Für die eigentliche Archivspeicherung möchtest du eine 3,5″ externe Festplatte mit eigenem Netzteil. Warum? Weil 3,5″ Festplatten über die Zeit eine bessere Zuverlässigkeit bieten als modernere SSDs, und Zuverlässigkeit ist das Wichtigste, wenn es um Archivierung geht.
  • Monitor, Maus und Tastatur: Diese sind technisch optional, können aber die Einrichtung erleichtern, besonders wenn du den Pi zum ersten Mal konfigurierst. Alternativ kannst du ihn auch vollständig über Tools wie SSH (Secure Shell Protocol), VNC (Virtual Network Computing) oder RDP (Remote Desktop Protocol) steuern.

Sobald du all diese Dinge hast, kannst du mit der Einrichtung deines selbst gehosteten Internet-Archivs beginnen!

Vorbereitung einer Software-Umgebung für die Archivierung

Der erste Schritt besteht darin, ein Betriebssystem auf deinem Raspberry Pi in Betrieb zu nehmen. Ich empfehle persönlich Raspberry Pi OS, da es als offizielles Betriebssystem für Raspberry Pi-Geräte die beliebteste und am besten unterstützte Option ist. Du kannst unserer Installationsanleitung für Raspberry Pi OS folgen, wenn du nicht weißt, wie du es auf deine microSD-Karte bringen kannst.

Raspberry Pi Image Writing Larger

Und wenn du abenteuerlustig bist, möchtest du vielleicht einige der alternativen Betriebssysteme für den Raspberry Pi erkunden.

Sobald du das Betriebssystem installiert hast, starte deinen Pi und verbinde ihn mit dem Internet (es spielt keine Rolle, ob du eine kabelgebundene oder drahtlose Verbindung verwendest). Starte dann das Terminal und führe ein Systemupdate mit dem Befehl aus:

sudo apt update && sudo apt full-upgrade

Sudo Apt Full Upgrade

Beim Installieren von ArchiveBox hast du drei Optionen: Docker, ein automatisches Einrichtungs-Skript oder die Verwendung des Paketmanagers deines Systems. Ich empfehle dringend, Docker zu verwenden. Es bietet nicht nur die reibungsloseste Installation und Aktualisierung, sondern auch die beste Sicherheitstrennung und umfasst alle Abhängigkeiten direkt.

Leider ist Docker nicht vorinstalliert auf Raspberry Pi OS, also müssen wir das zuerst einrichten (vergiss nicht, auch die Schritte nach der Installation auszuführen).

Nachdem Docker erfolgreich installiert wurde, sind wir bereit, mit der Installation von ArchiveBox selbst fortzufahren, was dank der Vorarbeit, die wir geleistet haben, viel einfacher sein wird.

Installation und Ausführung von ArchiveBox

Um ArchiveBox mit Docker zu installieren, erstelle zunächst ein Verzeichnis, in dem all deine archivierten Inhalte gespeichert werden. Dies wird dein Archivordner auf dem Raspberry Pi sein, also wähle einen Ort mit ausreichend Speicherplatz, wie z. B. deine externe Festplatte (du kannst mit dem cd-Befehl navigieren):

mkdir -p archivebox/data && cd archivebox

Als nächstes lade die offizielle Docker-Compose-Konfigurationsdatei herunter, die definiert, wie ArchiveBox ausgeführt werden soll:

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

Diese Konfigurationsdatei ist wichtig, da sie alle erforderlichen Komponenten einrichtet, einschließlich des Webservers und geplanter Aufgaben. Wenn du dein Archiv auf einer externen Festplatte anstelle der SD-Karte des Pi speichern möchtest (was empfohlen wird), musst du die Datei “docker-compose.yml” bearbeiten, um auf deinen gemounteten Speicherort zu verweisen.

Um dies zu tun, öffne die Konfigurationsdatei mit einem Texteditor, z. B. nano:

nano docker-compose.yml

Suche den Abschnitt volumes unter dem Service archivebox. Standardmäßig sieht es etwa so aus:

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

Wir müssen ./data ändern, um den vollständigen Pfad zu unserem externen Laufwerkverzeichnis anzuzeigen. Zum Beispiel, wenn dein Laufwerk unter /mnt/external_drive gemountet ist, ändere die Zeile so:

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

Dies teilt Docker mit, dass alle ArchiveBox-Daten im Verzeichnis „archivebox/data“ auf deinem externen Laufwerk gespeichert werden sollen, anstatt einen relativen Pfad zu verwenden. Die Verwendung des absoluten Pfades ist wichtig, da sie sicherstellt, dass Docker immer deine Archivdaten finden kann, selbst wenn du Befehle aus verschiedenen Verzeichnissen ausführst.

Während du dabei bist, kannst du auch die Umgebungsvariablen PUID und PGID hinzufügen, die mit deinem Benutzerkonto des Pi übereinstimmen. Finde deine Benutzer-ID und Gruppen-ID, indem du id -u und id -g ausführst, und füge sie dann zum Abschnitt environment hinzu:

services:  
    archivebox:  
...  
        environment:  
            - PUID=1000    # Ersetze durch deine Benutzer-ID  
            - PGID=1000    # Ersetze durch deine Gruppen-ID

Schließlich kommentiere die Dienste sonic (schnelleres und besseres Suchen für große Sammlungen) und novnc (ermöglicht dir, ein Profil mit Logins für die Sites, die du archivieren möchtest, einzurichten) aus oder entferne sie. Die Konfiguration dieser optionalen Dienste geht über den Rahmen dieses Leitfadens hinaus, also empfehle ich, die offizielle Dokumentation zu konsultieren, wenn du daran interessiert bist.

Die minimale funktionierende Konfiguration sollte etwa so aussehen:

Docker Compose Archivebox

Speichere die Datei und verlasse den Editor. Jetzt initialisiere dein Archiv und erstelle einen Admin-Benutzer, um auf die Weboberfläche zuzugreifen:

docker compose run archivebox init  
docker compose run archivebox manage createsuperuser

Sobald die Initialisierung abgeschlossen ist, kannst du den ArchiveBox-Server starten:

docker compose up -d

Archive Box Running For The First Time

Du kannst nun auf deine ArchiveBox-Instanz zugreifen, indem du einen Webbrowser öffnest und zu http://localhost:8000 navigierst. Probier es jetzt aus. Das solltest du sehen:

Konfiguration und Verwendung von ArchiveBox

Um das Verhalten von ArchiveBox anzupassen, musst du keine Konfigurationsdateien direkt bearbeiten. Verwende stattdessen den Befehl config, um Einstellungen zu ändern. Zum Beispiel passe ich immer die Zeitüberschreitungen und Ressourcenlimits für eine bessere Leistung auf dem Raspberry Pi an:

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

Du kannst auch das Einreichen an archive.org deaktivieren, um die Archivierung zu beschleunigen:

docker compose run archivebox config --set SAVE_ARCHIVE_DOT_ORG=False

Alle Einstellungen werden automatisch in der Datei ArchiveBox.conf in deinem Datenverzeichnis gespeichert, und du kannst die aktuellen Einstellungen jederzeit abrufen, indem du ausführst:

docker compose run archivebox config list

Archivebox Add New Url

Mit dem grundlegenden Setup bist du jetzt bereit, Inhalte zu deinem Archiv hinzuzufügen. ArchiveBox unterstützt mehrere Möglichkeiten, URLs hinzuzufügen. Die einfachste besteht darin, das Webinterface zu nutzen. Du klickst einfach auf die Hinzufügen-Schaltfläche, fügst deine URLs ein und klickst auf die Schaltfläche URLs hinzufügen und archivieren.

Archivebox Archived Website

In einigen Situationen kann es praktischer sein, über die Befehlszeile zu archivieren. Zum Beispiel, um eine einzelne Webseite zu archivieren, kannst du ausführen:

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

Oder um eine gesamte Liste von URLs aus einer Textdatei zu archivieren:

docker compose run -T archivebox add < urls.txt

Schließlich kannst du von verschiedenen Lesezeichen-Diensten importieren, darunter Pocket, Pinboard oder Instapaper. Bitte sieh in der offiziellen Wiki nach detaillierten Anweisungen.

Denke daran, dass dein Archiv so sicher ist wie die Backups, die du pflegst. Um alle Inhalte zu schützen, die du erhalten möchtest, empfehle ich dringend die Implementierung einer zuverlässigen Backup-Strategie mit der besten Linux-Backup-Software, um gegen Datenverlust, Stromausfälle oder versehentliche Löschungen geschützt zu sein.

Coverbild und Screenshots von David Morelo.