專案網址:https://github.com/ray-d-song/web-archive
我長期以來一直是 ArchiveBox 的忠實用戶。 ArchiveBox是一個非常好的網頁歸檔工具,但是它需要自託管,並且對伺服器要求很高(需要無頭瀏覽器)。我之前用過樹莓派,效能不好
而像x、Medium這樣需要登入的網站,ArchiveBox需要手動設定token或cookie,比較麻煩。
於是我想,能不能有一個不需要自架、不需要無頭瀏覽器、對伺服器沒有要求、可以跨平台的網頁歸檔工具呢?然後我就可以隨時隨地在任何裝置上存取我的存檔頁面。
Cloudflare 的 Workers 服務非常強大且免費,擁有大量的 D1 資料庫和 R2 儲存桶,非常適合建立這個工具。
更重要的是,Cloudflare生態系統完整,支援一鍵部署和資料遷移。也可以使用Cloudflare的全球CDN服務。
網路存檔由以下部分組成:
我使用SingleFile的開源程式碼將頁面儲存為單一html檔案(甚至包括圖片和影片)。
伺服器完全基於Cloudflare的Workers服務,D1資料庫用於儲存元數據,R2儲存桶用於儲存快照。
雖然介面數量不小,但我並沒有使用ORM,實際上我嘗試過prisma和drizzle,因為它們給部署帶來了很大的麻煩,所以最終沒有使用。
Web客戶端使用React、Vite、TailwindCSS和shadcn/ui構建,打包後的大小小得驚人,只有1.5MB。打包後的產品會嵌入到伺服器的assets資料夾中,所以部署伺服器時不需要單獨部署。
我真的很喜歡 Cloudflare 的免費服務,但有一些限制。
這些限制在一定程度上影響了網站的建設,例如爬取時的ssr或dom解析。
但是,無論怎麼說,謝謝你,Cloudflare!
以上是我建立了一個在 Cloudflare 上運行的全端 Web 存檔工具的詳細內容。更多資訊請關注PHP中文網其他相關文章!