什麼是ArchiveBox?
ArchiveBox是一個開源、自託管的Web存檔解決方案,它幫助個人或組織保存網絡內容以供離線瀏覽,並確保長期數據可訪問性
目標是允許用戶主動保存他們關心的網絡內容,以避免由於連結故障、內容更改或服務離線而丟失重要信息。可以存檔:書籤、社交媒體內容(例如Facebook照片、YouTube視頻)、研究論文、法律證據等。
核心功能和技術特點
各種輸入方法
您可以從多個來源輸入要保存到ArchiveBox中的內容,包括:
- 個別URL計算的
- 瀏覽器書籤或歷史記錄
- RSS提要
- 袖珍、插板和其他收集服務
自動抓取和保存多種格式的內容
ArchiveBox為每個頁面生成多種存檔格式,例如:
- 原始HTML、SingleFile HTML、屏幕截圖PNG、PDF、WARC等
- 社交媒體內容:XT文本、評論、作者、圖片等
- 媒體內容:MP3/MP4、字幕、元數據、縮略圖等
- 代碼託管服務(GitHub/GitLab):克隆代碼、REAUTE等。
多個訪問方法
- 命令行工具(CLI):完全控制和自動化腳本集成
- Web應用程式接口:直觀的操作和預覽
- Python庫/ REST API/Webhook:方便二次開發和集成
數據存儲模式
- 使用文件系統保存,無需專有格式
- 歸檔內容存儲在本地文件夾中,以供長期使用或遷移
安裝和部署方法
ArchiveBox支持多種安裝方法,建議採用以下方法:
- Docker / Docker編寫(推薦)
包含所有依賴項,便於部署和升級。 - 命令行安裝(適用於Linux / macOS / Debian等)
pip安裝檔案箱檔案箱安裝或使用捲曲|bash一鍵腳本。 - 支持的平台:可以通過Docker或WSL 2使用Linux、macOS、BCD(原生)、Windows
- 需資源:最低500 MB RAM,建議至少2 GB;支持壓縮存儲的文件系統(例如收件箱、BTRFS)效率更高
工作原理和設計理念
- ArchiveBox使用多種工具(例如wget、headless Chrome)來抓取內容。
- 作者認為,核心優勢在於「去中心化」,避免所有網絡檔案都依賴單一服務(例如archive.org),由用戶自己保存並將來共享
- 該項目使用Django框架構建後台,並使用SQLite作為本地資料庫;插件系統基於Pluggy; REST API使用django-ninja和Pydantic
快速入門示例
- 初始化項目目錄
mkdis my_archive光碟my_archive archivebox init --設置 - 將URL添加到存檔
檔案箱添加https://example.com - 啟動本地Web服務預覽
檔案箱伺服器 - 導入歷史記錄或書籤
支持導入口袋、Pinboard、瀏覽器書籤、RSS提要等
社區反饋和使用場景
開發人員在Reddit討論中提到,ArchiveBox是一個複雜但功能豐富的Django項目,可以取代archive.org並支持更多抓取格式(屏幕截圖、PDF等)
其他用戶強調可以增強網絡內容保存的自主性和冗餘備份能力
摘要列表
| 特性 | 描述 |
|---|---|
| 類型 | 開源、自託管的網絡歸檔工具 |
| 支持輸入 | URL、書籤、歷史記錄、RSS、最喜歡的服務 |
| 保存格式 | HTML、PDF、PNG、WARC、音頻和視頻、文本、代碼等 |
| 使用 | CLI / Web界面/ API |
| 推薦的安裝方法 | Docker或pip +安裝腳本 |
| 適用平台 | 原生於Linux/macOS/BSD;Windows通過Docker或WSL 2 |
| 技術堆棧 | Python、Django、SQLite、Pluggy、Django-ninja |
| 設計理念 | 分布式、數據控制、自主長期歸檔 |
Github:https://github.com/ArchiveBox/archivebox
輸油管: