收起左侧

做了一个放在 NAS 上的私人书库:二毛图书,支持 EPUB、PDF 和漫画

0
回复
47
查看
[ 复制链接 ]

3

主题

4

回帖

0

牛值

江湖小虾

大家好,最近一直在折腾自己的电子书库,顺手把它做成了一个可以部署在 NAS 或家庭服务器上的项目:二毛图书

简单来说,它可以把散落在硬盘和各种文件夹里的 EPUB、PDF、漫画整理到一个书库里。平时用电脑、平板或手机打开网页就能看,阅读位置也会自动保存。

我不太想把它做成一个换了皮的文件管理器,所以除了存放文件,也补上了封面、作者、章节、系列、书架、阅读状态这些更接近“书库”的东西。目前支持的格式是:

  • EPUB
  • PDF
  • CBZ、ZIP 图片包

项目地址:GitHub - GMD170629/shuku-starship

它和普通网盘看书有什么不同

我比较在意的主要是这几件事:

  • 书和阅读数据都留在自己的设备上。 原文件可以继续放在指定目录里,数据库、封面缓存和阅读进度也保存在自己的服务器上。
  • 不用每次手动整理。 设置好监控文件夹后,新放进去的书会自动识别并加入书库。
  • 不只是在网页上列文件名。 可以按书名、作者、格式、标签、系列和阅读状态查找,也能建自己的书架。
  • 同一套界面覆盖电脑和移动端。 浏览器直接访问,也可以通过 HTTPS 安装成 PWA。
  • 阅读器是项目的一部分。 EPUB、PDF 和漫画分别做了适合各自格式的阅读方式,不需要再跳到其他应用(未来会支持直接发送到kindle阅读)。

目前的主要功能

1. 主页和阅读进度

主页会显示上次读到的章节和页数,可以直接接着读;最近阅读和最近加入的内容也会放在这里。

home.jpg

2. 书库导入和管理

可以在网页里上传,也可以添加一个或多个监控文件夹。系统会自动提取书名、作者、封面、章节等信息,并尽量识别重复文件、不同版本和漫画卷册。

书库支持搜索、筛选、网格/列表视图,还可以用阅读状态、标签、系列和自定义书架整理收藏。

library.jpg

3. 图书详情和章节管理

每本书都有独立详情页,可以查看版本、卷册、章节和当前阅读位置,也能修改封面、简介、出版信息、标签与系列信息。

book-detail.jpg

4. 内置阅读器

  • EPUB 支持分页或滚动、章节跳转、字号、行距、字体和主题设置。
  • PDF 支持翻页、缩放、适宽/适页和文本选择。
  • 漫画支持单页/双页、左右阅读方向、缩放和卷册切换。
  • 键盘、鼠标和触控都可以操作,退出后会保存阅读位置。

reader-epub.jpg

5. 外部资源、备份和 PWA

项目里也做了外部图书来源和下载队列,下载完成后可以直接进入监控目录并自动入库。数据管理方面支持备份与恢复、导入记录和系统日志。

如果通过 HTTPS 访问,还可以把它安装到电脑桌面或手机主屏幕。

安装方式

目前生产镜像支持 linux/amd64,也就是常见的 x86-64 NAS 和服务器。ARM64 设备暂时还没有发布正式镜像。

Docker Compose(推荐)

name: shuku-starship

services:
  web:
    image: gamersgu/shuku-starship-web:prod
    platform: linux/amd64
    pull_policy: always
    container_name: shuku-prod-web
    restart: unless-stopped
    user: "${PUID:-1000}:${PGID:-1000}"
    environment:
      STORAGE_ROOT: /app/storage
      MONITOR_ROOT: /monitor
      PORT: 3000
      HOSTNAME: 0.0.0.0
    ports:
      - "3000:3000"
    volumes:
      - ./data/storage:/app/storage
      - ./books:/monitor/books
    command: ["./scripts/start-unified-app.sh"]
    healthcheck:
      test: ["CMD-SHELL", "node -e \"fetch('http://127.0.0.1:3000/api/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))\""]
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 30s

注意,如果想监控文件夹自动导入书籍的话,目录必须映射到设置的MONITOR_ROOT 路径下。

启动后访问:

http://服务器地址:3000

第一次打开会进入初始化向导,创建管理账户。之后到“设置 → 书库来源与导入”里添加 /monitor 或它的子目录,就可以开始扫描书库了。

最后

二毛图书还在继续完善。如果你也习惯把电子书放在 NAS 或家里的服务器上,欢迎装起来试试。使用中遇到问题,或者觉得某个地方不好用,都可以在 GitHub 提 Issue;功能建议也欢迎直接聊。

收藏
送赞
分享

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则