PDF图书馆索引器和阅读器Inkheart

简介

什么是 Inkheart ?

Inkheart 是一个为你所有 PDF 文件打造的自托管书库。它会扫描指定目录中的文件,提取第一页作为封面,并以美观的书架形式呈现在网页上,让你能轻松浏览和阅读你的数字藏书。

主要特点

  • 自动索引 :自动扫描指定目录中的 PDF 文件并建立索引。
  • 封面提取 :自动提取每个 PDF 文件的第一页作为书库中的封面图片。
  • 优雅界面 :提供一个美观、现代化的书架网页界面,用于浏览你的所有 PDF 收藏。
  • 文档管理:提供文档的分类和管理功能,用户可以轻松组织和查阅文档。
  • 链接预览:为分享的页面链接生成缩略图,在社交媒体上提供更好的预览效果。
  • 轻松部署 :基于 Docker,部署过程简单快捷,无需依赖外部服务,保护隐私和数据安全。

应用场景

  • 个人电子书管理:为你的电子书收藏创建一个漂亮的在线书架。
  • 文档资料库 :整理和展示技术手册、研究报告、产品说明等 PDF 文档。
  • 家庭共享:在家庭内部共享和展示食谱、漫画、学习资料等。
  • 个人数字图书馆:打造一个完全由你掌控的、可随时访问的个人在线图书馆。

比较

以下是 InkheartPaperless-ngxKavitaKomga 的比较:

项目 Inkheart Paperless-ngx Kavita Komga
类型 自托管 PDF 库 自托管文档管理系统 自托管电子书和漫画阅读器 自托管漫画和电子书管理器
开发语言 Rust(后端),Svelte(前端) Django(Python) .NET Java
主要功能 PDF 索引与阅读,文档管理 文档存储和管理,OCR 处理 电子书和漫画上传、管理和阅读 漫画和电子书上传、管理和阅读
用户界面 现代化的单页应用,流畅的用户体验 提供简单的用户界面 现代化用户界面,支持自定义主题 现代化设计,功能齐全的用户界面
连接方式 自托管 自托管 自托管 自托管
数据存储 本地文件系统 数据库(支持各种数据库) 本地文件系统(包括电子书和漫画文件) 本地文件系统
社区与支持 开源项目,较小的社区 活跃的开源社区,定期更新 开源并有活跃的支持社区 开源项目,活跃开发
文档管理 通过索引和分类组织 PDF 文档 OCR 文本识别,支持各种文档格式 支持封面、内容组织,分类功能 支持分类和标签管理
许可证 Apache License 2.0 GPL v3 MIT License GPL v3

这些工具各有侧重,选择合适的工具取决于用户的需求。例如,Inkheart 适合希望专注于 PDF 管理的用户,而 Paperless-ngx 更适合需要文档 OCR 功能的用户。KavitaKomga 则更专注于电子书和漫画的管理与阅读。

Inkheart 提供了一种高效、安全的方式来管理和阅读 PDF 文档。其自托管的特性和现代化的技术栈使其成为个人和机构在数字内容管理方面的理想选择。

安装

在群晖等支持 Docker 的设备上以 Docker 方式安装。

在注册表中搜索 inkheart ,选择第一个 nobbe/inkheart,版本选择 latest

本文写作时, latest 版本对应为 1.1.0

涉及的参数比较多,建议用命令行方式安装比较简单和快捷

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

bash 复制代码
# 新建项目文件夹和所有子目录
mkdir -p /volume1/docker/inkheart/{media,covers,config,thumbnails}

# 进入 inkheart 目录
cd /volume1/docker/inkheart

# 修改目录权限
chmod a+rw {config,covers,media,thumbnails}

# 运行容器
docker run -d \
   --restart unless-stopped \
   --name inkheart \
   -p 8754:8080 \
   -v $(pwd)/media:/media \
   -v $(pwd)/covers:/covers \
   -v $(pwd)/config:/config \
   -v $(pwd)/thumbnails:/thumbnails \
   -e MEDIA_DIR=/media \
   -e IMAGE_DIR=/covers \
   -e THUMBNAIL_DIR=/thumbnails \
   -e TELEMETRY_ENABLED=false \
   -e CONFIG_PATH=/config/inkheart.toml \
   -e BIND_ADDR=0.0.0.0 \
   nobbe/inkheart:latest

文件夹 装载路径 说明
docker/inkheart/media /media 必须!存放你的 PDF 文件
docker/inkheart/covers /covers 必须!存放自动提取的封面
docker/inkheart/config /config 可选。存放 inkheart.toml 等配置文件
docker/inkheart/thumbnails /thumbnails 必须!存放分享链接的缩略图

环境变量

变量 说明
MEDIA_DIR /media PDF 文件输入目录
COVER_DIR /covers 封面图片输出目录
THUMBNAIL_DIR /thumbnails 缩略图输出目录
CONFIG_PATH /config/inkheart.toml 配置文件路径
BIND_ADDR 0.0.0.0 监听地址

更多的环境变量可以参考官方的说明文档,地址在:https://gitlab.com/Nystik/inkheart#variables

docker-compose 安装

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

yaml 复制代码
services:
  inkheart:
    image: nobbe/inkheart:latest
    container_name: inkheart
    restart: always
    ports:
      - 8754:8080
    volumes:
      - ./media:/media # The path where you're storing your PDF files
      - ./covers:/covers # This is where the first page of each file will be extracted to to serve as a library cover
      - ./config:/config # Config folder, e.g for whitelist file
      - ./thumbnails:/thumbnails # This folder will contain thumbnails generated for OpenGraph preview of pages when linking.
    environment:
      - MEDIA_DIR=/media
      - IMAGE_DIR=/covers
      - THUMBNAIL_DIR=/thumbnails
      - TELEMETRY_ENABLED=false
      - CONFIG_PATH=/config/inkheart.toml # path to a config file
      - BIND_ADDR=0.0.0.0 # Only needed if you want to change from default

然后执行下面的命令来启动:

bash 复制代码
# 新建项目文件夹和所有子目录
mkdir -p /volume1/docker/inkheart/{media,covers,config,thumbnails}

# 进入 inkheart 目录
cd /volume1/docker/inkheart

# 修改目录权限
chmod a+rw {config,covers,media,thumbnails}

# 将 docker-compose.yml 放入当前目录

# 将你的PDF文件放入 media 文件夹

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:8754 就能看到主界面

pdf 文件放入 media 目录

索引时间取决于你放入 media 文件夹中 pdf 文件的数量和大小

通过左侧菜单的 + 号创建合集

然后可以将书加入到合集中

直接点击进行阅读

参考文档

Nystik / Inkheart - Self-hosted PDF library · GitLab

地址:https://gitlab.com/Nystik/inkheart

相关推荐
其实秋天的枫4 小时前
2026年新大纲普通话考试真题题库50套(PDF电子版)
经验分享·pdf
bloglin999995 小时前
docker logs 如何一直监听日志输出
运维·docker·容器
开开心心_Every6 小时前
文字转语音无字数限,对接微软接口比付费爽
运维·服务器·人工智能·edge·pdf·paddle·segmentfault
说实话起个名字真难啊6 小时前
Docker 入门之网络基础
网络·docker·php
无心水6 小时前
2、5分钟上手|PyPDF2 快速提取PDF文本
java·linux·分布式·后端·python·架构·pdf
❀͜͡傀儡师7 小时前
使用 Docker 部署 Neko 自托管虚拟浏览器(Firefox)
docker·容器·firefox
0xDevNull7 小时前
Linux Docker 安装与使用详细教程
linux·运维·docker
工具罗某人7 小时前
docker compose 部署MySQL InnoDB Cluster + Router 高可用集群-亲测可用
mysql·docker·容器
SpikeKing7 小时前
Server - 服务器 CentOS 安装与配置 Docker
服务器·docker·centos
优化控制仿真模型7 小时前
2026年新大纲普通话考试真题题库50套(PDF电子版)
经验分享·pdf