5分钟使用 Docker-Compose 和 Archivebox 部署一个支持全文搜索的互联网档案馆
互联网档案馆(英语:Internet Archive)是美国的一个非营利性的、提供互联网多媒体资料档案阅览服务的数字图书馆。自2001年推出以来,截至2024年1月3日,网站时光机已存档超过 8600 亿个网页和超过 99 PB 的数据。
我们保存不了这么多数据,就只保存一点点日常需要存档的网页就行了。
1.先创建一个目录用于存储数据
mkdir ArchiveBox
cd ArchiveBox
2.下载 docker-compose.yml 和 sonic 的配置文件
下载docker-compose.yml:
curl -O 'https://raw.githubusercontent.com/ArchiveBox/ArchiveBox/master/docker-compose.yml'
curl -O https://raw.githubusercontent.com/ArchiveBox/ArchiveBox/master/etc/sonic.cfg
修改docker-compose.yml,取消 sonic 的注释,修改两个容器环境变量的 SEARCH_BACKEND_PASSWORD 值。
3.初始化
docker-compose run archivebox init --setup
这里需要输入你的邮箱、用户名、密码这些,输入就行了。
4.启动
docker-compose up -d
然后打开浏览器打开相应端口就行了,如果需要可以添加一个反向代理服务。
参数设置
docker-compose 里面,archivebox 容器支持一些参数设置,根据你的使用情况进行设置。
- ALLOWED_HOSTS=* # 将其限制为仅接受通过特定域名的传入流量
- PUBLIC_INDEX=True # 设置为FALSE可防止匿名用户查看快照列表
- PUBLIC_SNAPSHOTS=True # 设置为False可防止匿名用户查看快照内容
- PUBLIC_ADD_VIEW=False # 设置为True可允许匿名用户将新URL提交到存档
如果要做公开的互联网档案馆,把 PUBLIC_ADD_VIEW 设置为 True 就行了。
产品特点
Archivebox 可以调用 chrome 浏览器,实现一些有 js 抓取,或者需要浏览器验证的页面,抓取后基本上和当时浏览器打开效果一致。
可以添加多用户。
默认抓取的网页全部公开浏览。
同时默认可以同时添加 archive.org 存档。
支持多种存储实现,Amazon S3 / Backblaze B2 / Google Drive / 等 (RClone)。
支持设置cookies,还可以使用 vnc 进入到系统内,然后在 chrome 里面登录相关网站的账户,抓取类似知乎这种需要权限的网站。
不足
没有多语言支持,备份一个网页需要的文件空间比较大。
REST API 还在开发中,没有 app。
使用场景
需要保存一些页面,尤其是里面有丰富的图文,还需要截图当时的完整页面。如果只是需要文章保存功能,用 wallabag 更方便。
tips:
- 添加保存的网页的时候,URLs format 选择 URL List ,不然会出现输入一个链接大量采集的情况。
- Archivebox 支持保存网页里面的媒体视频,只要是 yt-dlp 支持的网站,例如你添加一个 YouTube 的视频链接,会保存其中的视频。
参考链接: