ArchiveBox:开源自托管网络归档

2021-04-19 22:14:58

▶️QuickStart |演示| GitHub |文档|信息&动机|社区|路线图

ArchiveBox是一个功能强大的自主托管的Internet归档解决方案,可以收集,保存和查看要脱机的网站。

您可以在Linux,MacOS和Windows上设置为命令行工具,Web应用程序和桌面应用程序(Alpha)。

您可以一次提供URL,或者从浏览器书签或历史记录中计划定期导入,如RSS,书签服务,如口袋/电路板等。请参阅完整列表的输入格式。

它保存了以多种格式提供的URL的快照:HTML,PDF,PNG屏幕截图,WARC等开箱,具有各种内容,自动提取和保存(文章文本,音频/视频, git repos等)。请参阅完整列表的输出格式。

目标是睡觉,知道您关心的互联网部分将在下降后几十年以耐用的,容易访问的格式自动保留。

。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。

📦使用Docker撰写(推荐)/ Docker,或APT / BREW / PIP(见下文)安装存档箱。

无论您选择哪种设置方法,它们都遵循此基本进程并提供相同的CLI,Web UI和磁盘上的数据布局。

安装ArchiveBox后,在新的空文件夹中运行它以开始

添加一些您想要存档的URL归档箱添加' https://example.com' #每次通过args / pirped stdinarchivebox计划添加URLs一个 - 每次= Day --depth = 1 https://example.com/rss.xml#或者在计划上导入URL

然后查看您的存档页面archivebox服务器0.0.0.0:8000#使用交互式Web UiarchiveBox列表' https://example.com' #使用CLI命令( - help for more)ls ./archive/ * / index.json#或通过文件系统直接浏览

自由&开源,不需要注册任何内容,本地存储所有数据

将所有页面保存到archive.org,默认情况下,冗余(可用于本地模式)可以禁用)

计划:支持需要登录/ PayWall / cookie的归档内容(工作,但在某些待处理修复被发布之前建议)

首先确保安装了Docker:https://docs.docker.com/get-docker/download the [`docker-compose.yml`](https://raw.githubusercontent.com/archivebox/archivebox/master/ docker-compose.yml)文件。启动服务器。打开[`http://127.0.0.1:8000`](http://127.0.0.1:8000)。 #您还可以通过CLI添加链接和管理您的存档:Docker-Compose Run ArchiveBox添加' https://example.com'回声' https://example.com' | Docker-Compose Run ArchiveBox -T AddDocker-Compose Run ArchiveBox StatusDocker-Compose Run ArchiveBox帮助#查看更多选项#通过CLI传递STDIN / STDOUT,请使用-t flagecho' https://example.com&# 39; | docker-compose运行-t archivebox addocker - compose运行-t archivebox列表 - html --with-headers> index.html.

这是运行归档箱的推荐方式,因为它包括以下所有提取器:Chrome,Wget,YouTube-DL,Git等,全文搜索W / Sonic以及许多其他大功能。首先,请确保安装了Docker:https://docs.docker.com/get-docker/#创建一个新的空目录并遗忘您的集合(可以是任何地方)mkdir〜/ archivebox&&& CD〜/ ArchiveBoxDocker Run -V $ PWD:/ data -it ArchiveBox / ArchiveBox Init - Setup#启动Web服务器并打开UI(可选)Docker Run -V $ PWD:/ Data -P 8000:8000 ArchiveBox / ArchiveBox服务器0.0.0.0:8000 0.1:8000#您还可以通过CLI添加链接和管理您的存档:Docker Run -V $ PWD:/ Data -it ArchiveBox / ArchiveBox Add' HTTPS:/ /example.com' ;docker运行-v $ pwd:/ data -it archivebox / archivebox statusdocker运行-v $ pwd:/ data -it archivebox / archivebox帮助#查看更多选项#通过CLI传递STDIN / STDOUT时,仅使用-i(不 - it)回声' https://example.com' | Docker Run -V $ PWD:/ data -i archivebox / archivebox add docker运行-v $ pwd:/ data -i archivebox / archivebox list --html --with-headers> index.html.

该方法应该适用于所有Ubuntu / Debian的系统,包括X86,AMD64,ARM7和ARM8 CPU(例如Raspberry PIS> = 3)。如果您'在Ubuntu> = 20.04上,添加`apt`带有`Add-APT-repository`的存储库:#将repo添加到源并使用aptsudo安装软件-itute-properties-properties-communsudo添加-apt-repository -u ppa:archivebox / archiveboxsudo apt安装存档框

#创建一个新的空目录并遗忘您的集合(可以是任何地方)mkdir〜/ archivebox&& CD〜/ ArchiveBoxArchiveBox init - setup#启动web服务器并打开web ui(可选)archivebox服务器0.0.0.0:8000pen http://127.0.0.1:8000#,您还可以通过CLI添加URL并管理存档文件系统:ArchiveBox添加' https://example.com' archivebox statuscharivebox列表--html --with-headers> index.htmlarchivebox列表 - json --with-headers> index.jsonArchiveBox帮助#查看更多选项

♰在其他基于Ubuntu / debian的系统上直接添加这些来源到/etc/apt/sources.list:echo" deb http://ppa.launchpad.net/archivebox/archivebox/ubuntu焦点主" > /etc/apt/sources.list.d/archivebox.listecho" deb-src http://ppa.launchpad.net/archivebox/archivebox/ubuntu焦点主" >> /etc/apt/sources.list.d/archivebox.listsudo apt-key adv - keyserver keyserver.ubuntu.com --recv-keys c258f79dcc02e369sudo apt updatesudo apt安装archiveboxarchivebox setuparchivebox -version#然后滚动备份并继续遗失上面的说明

(但是您可能需要手动安装其他一些依赖项)首先,请确保已安装Homebrew:https://brew.sh/#使用homebrewbrew install archivebox / archivebox / archivebox#创建一个新的空目录和遗忘你的收藏(可以是任何地方)Mkdir〜/ ArchiveBox&& CD〜/ ArchiveBoxArchiveBox init - setup#启动web服务器并打开web ui(可选)archivebox服务器0.0.0.0:8000pen http://127.0.0.1:8000#,您还可以通过CLI添加URL并管理存档文件系统:ArchiveBox添加' https://example.com' archivebox statuscharivebox列表--html --with-headers> index.htmlarchivebox列表 - json --with-headers> index.jsonArchiveBox帮助#查看更多选项

首先确保你有[python> = v3.7](https://realpython.com/installing-python/)和[node> = v12](https://nodejs.org/en/download/package -Manager /)安装了。 #使用pip3pip3安装archivebox包安装archivebox#创建一个新的空目录并遗忘您的集合(可以在任何地方)mkdir〜/ archivebox&& CD〜/ ArchiveBoxArchIveBox init - setup#安装wget / git / ripgrep / etc等丢失的extras。根据需要手动#启动WebServer并打开Web UI(可选)archiveBox服务器0.0.0.0:8000pen http://127.0.0.1:8000#,您还可以通过CLI和FileSystem添加URL和管理存档:ArchiveBox添加和#39; https://example.com' archivebox statuscharivebox列表--html --with-headers> index.htmlarchivebox列表 - json --with-headers> index.jsonArchiveBox帮助#查看更多选项

#archivebox [子命令] [--args]#docker-compose运行archivebox [submmand] [--args]#docker运行-v $ pwd:/ data -it [子命令] [--args] archivebox init - setup#安全运行Init多次(也是如何更新版本)归档框--versionArchiveBox帮助

#您还可以配置大多数特性框配置所需的登录--set public_index = falsearchivebox config --set public_snapshot = falsearchivebox config --set public_add_view = false

sqlite3 ./index.sqlite3#运行indexarchivebox shell上的sql查询#浏览repl ls中的python api ./archive/ * / index.html#或在文件系统上检查快照

。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。 。演示:https://demo.archivebox.io用法|配置|警告

ArchiveBox支持URL的许多输入格式,包括Pocket&电磁扎出口,浏览器书签,浏览器历史记录,纯文本,HTML,Markdown等!

#ArchiveBox Add --helparchivebox添加' https://example.com/some/page' archivebox添加< 〜/下载/ firefox_bookmarks_export.htmlarchivebox添加--depth = 1' https://news.ycombinator.com#2020-12-12'回声' http://example.com' | archivebox添加回声' any_text_with [urls](https://example.com),它' | ArchiveBox添加#(如果使用Docker Add -I在管道stdin时)回声' https://example.com' | Docker Run -V $ PWD:/ Data -I ArchiveBox / ArchiveBox添加#(如果使用Docker-Compose Add -T管道STDIN / STDOUT时)echo' https://example.com' | Docker-Compose Run -T ArchiveBox添加

它还包含一个内置的计划导入功能,其中包含archivebox计划和浏览器书签,因此您可以定期从RSS源,网站或文件系统中拉入URL。

所有ArchiveBox的状态(包括索引,快照数据和配置文件)存储在一个名为“ArchiveBox数据文件夹”的单个文件夹中。必须从此文件夹中运行所有archivebox cli命令,首先通过运行archivebox init创建它。

ON磁盘布局经过优化,可轻松浏览,并长期耐用。主要索引是数据文件夹根目录中的标准index.sqlite3数据库(它也可以作为静态JSON / HTML导出),并且归档快照由。/ chamfolder中的日期添加的时间戳组织。

每个快照子文件夹。/archive/< timestamp&gt ;/包含描述其内容的静态index.json和index.html,并且Snapshot Extrator输出是文件夹中的纯文件。

在每个快照文件夹中,ArchiveBox将这些不同类型的提取器输出保存为纯文件:

音频&amp;视频:媒体/所有音频/视频文件+播放列表,包括副标题&amp;元数据与youtube-dl

默认情况下,它会出于开箱即用,但您可以通过环境变量/配置禁用或调整各个归档方法。

#archivebox config --helparchivebox config#请参阅所有当前配置的选项结构框配置--set save_archive_dot_org = falsearchivebox config --set YouTubedl_args =&#39; - max-filesize = 500m&#39;

您可以导出主索引以静态浏览它,而无需运行服务器。

关于大型出口的注意事项:这些出口不会被吝惜,同时导出许多URL或整个存档可能很慢。使用ArchiveBox列表命令上的过滤器CLI标志导出特定的快照或范围。

#archivebox列表--helparchivebox list --html --with-headers&gt; index.html#导出到静态HTML TableChiveBox列表 - json - 标题&gt; index.json#导出到json blobarchivebox列表--csv = timestamp,网址,标题&gt; index.csv#导出到csv电子表格# index.json.

静态导出中的路径是相对的,请确保在备份或查看时将它们保留在您的。/ archive文件夹旁边。

为了更好的安全性,更易于更新,并避免使用额外的依赖性污染主机系统,强烈建议使用官方Docker映像以预装的最佳体验。

为了在尽可能多的情况下实现高保真档案,ArchiveBox取决于各种第三方工具和库,专门从事不同类型的内容。用于存档站点的这些可选依赖项包括:

您无需安装每个依赖性以使用archivebox。基于在$ PATH中配置和可用的内容,ArchiveBox将自动禁用依赖未安装的依赖项的提取器。

如果使用Docker,则不必手动安装任何内容,所有依赖项都已正确设置出框外。

但是,如果您不愿意使用Docker,您可以直接在任何Linux / MacOS系统上使用系统包管理器或PIP安装ArchiveBox及其依赖关系。只需确保将依赖项保持最新,并检查归档箱是否没有报告与所安装的版本的任何不兼容。

#使用系统包管理器#APT / BREW / PIP / etc安装安装Python3和ArchiveBox ...(参见上面的QuickStart指令)ArchiveBox Setup#自动安装所有提取器和extraseChiveBox - Version#查看已安装依赖项的信息并检查有效性

直接在没有Docker或WSL / WSL2 / Cygwin的Windows上安装,但不会正式支持,但一些高级用户已报告使用它。

如果您正在导入包含私有内容的秘密SLUG或页面的URL(例如Google Docs,未列出的视频等),则可能希望禁用一些提取器模块以避免在归档过程中泄露私有网址到第三方API。

#don&#39; t这样做:archivebox添加&#39; https://docs.google.com/document/d/12345somelongsecrethere' archivebox添加&#39; https://example.com/any/any/any/any/any/any/any/any/any/any/url /你/想要/给/保留/秘密/&#39; #如果没有第一个禁用共享第三方API的URL:archivebox config -set save_archive_dot_org = false#禁用在archive.org中保存所有URL#如果额外的偏执录或反谷歌:ArchiveBox Config -set Save_favicon = false#禁用Favicon获取(它调用Google API)ArchiveBox Config --Set Chrome_Binary = Chromium#确保使用铬代替Chrome&#39; s

请注意,恶意归档的JS可以在查看后访问存档中的其他页面的内容。由于Web UI从单个域中服务了所有已观看的快照,因此它们共享一个请求上下文,典型的CSRF / CORS / CSP保护不起作用以防止跨站点请求攻击。有关更多详细信息,请参阅“安全概述”页面。

#使用恶意JS访问存档页面:https://127.0.0.1:8000 / archive / 1602401954 / examply.com / index.html#example.com/index.js现在可以提出请求读取所有内容:https: //127.0.0.1:8000/index.htmlhttps://127.0.0.1:8000/127.0.0.1:8000/ARCHIVE/ *#然后example.com/index.js可以将其发送给一些邪恶的服务器

最终将随时间保存每个站点的多个快照的支持(以及能够查看运行之间的更改的差异)。为目前,ArchiveBox旨在仅使用每个提取器类型归档每个URL一次。替代相同URL的多个快照的解决方法是通过添加哈希来使它们略有不同:

由于ArchiveBox旨在摄取浏览器历史和书签源的Firehose,因此可能比Internet存档或归档等集中服务更具磁盘空间密集型。但是,由于存储空间获得更便宜和压缩,您应该能够在多年中连续使用它而无需删除任何内容。

ArchiveBox可以在每1000篇文章中的任何位置,每1000篇文章约为约50GB,主要取决于您是保存音频和amp;视频使用save_media = true,无论是降低media_max_size = 750mb。

通过使用像ZFS / BTRF等压缩/重复数据删除的文件系统,或通过关闭可能所需的方法,可以减少存储要求。不要在较旧的文件系统上存储大型集合,如ext3 / FAT,因为它们可能无法处理存档/文件夹中的超过50k目录条目。

尝试将index.sqlite3文件保留在本地驱动器(不是网络安装)上,理想情况下,在SSD上以获得最大性能,但存档/文件夹可以位于网络安装或旋转硬盘上。

ArchiveBox的目标是通过赋予人们来自主托管自己的档案来启用更多互联网。意图是您在50-100年内使用普通软件可以查看的所有Web内容,而无需运行存档箱或其他专门的软件以重播它。

巨大的知识宝库每天都在互联网上丢失了链​​接腐烂。作为一个社会,我们必须保持这种宝藏的一些重要部分,就像我们在原始版本超出印刷或淡化默默地的物理图书馆中保存我们的书籍,绘画和音乐一样。

是否通过保存文章来抵制审查,然后才能删除或编辑,或者只是为了节省2010年初的Flash游戏,您喜欢玩的Flash游戏,让您在归档互联网内容中可以为您提供最关心的东西它消失了。

互联网上内容的持久性和季节性之间的平衡是使其美丽的一部分。我不认为一切都应该以自动的方式保留所有内容,使所有内容永久性永久性,而且从不可拆卸,但我认为人们应该能够自己决定并有效地归档他们关心的特定内容。

由于现代网站复杂并且通常依赖于动态内容,因此ArchiveBox以几种不同的格式存档站点,超出了archive.org/archive等公共归档服务。使用多种方法和市场主导浏览器执行JS可确保我们可以节省最复杂的,以至少少数高质量的长期数据格式提供最复杂的,Finichy网站。

▶查看我们的社区页面以获取Web归档计划和项目的索引。

存在各种开放和封闭的源归档项目,但很少提供一个很好的UI和CLI,以便随着时间的推移管理大型高保真档案集合。

ArchiveBox尝试成为适合存档RSS Feed,Bookmark或整个浏览历史记录的强大,设置和忘记归档解决方案(要小心,它可能太大而无法存储),包括您不会否则的私有/经过身份验证的内容与集中服务共享(由于JS重播安全问题,不建议使用这一点)。

并非所有内容都适合存档在集中集合中,韦特,因为它是私有的,受版权保护的,太大或太复杂。 archivebox希望填补这种差距。

通过每个用户在本地存储自己的内容,我们可以节省每个每个人的浏览历史的更大部分,而不是共享集中式服务能够处理。最终目标是为联合归档工作,用户可以互相共享其集合的部分。

ArchiveBox通过提供用于管理存档的全面的CLI接口来区分类似的自托管项目,该网站UI可以忽略或与CLI一起使用,以及可以在没有任何一种的情况下使用的简单磁盘数据格式。

ArchiveBox既不是最高保真度,也不是自托管存档的最简单的工具,而是默认情况下尝试大多数事情的杰克 - 所有交易。它可以像你想要的那样简单或先进,旨在为箱子开放的一切,但要调整以满足您的需求。

如果能够使用JS和视频归档非常复杂的交互式页面是至关重要的,请签出ArchiveWeb.page和ReplayWeb.page。

如果您喜欢更简单,请求的解决方案,请在Markdown中归档页面文本,并提供注释能力,查看Archivy或22120。

无论您是想了解哪些组织是Web归档空间中的大玩家,想要找到一个针对您的Web归档需要的特定开源工具,或者只是想查看档案家在线挂起的位置,我们的社区wiki页面是一个 更广泛的Web归档社区索引。 查看它以了解网络上一些最酷的Web归档项目和社区! 了解为什么归档互联网通过阅读“关于Web归档”博客文章的“重要性”很重要。 ✨雇用帮助构建归档箱的团队对您进行工作 ......