介绍

互联网中的信息最终都会消失,现实中经常会发现网页因为各种原因无法访问了,包括被删除、地址改变等等原因。有一些公开可用的存档服务,但是并不能保证存档所有内容,因此需要自行存档。

ArchiveBox 是一款开源自托管的因特网存档方案。是一整套完整的解决方案,支持将网页保存为 SingleFile、PDF、截图、HTML 等各种格式。

网上有很多相关的讨论,可以了解到这是非常强烈的需求:

环境

  • ArchiveBox 0.6.3
  • DSM 7.0.1

群晖需要使支持 Docker 的 x86 处理器型号。

安装

依赖太复杂,手动安装依赖有各种各样的版本兼容问题,只推荐使用内部集成了所有需要依赖的官方 Docker 镜像。使用群晖的话,只推荐使用 GUI 配置,使用 SSH 命令行对新手极其不友好。

  1. 首先在群晖中安装 Docker,然后打开 Docker 在 注册表 中搜索 archivebox,下载。
  2. 在 File Station 中新建 /docker/archivebox 目录。
  3. 创建容器,容器名称:archivebox,点击 高级设置
    1. 勾选 启用自动重新启动
    2. 存储空间 中添加 /docker/archivebox/data 的映射
    3. 端口设置,增加本地端口 8000 到容器端口 8000 的 TCP
    4. 环境 中增加环境变量 MEDIA_MAX_SIZE 值为 750m

注意:必须创建一个空目录 /docker/archivebox,否则会报以下错误:

1
2
3
4
5
[X] This folder appears to already have files in it, but no index.sqlite3 present.
    You must run init in a completely empty directory, or an existing data folder.
    Hint: To import an existing data folder make sure to cd into the folder first, 
    then run and run 'archivebox init' to pick up where you left off.
    (Always make sure your data folder is backed up first before updating ArchiveBox)

启动后使用 archivebox 容器详情中的 终端机 标签页,新建一个终端,然后执行以下命令创建管理员帐号:

1
2
su archivebox
archivebox manage createsuperuser

图文教程可以参考:

使用

使用起来很简单,只需要登录帐号,然后添加要存档的 URL 即可。

在使用过程中发现 ArchiveBox 有几个问题:

  • 需要配置 Cookie 以登录帐号,否则无法存档登录后可见的网站
  • 需要配置广告过滤扩展,否则存档下来的内容都是广告
  • 不支持代理设置,需要在路由器支持,否则部分网站无法打开进行存档

登录状态与广告有确定可行的解决方案,需要阅读文档:

本地储存开源解决方案可以使用 ArchiveBox 的自动存档浏览器历史记录功能,详细使用方法参考官方文档,功能十分强大(还可以做到在存档过程中使用 cookie,使用 adblock 去广告规则)地址:( https://github.com/ArchiveBox/ArchiveBox