Zeigt ein Lesezeichen im Browser plötzlich ins Leere, hilft eine Kopie der Webseite auf der Festplatte weiter. Die erzeugen Sie mit ArchiveBox.
Plötzlich fehlt der nützliche Blog-Beitrag, den man in der Diplomarbeit zitieren wollte. Und irgendwo war doch dieser interessante Reisebericht. In solchen Situationen rächt sich, dass das Internet heute sehr dynamisch ist. Zwar kommen pausenlos neue Inhalte hinzu, im gleichen Tempo verschwinden aber auch alte, oder Autoren verändern sie nachträglich oder ziehen diese plötzlich auf eine Unterseite um. Solchen Fällen beugen Sie durch Archivieren wichtiger Seiten auf der Festplatte mit ArchiveBox [1] vor.
Sobald Sie diesem Werkzeug eine oder mehrere URLs übergeben, sichert es vollautomatisch die zugehörigen Seiten. Das Programm erzeugt dazu noch passende Index-Seiten, über die Sie komfortabel mit einem Browser im Archiv stöbern. Die Software sichert auf Wunsch auch in einem Rutsch die Seiten hinter Ihren Browser-Lesezeichen oder einem RSS-Feed.
ArchiveBox bedienen Sie wahlweise über eine grafische Benutzeroberfläche im Browser oder über Konsolenkommandos. Wenn Sie die Software zudem auf einem Server einrichten, braucht nicht jede Person in der Firma oder der Familie eine eigene Version zu installieren.
Schlangenbasis
ArchiveBox setzt Python 3 voraus, das die meisten Distributionen standardmäßig mitbringen. Stellen Sie weiterhin sicher, dass Ihr Rechner Pip3, Git, Curl, Wget, Youtube-dl, den Chromium-Browser, Node.js 14.x und NPM mitbringt. Unter Ubuntu 20.04 erledigen Sie das mit den Befehlen aus Listing 1, Zeile 1 bis 4.
Listing 1
Installation
sudo apt update sudo apt install python3 python3-pip python3-dev git curl wget youtube-dl chromium-browser curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash - sudo apt install --no-install-recommends nodejs sudo npm install --prefix . "git+https://github.com/pirate/ArchiveBox.git" sudo pip install --upgrade archivebox
Installieren Sie jetzt mit den folgenden zwei Befehlen zunächst alle benötigten Node.js-Module und anschließend die eigentliche Software über den Python-Paketmanager Pip (Listing 1, Zeile 5 und 6). Auf einigen Distributionen müssen Sie dabei pip durch pip3 ersetzen. Alternativ betreiben Sie die Software in einem Docker-Container, siehe Kasten “Angedockt”.
Angedockt
Die ArchiveBox-Entwickler empfehlen die Inbetriebnahme des Werkzeugs über Docker. So brauchen Sie zwar nicht mit zahlreichen Abhängigkeiten zu hantieren, im Gegenzug aber mit recht langen Befehlen. Obendrein kam zum Redaktionsschluss noch eine veraltete ArchiveBox-Version zum Einsatz, die die Aktion schedule noch nicht unterstützte.
Um das Programm dennoch auf diesem Weg zu starten, installieren Sie zunächst Docker über Ihre Softwareverwaltung – unter Ubuntu etwa per Kommando aus Listing 2, Zeile 1. Den Ordner ~/archivebox initialisieren Sie anschließend über den Befehl aus Listing 2, Zeile 2.
Das vorangestellte sudo benötigen Sie nicht auf allen Distributionen. Tauschen Sie im obigen und allen weiteren Befehlen das Verzeichnis ~/archivebox gegen den von Ihnen gewählten Ordner für das Archiv aus. Ein Benutzerkonto erstellen Sie sich mit dem Kommando aus Zeile 3.
Die Benutzeroberfläche startet schließlich der Befehl aus Zeile 4. Die per Docker geholte ArchiveBox lässt sich wie die normale Variante für die Kommandozeile nutzen. Der Befehl aus Listing 2, Zeile 5 sichert etwa die Seite unterlinux-user.de.
Listing 2
Docker-Installation
sudo apt install docker.io sudo docker run -v ~/archivebox:/data -it nikisweeting/archivebox init sudo docker run -v ~/archivebox:/data -it nikisweeting/archivebox manage createsuperuser sudo docker run -d -it -v ~/archivebox:/data -p 8000:8000 nikisweeting/archivebox $ server 0.0.0.0:8000 sudo docker run -v ~/archivebox:/data -it nikisweeting/archivebox add 'https://linux-user.de'
Speicher bauen
Erstellen Sie jetzt ein neues Verzeichnis, das alle heruntergeladenen Seiten aufnimmt und somit als Archiv dient. Darin rufen Sie den Befehl aus Listing 3, Zeile 1 auf. Dieser legt ein paar von der Software benötigte Dateien an und bereitet so ein leeres Archiv vor (Abbildung 1). Alle folgenden Kommandos rufen Sie immer direkt in diesem Verzeichnis auf.

Abbildung 1: Beim Initialisieren legt ArchiveBox im Archiv unter anderem die von ihm benötigte Verzeichnisstruktur an. Hinzu kommt ein Index, in dem das Werkzeug alle bereits abgerufenen URLs speichert.
Listing 3
Archiv einrichten
archivebox init archivebox manage createsuperuser archivebox server 0.0.0.0:8000
Wer Webseiten im neuen Archiv ablegen darf, bestimmen Sie über die im Programm eingebaute Benutzerverwaltung. Nähere Informationen dazu finden Sie im Kasten “Zugangskontrolle”. Ein passendes Benutzerkonto erzeugen Sie mit dem Befehl aus Listing 3, Zeile 2. Die Software bittet Sie jetzt um die Eingabe eines Benutzernamens, der Mail-Adresse und eines Passworts. Sobald das Benutzerkonto existiert, starten Sie die Benutzeroberfläche mit dem Kommando aus Listing 3, Zeile 3.
Zugangskontrolle
Gäste erhalten lediglich Zugriff auf die Übersichtsseite (Abbildung 2) und können dort im Archiv blättern. Um weiteren Personen das Archivieren über die Benutzeroberfläche zu gestatten, rufen Sie im Menü am oberen Rand den Punkt Users auf und erstellen per Add User ein neues Konto. Hinterlegen Sie im unteren Bereich im Feld Username einen Benutzernamen.
Halten Sie [Strg] gedrückt, und wählen Sie bei den User Permissions alle Aktionen, die der Benutzer ausführen darf. Soll er weitere URLs hinzufügen, markieren Sie zumindest contenttypes | content type | Can add content type. Anmelden darf der Benutzer eine Internetseite in der grafischen Benutzeroberfläche nur dann, wenn Sie noch einen Haken bei Staff status setzen.
Abschließend weisen Sie dem neuen Benutzer ein Passwort zu. Das zugehörige Feld ganz oben erwartet dazu den Hash-Wert des Passworts, den Sie allerdings nicht selbst zu ermitteln brauchen. Tragen Sie zunächst unter Password eine beliebige Zeichenkette ein. Legen Sie das Benutzerkonto per SAVE an, und ändern Sie dann auf der Kommandozeile das Passwort mit folgendem Befehl, wobei Sie tim gegen den Benutzernamen tauschen:
$ archivebox manage changepassword tim
Sollte der Benutzer nach dem Anmelden auf der Benutzeroberfläche nur eine Fehlermeldung sehen, sollte er direkt die URL http://127.0.0.1:8000/admin/ ansteuern.
Einlieferung
Wenn Sie jetzt mit einem Browser die URL http://127.0.0.1:8000/ aufrufen, gelangen Sie auf die grafische Oberfläche (Abbildung 2). Zuweilen dauert es eine Weile, bis Sie die Seite erreichen.

Abbildung 2: Die Benutzeroberfläche von ArchiveBox passt sich nur bedingt an die Größe des Browser-Fensters an.
Um das Archiv um eine Webseite zu erweitern, klicken Sie rechts oben auf Admin und geben Ihren Benutzernamen sowie das passende Passwort ein. Im roten Menü am oberen Rand gelangen Sie über Add zu einem großen Eingabefeld. Darin hinterlegen Sie die URLs der zu archivierenden Websites (Abbildung 3).

Abbildung 3: Mit dieser Eingabe sichern Sie die Startseiten von linux-user.de und linux-community.de. Jede URL schreiben Sie dafür in eine eigene Zeile.
Dabei muss es sich um vollständige URLs inklusive Protokoll handeln, die entsprechend mit http:// oder https:// beginnen. Sofern Sie unter dem Eingabefeld depth = 1 aktivieren, folgt ArchiveBox allen Links und sichert die dahinterstehenden Seiten mit. Auf diesen ignoriert das Werkzeug allerdings weitere Links. Entsprechend ist es nicht möglich, mit dem Werkzeug einen kompletten Webauftritt auf die Festplatte zu spiegeln.
In jedem Fall starten Sie das Archivieren per Add URLs and archive. Das übernehmen im Hintergrund mehrere externe Programme, von ArchiveBox Extractors bezeichnet. Die Software ruft immer alle vorhandenen Extractors auf, selbst wenn sich die entsprechende Webseite gar nicht sichern lässt. So kümmert sich Youtube-dl um das Herunterladen von Youtube-Videos und eignet sich folglich nicht dafür, die Startseite von http://linux-user.de zu sichern. In solchen Fällen erscheinen im Protokoll Warnungen, die Sie jedoch ignorieren dürfen.
Mit Format
Mit einem Klick links oben auf ArchiveBox gelangen Sie zur Liste mit allen bereits archivierten Seiten (Abbildung 4). Ein Klick auf eine Webseite führt zum schwarzen Kasten (Abbildung 5). Erscheint er nicht, klicken Sie auf das kleine schwarze Dreieck am oberen Rand neben dem Seitennamen (Abbildung 5, rechts neben LinuxUser). Im schwarzen Kasten erfahren Sie zunächst links oben, wann Sie die Seite dem Archiv hinzugefügt haben und wann die Software die Seite zum ersten Mal archiviert hat.

Abbildung 4: Über die Suchfunktion und die Filter am rechten Rand finden Sie schnell eine gewünschte Seite.

Abbildung 5: Hier bietet die ArchiveBox die Startseite von http://linux-user.de in verschiedenen Formaten an. Bei einem großem Browser-Fenster zeigt die Software für jedes Format eine kleine Vorschau an.
Des Weiteren bietet der schwarze Kasten die gesicherte Webseite in verschiedenen Dateiformaten zum Herunterladen beziehungsweise zur Ansicht an. Hinter jedem Vorschaubild verbirgt sich dabei das Ergebnis eines Extractors. Unter anderem archiviert das Tool mithilfe von Chromium die Webseite im PDF-Format. Das Ergebnis öffnen Sie mit einem Klick auf Chrome > PDF.
Die vielen Formate sollen den Zugriff auf die Seiten selbst noch in 50 Jahren sicherstellen. Zudem möchten sich die ArchiveBox-Entwickler so vom bekannten Internet Archive abheben, das schon seit mehreren Jahren Kopien zahlreicher Seiten sichert. Mit einem Klick auf ArchiveBox links oben kehren Sie zur Liste mit allen gesicherten Seiten zurück.
Bei Bedarf öffnen Sie die archivierten Webseiten ohne die Oberfläche direkt auf der Festplatte. Im Archiv-Verzeichnis erstellt die Software für jede gesicherte Webseite im Unterverzeichnis archive einen Ordner mit dem Sicherungsdatum. Dorthin wandert die Webseite in ihren verschiedenen Formaten.
Mit einem Dateimanager durchforsten Sie die Verzeichnisse, etwa um das PDF-Dokument zu öffnen. Komfortabler gelingt die Navigation, wenn Sie in einem Browser die Datei index.html öffnen. Dann erhalten Sie Zugriff auf die gesicherte Webseite (Abbildung 6).

Abbildung 6: An der hakeligen Benutzerverwaltung zeigt sich deutlich das frühe Entwicklungsstadium der Software. Dennoch läuft das Werkzeug äußerst stabil.
Direkt im Ordner archive liegt zudem eine weitere index.html. Diese enthält eine Liste mit allen archivierten Webseiten und erlaubt es, wie die Benutzeroberfläche, das bequeme Stöbern im kompletten Bestand.
Auf Kommando
Alternativ zur Benutzeroberfläche übergeben Sie weitere URLs auf der Kommandozeile an ArchiveBox (Listing 4, Zeile 1). Tauschen Sie dabei die URL durch die von Ihnen gewünschte aus. Der Parameter --depth=1 sorgt dafür, dass die Software allen Links auf der Seite folgt.
Listing 4
Archiv ausbauen
archivebox add --depth=1 'https://linux-user.de/' archivebox add '~/meinelinks.txt' archivebox add < meinelinks.txt archivebox schedule --foreground --every=day --depth=1 'http://archiv.seite'
Mehrere Internetadressen dürfen Sie in einer Textdatei verstauen. Im Beispiel (Listing 4, Zeile 2) stecken Sie diese in meinelinks.txt. Die Adressen lassen sich zudem über die Standardeingabe einflößen (Listing 4, Zeile 3). Neben Textdateien verarbeitet das Tool unter anderem HTML-Dateien, CSV-Tabellen, Markdown und die Lesezeichen-Dateien der Browser.
Um etwa alle Firefox-Lesezeichen auf einmal ins Archiv zu schieben, drücken Sie im Browser [Strg]+[Umschalt]+[O], wählen Importieren und Sichern | Sichern und übergeben die erzeugte Datei an ArchiveBox. Des Weiteren lassen sich automatisch jeden Tag alle neuen Beiträge einer Seite ins Archiv stellen (Listing 4, Zeile 4).
Dank --foreground ist es möglich, die ausgeführten Aktionen im Terminal zu verfolgen. Tauschen Sie den Parameter gegen --add aus, richtet das Programm stattdessen einen stummen Cron-Job ein. Hinter --every steht die Wartezeit, nach der die Software die Seite http://linux-community.de erneut ansteuert und nach noch unbekannten Links sucht. Anstelle von day können Sie auch die von Cron bekannte Notation verwenden, "0 11 * * *" steht etwa für eine tägliche Sicherung um 11 Uhr.
Haken und Ösen
Da ArchiveBox die Webseiten in mehreren Formaten speichert, beansprucht das Archiv mehr Speicherplatz auf der Festplatte als eine Sicherung der Seiten per Wget. Laut Angaben der Entwickler belegen 1000 Seiten rund 5 GByte. Der konkrete Bedarf hängt allerdings stark von den zu speichernden Seiten ab: Multimediainhalte belegen deutlich mehr Platz als kurze Texte. Wer das Tool intensiv nutzt, sollte die Daten daher auf einem sogenannten deduplizierenden und automatisch komprimierenden Dateisystem speichern – die Entwickler erwähnen ZFS oder BtrFS.
Die Software hat noch ein paar Nachteile: Sofern im Archiv versehentlich Malware in Form von schädlichem Javascript-Code landet, hat dieser unter Umständen Zugriff auf alle anderen eingelagerten Seiten. Wenn Sie Internetseiten mit privaten oder vertraulichen Inhalten speichern, könnten diese während des Archivierens in fremde Hände wandern. So bittet die ArchiveBox derzeit den Internetdienst Archive.org, die Seite hinter der Internetadresse zu archivieren. Archive.org würde folglich Ihre privaten Inhalten kennen.

Abbildung 7: Hier ignoriert die ArchiveBox den Versuch, die Seite unter http://linux-user.de noch einmal zu archivieren.
Des Weiteren bearbeitet die ArchiveBox jede URL nur ein einziges Mal. Sollte sich im Reise-Blog doch etwas ändern, bleibt dennoch die alte Fassung im Archiv erhalten. Es hilft auch nicht, die URL noch einmal hinzuzufügen (Abbildung 7). Dieses Verhalten hat den Nebeneffekt, dass Sie immer wieder die Lesezeichen oder einen RSS-Feed an ArchiveBox übergeben können. Das Werkzeug sichert dann lediglich die neu hinzugekommenen Lesezeichen beziehungsweise Webseiten. Genau das passiert übrigens auch beim Einsatz von schedule.
Um das Reise-Blog dennoch in der neuen Fassung zu speichern, rufen Sie in der Benutzeroberfläche die Snapshots auf, setzen einen Haken vor die betroffene Seite und klicken auf Delete. Fügen Sie die Seite anschließend auf dem bekannten Weg wieder hinzu. Alternativ können Sie in einem neuen Verzeichnis ein weiteres Archiv anlegen. Die ArchiveBox-Entwickler kennen das Problem, zukünftige Versionen sollen Webseiten in regelmäßigen Abständen mehrfach sichern.
Fazit
Mit der ArchiveBox bauen Sie schnell und unkompliziert ein kleines Webarchiv auf. Dank der Steuerung über die Kommandozeile ist die Integration in Shell-Skripte möglich. Die Entwickler arbeiten derzeit sogar an einer REST- und Python-Schnittstelle, die es Programmierern dann ermöglicht, ArchiveBox aus anderen Programmen heraus zu steuern.
Aufgrund ihrer Einschränkungen eignet sich die ArchiveBox derzeit nur zum Speichern von einzelnen Webseiten, deren Informationen sich zukünftig nicht mehr ändern. Eine deutliche Überarbeitung bedarf zudem die Dokumentation in Form des extrem lückenhaften und teilweise veralteten Wikis [2]. (tle/agr)
Infos
- ArchiveBox: https://github.com/pirate/ArchiveBox
- Dokumentation: https://github.com/pirate/ArchiveBox/wiki





