【Docker项目实战】使用Docker部署Koodo Reader电子书阅读器
@[TOC](【Docker项目实战】使用Docker部署Koodo Reader电子书阅读器)
一、Koodo Reader介绍
1.1 Koodo Reader简介
Koodo Reader
是一款现代开源电子书管理与阅读软件,支持跨平台同步与备份,兼容多种主流电子书格式,提供AI翻译、摘要、文本转语音等智能功能,适用于 Windows、macOS、Linux、Android、iOS 及 Web 端,帮助用户在任何设备上流畅阅读和管理个人图书库。
1.2 Koodo Reader主要特点
- 多格式支持:完整支持 EPUB、PDF、MOBI、AZW3、FB2、CBR/CBZ 等主流电子书格式。
- 跨平台兼容:可在 Windows、macOS、Linux、Android、iOS 以及网页端无缝使用。
- 云同步与备份:通过 OneDrive、Google Drive、MEGA、WebDAV 等云服务实现数据自动同步与备份。
- 便捷图书导入:直接从云盘或远程服务器批量导入电子书,无需本地中转。
- AI 智能翻译:集成 AI 翻译功能,实现整段或划词即时翻译,提升外文阅读体验。
- AI 词典查询:支持 AI 驱动的智能词典,提供精准释义与例句。
- AI 内容摘要:自动提取章节或全文核心内容,快速掌握书籍要点。
- 多种阅读布局:提供单栏、双栏与连续滚动三种阅读模式,适应不同书籍类型。
- 文本转语音:内置 TTS 功能,可将文字朗读出来,支持离线与在线发音引擎。
- 触屏友好设计:优化触控操作,支持手势翻页与触摸高亮,适合平板与触屏设备。
- 批量子目录导入:可一次性导入整个文件夹中的书籍,自动分类整理。
- 笔记与标注:支持添加书签、高亮、下划线及文本笔记,便于知识管理。
- 个性化排版设置:自由调整字体、字号、行距、段距、页边距与背景/文字颜色。
- 夜间模式与主题色:提供夜间阅读模式及多种主题颜色切换,保护视力。
- 富文本标注样式:支持对文本进行加粗、斜体、阴影等样式高亮标记。
- 开源免费:完全开源且永久免费,无广告、无追踪,保障用户隐私与自由。
二、本次实践规划
2.1 本地环境规划
本次实践为个人测试环境,操作系统版本为 Ubuntu 24.04.2 LTS。
hostname | IP地址 | 操作系统版本 | Docker版本 | 部署项目 |
---|---|---|---|---|
jeven01 | 192.168.3.88 | Ubuntu 24.04.2 LTS | 28.3.3 | Koodo Reader |
2.2 本次实践介绍
1.本次实践部署环境为个人测试环境,生产环境请谨慎;
2.在Docker环境下部署Koodo Reader电子书阅读器。
三、本地环境检查
3.1 检查Docker服务状态
检查Docker服务是否正常运行,确保Docker正常运行。
root@jeven:~# systemctl status docker
● docker.service - Docker Application Container Engine
Loaded: loaded (/usr/lib/systemd/system/docker.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-08-04 10:10:52 UTC; 30min ago
TriggeredBy: ● docker.socket
Docs: https://docs.docker.com
Main PID: 860 (dockerd)
Tasks: 10
Memory: 97.2M (peak: 98.4M)
CPU: 606ms
CGroup: /system.slice/docker.service
3.2 检查Docker版本
检查Docker版本
root@jeven:~# docker -v
Docker version 28.3.3, build 980b856
3.3 检查docker compose 版本
检查Docker compose版本,确保2.0以上版本。
root@jeven:~# docker -v
Docker version 28.3.3, build 980b856
四、拉取Koodo Reader镜像
下载Koodo Reader容器镜像,如下所示
docker pull ghcr.io/koodo-reader/koodo-reader:master
五、部署Koodo Reader服务
5.1 创建部署目录
- 创建部署目录
mkdir -p /data/koodo/uploads && cd /data/koodo/
- 目录授权
chmod -R 755 /data/koodo/
5.2 编辑部署文件
使用docker-cli方式部署,可参考以下命令:
docker run -d \
--name koodo-reader \
-p 8022:80 \
-p 8023:8080 \
-e ENABLE_HTTP_SERVER=false \
-e SERVER_USERNAME=admin \
-e SERVER_PASSWORD=admin123 \
-v /data/koodo/uploads:/app/uploads \
ghcr.io/koodo-reader/koodo-reader:master
在部署目录下,创建docker-compose.yaml文件,内容如下所示:
vim docker-compose.yaml
version: '3.9'
services:
koodo-reader:
image: 'ghcr.io/koodo-reader/koodo-reader:master'
volumes:
- '/data/koodo/uploads:/app/uploads'
environment:
- SERVER_PASSWORD=admin123
- SERVER_USERNAME=admin
- ENABLE_HTTP_SERVER=false
ports:
- '8023:8080'
- '8022:80'
container_name: koodo-reader
📦 Koodo Reader Docker 配置说明
🔧 环境变量(Environment Variables)
环境变量 | 默认值 | 说明 |
---|---|---|
SERVER_USERNAME |
admin |
Web 服务登录的用户名,用于访问 Koodo Reader 的 Web 界面或数据源服务。建议修改为自定义安全用户名。 |
SERVER_PASSWORD |
admin123 |
Web 服务登录的密码,配合 SERVER_USERNAME 使用。建议设置为强密码以增强安全性。 |
ENABLE_HTTP_SERVER |
false |
是否启用 HTTP 服务器(用于“数据源”功能)。设为 true 才能通过 Docker 同步书籍和数据。 |
💡 提示:若要使用“Docker 数据源”功能(即从容器中读取书籍),必须将
ENABLE_HTTP_SERVER
设置为true
,并确保用户名和密码安全。
🌐 端口映射(Ports)
容器端口 | 主机端口 | 用途说明 |
---|---|---|
8080 |
8023 |
数据源服务端口(Data Source API),用于同步书籍元数据和阅读进度。外部通过 http://host:8023 访问。 |
80 |
8022 |
Web 版阅读器端口(前端界面),用户通过浏览器访问 http://host:8022 使用 Koodo Reader 的网页版。 |
⚠️ 注意:
- 默认情况下,数据源使用 8080,Web 前端使用 80。
- 如果你想更改数据源端口(如改为
8090
),应修改为:- '8090:8080'
。- 若要切换 Web 端口,修改
- '8022:80'
中的主机端口即可(如改为8080:80
)。
📁 挂载目录(Volumes)
宿主机路径 | 容器路径 | 作用说明 |
---|---|---|
/data/koodo/uploads |
/app/uploads |
存放用户上传的电子书文件、封面、备份等数据的持久化目录。重启容器后数据不会丢失。 |
✅ 建议:
- 将
/data/koodo/uploads
替换为你实际希望存储书籍的本地路径,例如:/home/user/koodo-data:/app/uploads
。- 确保该目录有读写权限,否则可能导致导入失败或同步异常。
5.3 创建Koodo Reader容器
执行以下命令,创建Koodo Reader容器。
docker compose up -d
5.4 查看Koodo Reader容器状态
检查Koodo Reader容器运行状态,确保Koodo Reader容器正常启动。
root@jeven:/data/koodo# docker compose ps
WARN[0000] /data/koodo/docker-compose.yaml: the attribute `version` is obsolete, it will be ignored, please remove it to avoid potential confusion
NAME IMAGE COMMAND SERVICE CREATED STATUS PORTS
koodo-reader ghcr.io/koodo-reader/koodo-reader:master "/start.sh" koodo-reader 11 minutes ago Up 11 minutes 443/tcp, 2019/tcp, 443/udp, 0.0.0.0:8022->80/tcp, [::]:8022->80/tcp, 0.0.0.0:8023->8080/tcp, [::]:8023->8080/tcp
5.5 检查容器运行日志
检查容器运行日志,确保Koodo Reader服务正常运行。
docker compose logs
六、访问Koodo Reader服务
6.1 访问Koodo Reader首页
浏览器地址:
http://<个人的服务器IP>:8022
,访问Koodo Reader的初始安装页。如果无法访问,请确保宿主机的防火墙已关闭或已放行相关端口,对于云服务器还需配置相应的安全组规则。
6.2 导入图书
点击“导入图书”选项,上传本地资料,如下所示:
在线浏览图书,效果如下:
6.3 客户端下载
官方Android 版本和IOS 版本等版本下载地址如下:
七、总结
通过本次实践,我们成功使用Docker部署了Koodo Reader电子书阅读器,搭建起一个支持多格式、跨平台的本地化阅读环境。该服务运行稳定,界面简洁,开发版本已具备完善的图书管理与阅读功能,个人使用完全够用。通过自托管方式部署,既能保护隐私,又能灵活管理电子书库,是个人数字阅读的理想解决方案。
- 点赞
- 收藏
- 关注作者
评论(0)