Shelfhost icon

Shelfhost

Shelfhost 是一款开源、自托管的 PDF 阅读器、资料库和高亮工具,适合希望将文档完全掌握在自己手中的用户。基于 Cloudflare Pages、Workers、D1 和 R2,支持阅读、多色高亮和页码书签。

Shelfhost

概述

Shelfhost 是一款开源、自托管的 PDF 阅读和批注平台,面向希望将 PDF 资料库完全掌握在自己手中的用户。它将阅读、高亮和书签功能整合在一个本地托管的资料库界面中。

该产品基于 Cloudflare Pages、Workers、D1 和 R2 构建,被描述为无服务器且可全球部署。其设置指南重点介绍了创建数据库和存储桶、应用迁移以及部署到 Cloudflare Pages。

功能

无干扰的 PDF 阅读

Shelfhost 提供一个注重可读性的 PDF 阅读界面,产品定位强调温和、无干扰的体验,并且工具仅在需要时才显示。

多色文本高亮

你可以用多种高亮颜色标记文本选区,这有助于批注以及之后在资料库中回顾。

页码书签

资料库支持页码书签,方便你保存文档阅读位置,并从仪表板返回继续阅读。

Cloudflare 无服务器部署

Shelfhost 通过 Nuxt Nitro 作为无服务器函数运行在 Cloudflare Pages 和 Workers 上,无需管理 Docker 容器或虚拟机。

D1 数据库和 R2 存储

PDF 文件存储在 Cloudflare R2 中,而 D1 提供基于 SQLite 的数据库层,用于快速查询和资料库数据。

简洁的部署流程

部署指南展示了少量设置步骤:克隆仓库、安装依赖、登录 Cloudflare、创建数据库和存储桶、应用迁移,并进行全局部署。

使用场景

  • 个人自托管资料库

    当你想要一个自己控制的私有 PDF 资料库,而不是把文档发送到第三方阅读服务时,可以使用 Shelfhost。

  • 阅读与批注工作流

    在阅读论文、报告或长篇 PDF 时,如果你需要标记段落并稍后从仪表板继续阅读,可以使用高亮和书签工具。

  • Cloudflare 原生托管

    如果你希望采用无需管理 Docker 容器或虚拟机的无服务器部署,可以使用基于 Cloudflare 的方案。

  • 有文档的自部署

    如果你偏好简单的部署路径,并且希望拥有创建存储、应用迁移和发布应用的文档化步骤,可以使用 Shelfhost。

Pros and Cons

Pros

  • 开源且自托管,让资料库保持在用户自己的控制之下。
  • 阅读界面被描述为无干扰,工具仅在需要时显示。
  • 支持多色高亮和页码书签,适合主动进行 PDF 学习。
  • 使用 Cloudflare Pages、Workers、D1 和 R2,实现无服务器部署模式。
  • 指南中的部署流程清晰简洁,文档化程度较高。

Cons

  • 来源未描述协作功能,例如共享资料库或团队工作流。
  • 除 Cloudflare 免费套餐下的个人使用之外,来源未说明定价细节。
  • 部署指南表明需要 Cloudflare 特定设置,因此它并未被呈现为通用、与托管环境无关的软件包。

FAQ

如何部署 Shelfhost?

Shelfhost 设计用于运行在 Cloudflare Pages 和 Workers 上,使用 D1 作为 SQLite 数据库,使用 R2 存储 PDF。部署指南展示了克隆仓库、安装依赖、使用 Wrangler 登录、创建 D1 数据库和 R2 存储桶、应用迁移以及运行部署脚本的流程。

Shelfhost 是做什么的?

该产品定位为自托管的 PDF 阅读器、资料库和高亮工具。来源明确描述了文本高亮、保存书签,以及在本地托管的资料库中阅读 PDF。

Shelfhost 适合谁?

Shelfhost 被描述为开源且自托管,因此面向希望将 PDF 资料库完全掌握在自己手中的读者,而不是使用托管阅读服务的用户。

Shelfhost 的费用是多少?

来源说明 Shelfhost 可编译为纯 Cloudflare Pages 组件,并可在 Cloudflare 免费套餐下用于个人资料库使用。它没有提供完整的付费方案明细或明确的套餐限制。

Quick Facts

类别
Self-hosted PDF reader
平台
Cloudflare Pages, Workers, D1, and R2
主要工作流
Read, highlight, bookmark, and store PDFs in a self-hosted library
许可/可用性
Open-source
部署模式
Serverless
来源域名
shelfhost.dipankarshaw.qzz.io