把电子书库掌握在自己手中:使用Docker部署Koodo Reader保姆级教程
【Docker项目实战】使用Docker部署Koodo Reader电子书阅读器一、Koodo Reader介绍1.1 Koodo Reader简介1.2 Koodo Reader主要特点二、本次实践规划2.1 本地环境规划2.2 本次实践介绍三、本地环境检查3.1 检查Docker服务状态3.2 检查Docker版本3.3 检查docker compose 版本四、拉取Koodo Reader镜像五、部署Koodo Reader服务5.1 创建部署目录5.2 编辑部署文件5.3 创建Koodo Reader容器5.4 查看Koodo Reader容器状态5.5 检查容器运行日志六、访问Koodo Reader服务6.1 访问Koodo Reader首页6.2 导入图书6.3 客户端下载七、总结一、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。hostnameIP地址操作系统版本Docker版本部署项目jeven01192.168.3.88Ubuntu 24.04.2 LTS28.3.3Koodo Reader2.2 本次实践介绍1.本次实践部署环境为个人测试环境生产环境请谨慎2.在Docker环境下部署Koodo Reader电子书阅读器。三、本地环境检查3.1 检查Docker服务状态检查Docker服务是否正常运行确保Docker正常运行。rootjeven:~# systemctl status docker● docker.service - Docker Application Container Engine Loaded: loaded(/usr/lib/systemd/system/docker.service;enabled;preset: enabled)Active: active(running)since Mon2025-08-0410:10:52 UTC;30min ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID:860(dockerd)Tasks:10Memory:97.2M(peak:98.4M)CPU: 606ms CGroup: /system.slice/docker.service3.2 检查Docker版本检查Docker版本rootjeven:~# docker -vDocker version28.3.3, build 980b8563.3 检查docker compose 版本检查Docker compose版本确保2.0以上版本。rootjeven:~# docker -vDocker version28.3.3, build 980b856四、拉取Koodo Reader镜像下载Koodo Reader容器镜像如下所示dockerpull ghcr.io/koodo-reader/koodo-reader:master五、部署Koodo Reader服务5.1 创建部署目录创建部署目录mkdir-p/data/koodo/uploadscd/data/koodo/目录授权chmod-R755/data/koodo/5.2 编辑部署文件使用docker-cli方式部署可参考以下命令dockerrun-d\--namekoodo-reader\-p8022:80\-p8023:8080\-eENABLE_HTTP_SERVERfalse\-eSERVER_USERNAMEadmin\-eSERVER_PASSWORDadmin123\-v/data/koodo/uploads:/app/uploads\ghcr.io/koodo-reader/koodo-reader:master在部署目录下创建docker-compose.yaml文件内容如下所示vimdocker-compose.yamlversion:3.9services:koodo-reader:image:ghcr.io/koodo-reader/koodo-reader:mastervolumes:-/data/koodo/uploads:/app/uploadsenvironment:-SERVER_PASSWORDadmin123-SERVER_USERNAMEadmin-ENABLE_HTTP_SERVERfalseports:-8023:8080-8022:80container_name:koodo-reader Koodo Reader Docker 配置说明 环境变量Environment Variables环境变量默认值说明SERVER_USERNAMEadminWeb 服务登录的用户名用于访问 Koodo Reader 的 Web 界面或数据源服务。建议修改为自定义安全用户名。SERVER_PASSWORDadmin123Web 服务登录的密码配合SERVER_USERNAME使用。建议设置为强密码以增强安全性。ENABLE_HTTP_SERVERfalse是否启用 HTTP 服务器用于“数据源”功能。设为true才能通过 Docker 同步书籍和数据。提示若要使用“Docker 数据源”功能即从容器中读取书籍必须将ENABLE_HTTP_SERVER设置为true并确保用户名和密码安全。 端口映射Ports容器端口主机端口用途说明80808023数据源服务端口Data Source API用于同步书籍元数据和阅读进度。外部通过http://host:8023访问。808022Web 版阅读器端口前端界面用户通过浏览器访问http://host:8022使用 Koodo Reader 的网页版。⚠️注意默认情况下数据源使用 8080Web 前端使用 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容器。dockercompose up-d5.4 查看Koodo Reader容器状态检查Koodo Reader容器运行状态确保Koodo Reader容器正常启动。rootjeven:/data/koodo# docker compose psWARN[0000]/data/koodo/docker-compose.yaml: the attributeversionis 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.shkoodo-reader11minutes ago Up11minutes443/tcp,2019/tcp,443/udp,0.0.0.0:8022-80/tcp,[::]:8022-80/tcp,0.0.0.0:8023-8080/tcp,[::]:8023-8080/tcp5.5 检查容器运行日志检查容器运行日志确保Koodo Reader服务正常运行。dockercompose logs六、访问Koodo Reader服务6.1 访问Koodo Reader首页浏览器地址http://个人的服务器IP:8022访问Koodo Reader的初始安装页。如果无法访问请确保宿主机的防火墙已关闭或已放行相关端口对于云服务器还需配置相应的安全组规则。6.2 导入图书点击“导入图书”选项上传本地资料如下所示在线浏览图书效果如下6.3 客户端下载官方Android 版本和IOS 版本等版本下载地址如下Github地址https://github.com/koodo-reader/koodo-reader/releases/官网地址https://koodoreader.com/zh七、总结通过本次实践我们成功使用Docker部署了Koodo Reader电子书阅读器搭建起一个支持多格式、跨平台的本地化阅读环境。该服务运行稳定界面简洁开发版本已具备完善的图书管理与阅读功能个人使用完全够用。通过自托管方式部署既能保护隐私又能灵活管理电子书库是个人数字阅读的理想解决方案。

相关新闻

基于MCP协议与ctypes的IoT功耗计AI Agent服务端开发实战

基于MCP协议与ctypes的IoT功耗计AI Agent服务端开发实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 9:26:18 阅读更多 →
Agent-Reach:轻量级多LLM Agent命令行编排工具

Agent-Reach:轻量级多LLM Agent命令行编排工具

1. 项目概述:Agent-Reach 是什么,它解决的到底是什么问题?Agent-Reach 这个名字乍一听像某个开源框架或大模型工具链里的新成员,但其实它不是官方发布的标准库,也不是某个知名AI公司推出的SaaS产品。我第一次在GitHub上…

2026/10/7 9:26:18 阅读更多 →
计算机毕设项目 问卷调查自动生成与优化系统 问卷调查交互体验系统 在线调查问卷统计系统 做了Java、python、php、.net四个版本

计算机毕设项目 问卷调查自动生成与优化系统 问卷调查交互体验系统 在线调查问卷统计系统 做了Java、python、php、.net四个版本

💕💕作者:计算机源码社 💕💕个人简介:本人八年开发经验,擅长Java、Python、PHP、.NET、Node.js、Spark、hadoop、Android、微信小程序、爬虫、大数据、机器学习等,大家有这一块的问题…

2026/10/7 9:26:18 阅读更多 →

最新新闻

C# WinForm 数据库备份与恢复实战:SQL语句与文件操作两种方式详解

C# WinForm 数据库备份与恢复实战:SQL语句与文件操作两种方式详解

简介:这份资源是面向C# WinForm开发者的数据库备份与恢复实战Demo,基于VS2008实现,适合需要为桌面应用增加数据安全保障能力的初中级开发者参考。示例围绕两种主流方案展开:一是借助SQLDMO这一COM对象模型,通过SQLServ…

2026/10/7 10:04:45 阅读更多 →
hyperframes实战:用HTML和CLI批量生成MP4视频

hyperframes实战:用HTML和CLI批量生成MP4视频

1. 从“hyperframes”这个名字说起:它到底想解决什么问题第一次看到“hyperframes”这个词,我脑子里蹦出来的不是某个具体工具,而是一种感觉——它把“hyper”和“frames”拼在一起,暗示着某种“超高速的帧处理”或者“超轻量的帧…

2026/10/7 10:04:45 阅读更多 →
一句话生成爆款视频:WorkBuddy+Hypit本地工作流实战

一句话生成爆款视频:WorkBuddy+Hypit本地工作流实战

1. 项目概述:用一句话生成爆款视频,不是玄学,是工具链的精准缝合“一句话复刻爆款视频”——这句话乍看像短视频平台的流量话术,但落到实操层面,它背后是一套可拆解、可复现、可批量化的视频生成工作流。我从去年开始系…

2026/10/7 10:04:45 阅读更多 →
OpenShell:开源AI命令行助手,自然语言变可执行命令

OpenShell:开源AI命令行助手,自然语言变可执行命令

我几年前就开始折腾终端工具链,从 zsh 到 fish,从 oh-my-zsh 到各种 fancy prompt,折腾到最后发现一个尴尬的现实:无论怎么美化、补全、加插件,终端最核心的效率瓶颈一直没解决——人类的自然语言和机器的命令行之间&a…

2026/10/7 10:04:45 阅读更多 →
Spring AI ReactAgent阿里云生产落地实战

Spring AI ReactAgent阿里云生产落地实战

1. 这不是“第九掌”,而是Spring AI在阿里云生态落地的临界点“降SpringAI阿里第9掌-或跃在渊-ReactAgent”——这个标题乍看像武侠小说里的秘籍名,但如果你最近在Java后端、AIGC工程化或企业级AI应用开发一线摸爬滚打,大概率已经在这几个关键…

2026/10/7 10:04:45 阅读更多 →
【八个月网安课程】第九周·周三:目录扫描工具——Dirsearch、dirb、御剑参数配置与字典使用

【八个月网安课程】第九周·周三:目录扫描工具——Dirsearch、dirb、御剑参数配置与字典使用

以下是第九周周三学习内容的详细展开。今天你将掌握渗透测试信息收集中最基础也最关键的一环——目录扫描。通过使用 Dirsearch、dirb、御剑等工具,你能快速发现目标站点上隐藏的后台、备份文件、配置文件等敏感路径,为后续漏洞利用铺路。第九周周三&…

2026/10/7 10:03:45 阅读更多 →

日新闻

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

ROS2机械臂仿真与运动控制:从URDF建模到Gazebo实战全解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:01:58 阅读更多 →
用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

用浏览器直接改ESP32的WiFi密码:NVS键值配置工具设计与实现

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →
芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

芯片封装缺陷检测:扫描声学显微镜(SAT)原理与实操指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 1:02:00 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 7:15:40 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 5:29:09 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/7 9:29:10 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 8:21:32 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 4:21:51 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 1:18:13 阅读更多 →