ArchiveBox 是开源自托管网页归档工具,从书签/历史/Pocket/Pinboard/RSS 导入 URL,自动保存 HTML、JS、PDF、媒体到本地。Python + Django 全栈,Docker 一键部署,支持 WARC 格式,28k Stars 成熟稳定,MIT 协议完全免费。
🎤 引言
2024 年 Reddit 把 Pocket 应用直接关停,无数用户的收藏夹一夜蒸发;某个论坛里收藏的「深度好文」作者随手删稿;同事分享的行业报告链接半年后 404;浏览器历史记录清空后想找回三年前那个资源页面——
这就是所谓的 link rot(链接腐烂)——互联网的「集体失忆症」。
GitHub 28k Stars 的 ArchiveBox/ArchiveBox 是这个问题的标准答案——开源自托管网页归档工具,从浏览器书签、Pocket、Pinboard、RSS、历史记录导入 URL,完整保存 HTML / JS / CSS / PDF / 媒体到本地,附带搜索索引和全文检索。
截至 2026-07-26,项目已稳定维护 9 年(2017-05 首发),1.6k Forks + 169 open issues,是 self-hosted 圈里公认的「网页时光机」标杆。
⭐ 核心功能
1. 多源导入
ArchiveBox 不只是「粘贴 URL 一键归档」,它支持从各种常用服务导入待归档链接:
- 浏览器书签:Chrome / Firefox / Safari / Edge 一键导出 HTML 导入
- Pocket / Pinboard / Instapaper:导出 CSV / JSON 批量导入
- RSS / Atom Feed:订阅源自动拉取新条目
- 浏览器历史:Chrome history.sqlite / Firefox places.sqlite 直接导入
- txt 链接列表:一行一个 URL 即可
- 其他 ArchiveBox 实例:跨实例同步归档
实测从 Chrome 导出 800 条书签 → ArchiveBox 入队 → 后台依次抓取 → 全部跑完大约 6-8 小时(取决于网速和并发数)。
2. 多 extractor 多格式归档
每个 URL 不只保存 HTML 页面,而是 同时调用多个 extractor 把不同形态都拉一份:
wget— 完整站点镜像(含 HTML / CSS / JS / 图片)SingleFile— 单文件 HTML(所有资源打包到一个 .html)headless Chrome— 渲染后的最终页面(处理 JS 动态加载)readability— 提取正文(去除广告 / 导航 / 干扰元素)media— 单独下载视频 / 音频(依赖 yt-dlp)pdf— 用 Chromium 渲染 PDF 版screenshot— 页面截图(PNG)dom— 原始 DOM 序列化title/favicon/headers— 元数据
一个页面归档下来可能产生 10+ 个文件,完整覆盖「未来想重新访问」的所有可能。
3. WARC 标准格式
ArchiveBox 用 WARC(Web ARChive)格式保存原始 HTTP 响应,符合互联网档案馆(Internet Archive)和 Wayback Machine 的行业标准。
好处是:
- 归档数据可移植——导入 Internet Archive 或其他 WARC 工具都能用
- 包含完整的 HTTP headers(cookies、redirect chain 都能复现)
- 法律 / 学术 / 数字保存场景的合规格式
如果你的归档有一天需要举证(比如诉讼取证、学术引用),WARC 是最被认可的格式。
4. 内置 Django Web UI + 全文搜索
跑 archivebox server 0.0.0.0:8000 启动 Web 后台:
- 搜索框:SQLite FTS5 全文搜索,可搜标题 / 正文 / URL
- 时间线视图:按归档日期浏览
- 标签 / 收藏夹:手动给重要页面打标签
- 截图墙:可视化浏览归档页面缩略图
- 导出 / 分享:单页面分享链接,可发给朋友或嵌入博客
UI 朴素但功能完整,2025 后的新版用 Django + HTMX 写了现代化的实时刷新。
5. 增量抓取 + 重试机制
ArchiveBox 跑起来后是「常驻 worker」模式:
- 新 URL 入队自动后台抓取(可配置并发数)
- 抓取失败的 URL 自动重试(指数退避)
- 已归档的页面自动跳过(按 URL + content hash 去重)
- 支持「定期重新归档」——跟踪页面变化
对 RSS 订阅场景特别友好:把 feed URL 加进去,ArchiveBox 会按 cron 节奏抓取新条目,零人工干预。
📥 安装与使用
环境要求
- Docker + Docker Compose(推荐)
- 或 Python 3.11+ / Node.js 18+(自行部署)
- SQLite(默认)/ Postgres(可选)
- Chromium / Chrome / Firefox(用于 headless 渲染)
- yt-dlp(用于视频归档)
Docker Compose 一键部署(推荐)
git clone https://github.com/ArchiveBox/ArchiveBox.git
cd ArchiveBox
docker compose up -d默认监听 0.0.0.0:8000,首次访问 http://your-ip:8000 进入管理后台。
添加 URL 归档
# 单条 URL
docker compose run archivebox add 'https://example.com'
# 批量从 txt 文件
docker compose run archivebox add < urls.txt
# 从 Pocket 导出
docker compose run archivebox add < pocket-export.csv启动 Web UI
docker compose up浏览器打开 http://your-ip:8000,搜索、浏览、导出归档。
配置文件
# ArchiveBox.conf.yml
TIMEOUT: 60
CONCURRENCY: 8
CHECK_SSL_VALIDITY: true
SAVE_WARC: true
SAVE_PDF: true
SAVE_SCREENSHOT: true
SAVE_MEDIA: true官方文档:https://github.com/ArchiveBox/ArchiveBox
项目仓库:GitHub - ArchiveBox/ArchiveBox
🎯 适用场景
- 链接收藏党 / 信息囤积者:Pocket 用户、Notion Web Clipper 重度用户,担心哪天服务关闭。
- 学术研究者 / 调查记者:引用网页材料做研究 / 报道,需要归档「证据」级别的网页快照。
- 企业知识管理:把团队共享的行业资讯、内部文档链接定期归档,防止 404。
- 个人 / 家庭数字遗产:把家庭照片墙、亲友博客、老网站归档作为「数字记忆」保存。
- RSS 重度用户:用 RSS 订阅了大量博客 / 新闻源,ArchiveBox 自动后台归档每条新文章。
- 隐私敏感者:不愿把浏览历史 / 收藏夹交给第三方云服务,全部本地存储。
不太适合:纯实时性新闻(归档有延迟);超大规模网站(百万级 URL 单实例会卡,需要分布式);需要频繁归档视频流媒体(版权风险 + 存储爆炸)。
🔍 对比 / 替代方案
| 工具 | 部署方式 | 输入源 | 归档完整度 | 搜索 | WARC | 维护活跃度 | 协议 |
|---|---|---|---|---|---|---|---|
| ArchiveBox | Docker / Python | 9+ 源 | ⭐⭐⭐⭐⭐ | ✅ FTS5 | ✅ | ⭐⭐⭐⭐⭐(9年) | MIT |
| Wayback Machine | 云端(IA) | URL / 爬虫 | ⭐⭐⭐⭐⭐ | ⚠️ 外部 | ✅ | ⭐⭐⭐⭐⭐ | AGPL |
| Perma.cc | 云端(学术) | URL | ⭐⭐⭐ | ⚠️ 外部 | ✅ | ⭐⭐⭐⭐ | AGPL |
| Wallabag | Docker | RSS / 手动 | ⭐⭐⭐ | ✅ | ❌ | ⭐⭐⭐⭐ | MIT |
| Linkwarden | Docker | 手动 / 浏览器扩展 | ⭐⭐ | ✅ | ❌ | ⭐⭐⭐⭐ | AGPL |
| Shiori | Docker | 手动 / 浏览器扩展 | ⭐⭐ | ✅ | ❌ | ⭐⭐⭐ | MIT |
ArchiveBox 的甜蜜点非常清晰:多 extractor 全格式归档 + WARC 标准 + 自托管可控 + 9 年成熟稳定。Wayback Machine 是行业天花板但无法自托管;Perma.cc 偏学术圈准入门槛高;Wallabag 是「类 Pocket」应用而非「网页归档」工具;Linkwarden / Shiori 主要做书签管理,归档深度不及 ArchiveBox。
横向对比 Wallabag:ArchiveBox 的核心是「完整保存网页到本地」,Wallabag 是「简化版只读视图」,对真正想 100% 还原原页面的需求 ArchiveBox 没对手。
诚实缺点:GitHub 显示 169 open issues 比同类项目高一截,活跃维护但 bug 修复节奏不算快;Docker 镜像含 Chromium / FFmpeg / yt-dlp 等大块依赖,初次拉镜像 1GB+ 起步;存储需求爆炸(每页平均 5-50MB,10 万 URL 轻松破 TB),需要定期清理或迁移到大容量盘。
⚠️ 注意事项
- 存储爆炸预警:每归档一个页面平均 5-50MB(含 PDF + 截图 + 视频),10 万 URL 轻松破 1TB。强烈建议:把归档目录挂载到大容量磁盘,定期归档冷数据到对象存储。
- 版权合规:归档他人网站涉及版权问题,ArchiveBox 不提供任何法律担保。仅用于:个人备份、研究存档、合理使用范围内。商业平台归档务必确认原作者授权。
- Docker 镜像体积:首次拉镜像约 1.5GB(含 Chromium / FFmpeg / yt-dlp / wget 等),国内网络拉镜像可能需要配置镜像加速器。
- 并发数配置:默认
CONCURRENCY=8对家庭宽带可能压力太大,下载时影响正常上网。建议根据上行带宽调到 2-4。 - WARC 格式归档的文件 体积巨大(一个完整 WARC 可能 10-100MB),如果存储紧张可以在配置里关掉:
SAVE_WARC: false,但失去「证据级」归档能力。 - Chromium 渲染:headless Chrome 是吃内存大户,每并发约 200-300MB。1GB 内存服务器建议
CONCURRENCY=2,4GB+ 才能跑到 8 并发。 - 定期重归档:部分网页(如新闻)会持续更新,ArchiveBox 的「定期重抓」功能会消耗大量带宽和存储。建议对重要订阅源单独开启。
- 登录 / Cookie 站点:ArchiveBox 默认无 cookie 抓取,登录后的页面(推特、知乎、小红书)抓不全。需要手动配置 cookie 文件(参照 官方文档)。
✅ 总结
ArchiveBox 是 self-hosted 网页归档赛道里九年磨一剑的标杆项目。28k Stars、1.6k Forks、持续维护至今——这三个数字组合在一起的「网页时光机」项目在 FOSS 圈几乎找不到对手。
推荐指数 ⭐⭐⭐⭐⭐(5/5):多源导入 + 多 extractor 全格式归档 + WARC 标准 + Django Web UI + 9 年稳定维护,五件套组合把「网页归档」这件事做到极致。适合需要长期保存网页内容的个人 / 团队 / 学术机构。
适合:链接收藏党、学术研究者 / 调查记者、企业知识管理、个人数字遗产保存、RSS 重度用户、隐私敏感者。
不太适合:纯实时性新闻需求、超大规模网站(百万级 URL)、频繁归档视频流媒体。
如果你曾经为某个 404 的链接感到惋惜,或者担心 Pocket 关闭事件重演——花 30 分钟 docker compose up -d,把浏览器书签导出导入 ArchiveBox,未来任何链接 404 都能从你的本地归档里找回。这是数字时代每个重度网民都该有的「保险」。
官方文档:https://github.com/ArchiveBox/ArchiveBox
GitHub:https://github.com/ArchiveBox/ArchiveBox