KAVITA / SELF-HOSTED LIBRARY
漫画放在一个硬盘,EPUB 躺在下载目录,PDF 又散落在网盘里。文件多起来以后,真正麻烦的往往不是存储空间,而是找不到上次读到哪里,也很难在手机、平板和电脑之间接着看。
Kavita 做的事很直接:把这些文件整理成一个可在浏览器中访问的私人书库。它支持 CBR、CBZ、ZIP、RAR、RAR5、7z、图片、EPUB 和 PDF,内置漫画、Webtoon、电子书与 PDF 阅读器,也能记录不同用户的阅读进度。服务器放在 NAS、家用主机或 Windows 电脑上,其他设备只要打开网页即可阅读。
这篇教程用 Docker/NAS 作为主线,也给出 Windows 原生安装方法。完成以后,至少可以导入一个书库,并在同一局域网内从其他设备访问。
截至 2026 年 7 月,Kavita 最新稳定版是 v0.9.0.2。这个版本修复了一项关键安全漏洞,官方明确建议所有用户立即升级;此前版本均受 CVE-2026-47202 影响。因此,新安装不要照着旧教程拉取历史镜像,已有实例也应先备份再升级到 v0.9.0.2 或更新版本。
Kavita 仍被官方标记为 Beta 软件,1.0 之前可能调整功能和数据结构。书库原文件与 Kavita 配置应分开存放,并定期备份配置目录。
安装前准备三个目录即可:漫画、电子书,以及 Kavita 自己的配置目录。以 NAS 为例:
/volume1/media/comics/volume1/media/books/volume1/docker/kavita/config
最后一个目录保存数据库、设置、阅读进度等数据,不能随着容器删除而丢失。
Kavita 官方 DockerHub 镜像是 jvmilazz0/kavita。在准备存放 Compose 文件的目录中,新建 compose.yml:
services: kavita: image: jvmilazz0/kavita:latest container_name: kavita environment: - TZ=Asia/Shanghai volumes: - /volume1/media/comics:/comics - /volume1/media/books:/books - /volume1/docker/kavita/config:/kavita/config ports: - "5000:5000" restart: unless-stopped
volumes块“:”左侧是 NAS 或服务器上的真实目录,需要换成自己的路径;右侧是容器内看到的路径。媒体目录可以另起名字,但配置目录在容器内必须保持为 /kavita/config。
启动容器:
docker compose up -d
需要查看运行情况时使用:
docker compose logs -f kavita
浏览器打开 http://服务器IP:5000/。例如 NAS 地址是 192.168.1.20,访问地址就是 http://192.168.1.20:5000/。
群晖、威联通和其他带容器管理界面的 NAS,不一定要手写 Compose。选择官方镜像 jvmilazz0/kavita:latest,映射 TCP 端口 5000:5000,再按上面的关系挂载媒体目录和配置目录,效果相同。若设备非常老,还要确认 CPU 支持 SSE4.2;这是 Kavita 当前图像处理依赖的要求。
只想先在电脑上试用,不必安装 Docker。Kavita 的 Windows 发布包已经包含运行所需组件,无需另装 .NET。
打开最新 Release 页面,下载 kavita-win-x64.tar.gz。Windows 10 和 Windows 11 通常使用这个 64 位版本;32 位旧系统才考虑 kavita-win-x86.tar.gz。
用 7-Zip 解压到可写目录,例如:
D:\Apps\Kavita
不要放进C盘的 Program Files 或 Program Files (x86),这两个目录的权限限制容易导致配置写入失败。进入解压后的目录,双击 Kavita.exe,再打开浏览器访问:
http://localhost:5000/
第一次启动时,如果 Windows 防火墙询问是否允许访问,家用环境只勾选“专用网络”即可。电脑关机或退出 Kavita 后,其他设备也会失去连接;需要长期提供服务,可以再按官方文档使用 Scoop 与 Shawl 设置为 Windows 服务。
已经使用 Scoop 的读者,也可以这样安装:
scoop bucket add extrasscoop install kavita
首次打开 Kavita 会进入管理员账号设置。密码不要与其他网站共用,尤其是准备给家人使用或开放远程访问时。
登录后进入“设置—书库”,点击“添加书库”。书库类型会影响扫描方式和页面呈现,选错以后容易出现卷册混乱:
- 文件命名不完全遵循 Comic Vine,或希望把单行本、年刊和特刊放在一个系列里,可选“漫画(灵活)”;
Docker 用户在文件选择器中看到的是容器路径,因此电子书选择 /books,漫画选择 /comics,不要填写 NAS 上的 /volume1/...。Windows 原生安装则直接选择硬盘中的实际文件夹。
保存书库后,Kavita 会开始第一次扫描。文件较多、存储位于机械硬盘或网络共享时,首次扫描可能持续较久,首页内容会随着扫描逐步出现。
Kavita 不会简单照搬硬盘目录,而是结合文件名和内部元数据判断系列、卷和章节。最稳妥的结构,是让每个系列拥有自己的文件夹:
Books/ The Expanse/ Leviathan Wakes.epub Caliban's War.epubComics/ One Piece/ One Piece v01.cbz One Piece v02.cbz
书库根目录不能直接堆放文件,同一系列也不要拆进两个并列文件夹。漫画卷号可以使用 v1、vol 1、volume 01、卷2、册2 等写法;括号中的文字在解析系列名时通常会被移除,若需要用年份区分同名系列,官方建议使用花括号,例如 Fables {2004}。
EPUB 和 PDF 更依赖文件内部的标题、作者、系列与卷号信息,文件名只在元数据缺失时兜底。多卷电子书没有正确归组,可以先用 Calibre 修正元数据,再让 Kavita 重新扫描。与其在网页里反复手动合并,不如先把源文件整理干净。
同一局域网内,在手机或平板浏览器输入 http://服务器IP:5000/ 即可。Kavita 的阅读器会适配不同屏幕,多用户账号还能分别保存阅读进度、书签和权限。
离开家后继续访问,需要额外配置安全的远程入口。较稳妥的做法是使用带 HTTPS 的反向代理,或 Tailscale 一类的组网工具;不要只在路由器上把 5000 端口直接转发到公网。Kavita 已经出现过需要立即修补的安全漏洞,公网服务更应及时更新,并避免日常使用管理员账号。
Docker 安装在 Compose 文件所在目录运行:
docker compose pulldocker compose up -d
更新前先备份宿主机上的 Kavita 配置目录。Windows 原生安装则先停止 Kavita,把新版本解压到临时目录,删除临时目录中的 config 文件夹,再用其余新文件覆盖原安装目录;这样可以保留原来的数据库和设置。
Kavita 的核心项目采用 GPLv3 开源,日常的书库管理、网页阅读、多用户和进度记录都可以直接使用。
如果数字藏书只有几十本,普通文件夹已经够用。等到漫画按卷增长、设备变多,或者家里几个人需要各自保存阅读进度,Kavita 才真正显出价值:文件仍在自己的硬盘里,阅读入口却只剩下一个地址。
项目地址:https://github.com/Kareadita/Kavita
官方安装文档:https://wiki.kavitareader.com/getting-started
最新版本:https://github.com/Kareadita/Kavita/releases/latest