本地搭建Koodo Reader书库结合内网穿透打造属于自己的移动图书馆
文章目录
- 前言
- 1. Koodo Reader 功能特点
- 1.1 开源免费
- 1.2 支持众多格式
- 1.3 多平台兼容
- 1.4 多端数据备份同步
- 1.5 多功能阅读体验
- 1.6 界面简洁直观
- 2. Koodo Reader安装流程
- 2.1 安装Git
- 2.2 安装Node.js
- 2.3 下载koodo reader
- 3. 安装Cpolar内网穿透
- 3.1 配置公网地址
- 3.2 配置固定公网地址
前言
当你正在异国他乡的咖啡馆里享受悠闲时光时,突然灵感如泉水般涌现,急需查阅一本珍藏的电子书。如果这时你能瞬间传送到家中的电脑前,打开那本书,是不是觉得特别酷炫?别急,这可不是科幻电影里的桥段!今天就来教你一招,用Koodo Reader和Cpolar内网穿透工具,在Windows电脑上轻松搭建一个24小时在线的私人图书馆。无论你身在何处,都能随时享受阅读的乐趣,让灵感不再错过任何一个闪现的瞬间!
1. Koodo Reader 功能特点
1.1 开源免费
Koodo Reader软件在Github上开源,拥有13.6K的star数,免费又好用
1.2 支持众多格式
Koodo Reader支持常见的电子书格式,包括EPUB、PDF、MOBI等十几种格式,满足用户在不同平台和设备上的阅读需求。你可以从网上获取到的电子书采用Koodo Reader进行浏览和阅读,无论您是想读小说、教材、论文还是漫画,Koodo Reader都能满足您的需求,再也不用担心格式兼容问题。
1.3 多平台兼容
Koodo Reader在多个操作系统上运行良好。它支持Windows 7及以上的32位和64位系统,macOS 10.11及以上的x64和ARM架构系统,以及所有的Linux发行版。此外,您还可以选择使用Web网页版来阅读电子书。无论您使用的是哪种操作系统,Koodo Reader都能为您提供出色的阅读体验。
1.4 多端数据备份同步
Koodo Reader非常注重数据的安全性和同步性。您可以通过自定义数据存储位置的方式,借助OneDrive、iCloud、Dropbox、百度网盘等云服务,实现数据在多个端之间的同步。这样,无论您在哪个设备上阅读,您的阅读进度、笔记和批注都能够随时随地同步。
1.5 多功能阅读体验
Koodo Reader内置了笔记、高亮、书签和翻译等功能,助力您进行高效的书籍阅读和学习。您可以轻松地进行标注和批注,并将关键内容快速保存和导出。这些功能将帮助您更好地理解和消化所阅读的内容。
Koodo Reader还支持文字排版,支持调整字体大小、字体系列、行距、段落间距、背景颜色、文本颜色、边距和亮度等功能。使长篇文档在移动设备上也能保持清晰的排版,避免了频繁的滚动和缩放。
1.6 界面简洁直观
Koodo Reader 遵循极简主义设计原则,通过精心打磨的UI界面和交互方式让您享受沉浸式无干扰的阅读体验
2. Koodo Reader安装流程
2.1 安装Git
首先从github上克隆koodo reader(如果没有安装git的话,进入git官网进行下载windows版本 https://git-scm.com/downloads)Git下载网址:Git (git-scm.com)
以下操作可以一直按Next默认安装,如有需要改动可以自行更改。
Git安装成功。
2.2 安装Node.js
node.js官网地址:https://nodejs.org/zh-cn
以下操作可以一直按Next默认安装,如有需要改动可以自行更改。
Node安装完成。
2.3 下载koodo reader
回到主桌面同时按下Win键和R键,输入cmd出现黑色窗口
输入下方命令安装yarn
npm install -g yarn
执行下方命令
yarn
执行下方代码,安装koodo reader
git clone https://github.com/koodo-reader/koodo-reader.git
执行下方命令进入项目目录
cd koodo-reader
执行下方命令
yarn
执行下方命令后稍等几秒钟,自动跳到koodo reader web页面,然后就可以在你的图书库中进行下载图书看书啦!
yarn start
目前我们在本地成功部署了Koodo reader,但是如果我们想实现不在局域网下,在公网能够远程访问Koodo reader的话,我们就可以使用Cpolar内网穿透来实现公网随时随地访问了!免去了复杂得本地部署过程,只需要一个公网地址直接就可以访问。
3. 安装Cpolar内网穿透
下面是安装cpolar步骤:
Cpolar官网地址: https://www.cpolar.com
点击进入cpolar官网,点击免费使用
注册一个账号,并下载最新版本的Cpolar
登录成功后,点击下载Cpolar到本地并安装(一路默认安装即可)本教程选择下载Windows版本。
Cpolar安装成功后,在浏览器上访问http://localhost:9200,使用cpolar账号登录,登录后即可看到Cpolar web 配置界面,结下来在web 管理界面配置即可。
接下来配置一下koodo reader的公网地址,
3.1 配置公网地址
登录后,点击左侧仪表盘的隧道管理——创建隧道,
创建一个koodo reader的公网http地址隧道
-
隧道名称:可自定义命名,注意不要与已有的隧道名称重复
-
协议:选择http
-
本地地址:3000 (本地访问的地址)
-
域名类型:免费选择随机域名
-
地区:选择China VIP
隧道创建成功后,点击左侧的状态——在线隧道列表,查看所生成的公网访问地址,有两种访问方式,一种是http 和https。
使用上面的Cpolar生成的任意一个公网地址,在手机或任意设备的浏览器进行登录访问,即可成功看到 Koodo Reader界面。使用了Cpolar的公网域名,无需自己购买云服务器,即可到公网访问Koodo reader看自己下载好的书了!
小结
如果我们需要经常远程访问Koodo图书库或者其他本地部署的服务,由于刚才创建的是随机的地址,24小时会发生变化。而且它的网址是由随机字符生成,不容易记忆。如果想把域名变成固定的二级子域名,并且不想每次都重新配置新的公网地址来访问Koodo reader,我们可以选择创建一个固定的http地址来解决这个问题。
3.2 配置固定公网地址
我们接下来为其配置固定的HTTP端口地址,该地址不会变化,方便分享给别人长期查看你的图书库,而无需每天重复修改服务器地址。
登录cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留,保留成功后复制保留的二级子域名名称。
保留成功后复制保留成功的二级子域名的名称。
返回登录Cpolar web UI管理界面,点击左侧仪表盘的隧道管理——隧道列表,找到所要配置的隧道,点击右侧的编辑。
修改隧道信息,将保留成功的二级子域名配置到隧道中
- 域名类型:选择二级子域名
- Sub Domain:填写保留成功的二级子域名
点击更新
(注意,点击一次更新即可,不需要重复提交)
更新完成后,打开在线隧道列表,此时可以看到公网地址已经发生变化,地址名称也变成了固定的二级子域名名称的域名啦。
最后,我们使用固定的公网https地址在任何浏览器打开访问,可以看到访问Koodo reader成功了这样一个固定且永久不变的公网地址就设置好了。
通过在Windows电脑上安装Koodo Reader,并巧妙运用Cpolar内网穿透技术,你的私人书库瞬间变身成为随身携带的移动图书馆!无论是工作学习还是休闲娱乐,再也不用担心找不到那本心爱的书籍了。赶紧试试吧,让你的阅读生活更加丰富多彩,从此告别‘书荒’的烦恼,享受随时随地的书香世界!
相关文章:
本地搭建Koodo Reader书库结合内网穿透打造属于自己的移动图书馆
文章目录 前言1. Koodo Reader 功能特点1.1 开源免费1.2 支持众多格式1.3 多平台兼容1.4 多端数据备份同步1.5 多功能阅读体验1.6 界面简洁直观 2. Koodo Reader安装流程2.1 安装Git2.2 安装Node.js2.3 下载koodo reader 3. 安装Cpolar内网穿透3.1 配置公网地址3.2 配置固定公网…...
Mybatis是如何进行分页的?与Mybatis-plus的区别在哪里?
MyBatis 的分页方式及其与 MyBatis-Plus 的区别可以总结如下: MyBatis 的分页实现 逻辑分页(内存分页) 使用 RowBounds 对象,在查询时传入参数,MyBatis 会在结果集返回后,在内存中手动截取指定范围的数据。…...
MySQL 主从同步配置及操作步骤
主从同步是一种常见的数据复制技术,它通过将主库的数据同步到一个或多个从数据库中来保证数据的一致性。从库通过读取主库的 binlog 文件来获取更新并进行同步。 主从复制的方式有三种: 异步复制:不需要从库确认,主库提交数据后…...
【软考-架构】备战2025软考
新老教材对比 科目1(信息系统综合)考点详解 科目2(系统架构设计案例)考点详解 科目3(系统架构设计论文)考点详解 趋于越来越具体 学习方法推荐 第一阶段 – 基础知识阶段 建议一个半月; 先过…...
基于Spark的电商供应链系统的设计与实现
目录 1.研究背景与意义 2、国内外研究现状 3、相关理论与技术 (一)分布式计算系统Spark (二)数据仓库Hive (三)读取服务器本地磁盘的日志数据Flume (四)分布式消息队列Kafka …...
DaoCloud 亮相 2025 GDC丨开源赋能 AI 更多可能
2025 年 2 月 21 日至 23 日,上海徐汇西岸,2025 全球开发者先锋大会以 “模塑全球,无限可能” 的主题,围绕云计算、机器人、元宇宙等多元领域,探讨前沿技术创新、应用场景拓展和产业生态赋能,各类专业论坛、…...
基于coze+微信小程序实现图片上传并利用大模型解析
项目截图: 实现代码(直接搬去可用) 前提:需要填写你的oss配置coze的api授权配置!!! <template><view class"container"><!-- 高斯模糊背景 --><view class&qu…...
CSS 对齐:深入理解与技巧实践
CSS 对齐:深入理解与技巧实践 引言 在网页设计中,元素的对齐是至关重要的。一个页面中元素的对齐方式直接影响到页面的美观度和用户体验。CSS 提供了丰富的对齐属性,使得开发者可以轻松实现各种对齐效果。本文将深入探讨 CSS 对齐的原理、方法和技巧,帮助开发者更好地掌握…...
Dify部署
Dify部署 安装docker 要在CentOS 7上部署Docker社区版,您可以按照以下步骤进行操作: 卸载旧版本的Docker(如果有): yum remove docker docker-client docker-client-latest docker-common docker-latest docker-l…...
MyBatis-Plus 对比传统 MyBatis 的优势
在现代的 Java 开发中,MyBatis 和 MyBatis-Plus 都是流行的持久层框架。MyBatis 是一个轻量级的 ORM 框架,帮助开发者通过映射文件或注解方式来执行 SQL 操作。MyBatis-Plus 是在 MyBatis 基础上进行的增强,提供了许多简化和优化功能…...
被AWS反撸了,试一下能否申请退还
经过来回几轮沟通,已扣的42美金将退回31美金,未扣的16美金将免除扣款。 31美金的具体计算方法我不知道,对方的回复如下(是了,AWS的客服是用中文回复的): 我理解此结果可能不完全符合您所期望的…...
基于Spring Boot的产业园区智慧公寓管理系统设计与实现(LW+源码+讲解)
专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…...
MySQL 事务笔记
MySQL 事务笔记 目录 事务简介事务操作事务四大特性并发事务问题事务隔离级别总结 事务简介 事务(Transaction)是数据库操作的逻辑单元,由一组不可分割的SQL操作组成。主要用于保证: 多个操作的原子性(要么全部成功…...
SpringBoot 使用 spring.profiles.active 来区分不同环境配置
很多时候,我们项目在开发环境和生产环境的配置是不一样的,例如,数据库配置,在开发的时候,我们一般用测试数据库,而在生产环境,我们要用生产数据库,这时候,我们可以利用 p…...
# C# 中堆(Heap)与栈(Stack)的区别
在 C# 中,堆和栈是两种不同的内存分配机制,它们在存储位置、生命周期、性能和用途上存在显著差异。理解堆和栈的区别对于优化代码性能和内存管理至关重要。 1. 栈(Stack) 1.1 定义 栈是一种后进先出(LIFO࿰…...
IP---网络类型
这只是IP的其中一块内容-网络类型,IP还有更多内容可以查看IP专栏,前一章内容为访问服务器流程,可通过以下路径查看IP----访问服务器流程-CSDN博客,欢迎指正 2.网络类型 网络类型---根据二层(数据链路层)所…...
jQuery UI API 文档
jQuery UI API 文档 引言 jQuery UI 是一个基于 jQuery 的用户界面库,它提供了丰富的交互式组件和效果,使得网页开发变得更加简单和高效。本文档旨在为开发者提供全面的 jQuery UI API 信息,帮助您更好地理解和应用 jQuery UI。 jQuery UI 简介 什么是 jQuery UI? jQu…...
rust 前端npm依赖工具rsup升级日志
rsup是使用 rust 编写的一个前端 npm 依赖包管理工具,可以获取到项目中依赖包的最新版本信息,并通过 web 服务的形式提供查看、升级操作等一一系列操作。 在前一篇文章中,记录初始的功能设计,自己的想法实现过程。在自己的使用过…...
J-LangChain,用Java实现LangChain编排!轻松加载PDF、切分文档、向量化存储,再到智能问答
Java如何玩转大模型编排、RAG、Agent??? 在自然语言处理(NLP)的浪潮中,LangChain作为一种强大的模型编排框架,已经在Python社区中广受欢迎。然而,对于Java开发者来说,能…...
文档识别-C#中英文文档识别接口-PDF文件内容识别API
文档识别接口可满足用户在数字化转型过程中对文档处理的高效、准确需求。翔云文档识别接口以成熟的文字识别技术、自然语言处理技术、图像识别技术为核心,能够将文档上的非可编辑文本转化为可编辑的数据,从而提升信息处理的速度与实现文档数字化管理的准…...
什么是元数据管理?为什么数据治理的第一步是整理元数据?
什么是元数据管理? 以下是关于元数据管理、数据治理从元数据开始的原因以及数据治理逻辑的简单介绍: 元数据管理 元数据是关于数据的数据,它主要描述了数据的定义、来源、关系、质量、用途等信息。比如在一个学生成绩管理系统中ÿ…...
QSplashScreen --软件启动前的交互
目录 QSplashScreen 类介绍 使用方式 项目中使用 THPrinterSplashScreen头文件 THPrinterSplashScreen实现代码 使用代码 使用效果 QSplashScreen 类介绍 QSplashScreen 是 Qt 中的一个类,用于显示启动画面。它通常在应用程序启动时显示,以向用户显…...
react使用react-quill 富文本插件、加入handlers富文本不显示解决办法
可以调整图片大小 quill-image-resize-module-react 加入插件quill-image-resize-module-reactQuill.register("modules/imageResize", ImageResize); // 注册图片缩放富文本配置中加入如下const quildConfig {toolbar: {container: [["bold", "ital…...
基于vue框架的的银生中学图书管理系统c7b4q(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
系统程序文件列表 项目功能:用户,书籍分类,书籍信息,书籍借阅,书籍归还 开题报告内容 基于Vue框架的的银生中学图书管理系统开题报告 一、项目背景与意义 随着信息技术的飞速发展和教育现代化进程的加快,学校图书管理面临着前所未有的挑战与机遇。银…...
2025年02月27日Github流行趋势
项目名称:aibrix 项目地址url:https://github.com/vllm-project/aibrix 项目语言:Jupyter Notebook 历史star数:2568 今日star数:554 项目维护者:Jeffwan, varungup90, brosoul, nwangfw, kr11 项目简介&am…...
去耦电容的作用详解
在霍尔元件的实际应用过程中,经常会用到去耦电容。去耦电容是电路中装设在元件的电源端的电容,其作用详解如下: 一、基本概念 去耦电容,也称退耦电容,是把输出信号的干扰作为滤除对象。它通常安装在集成电路…...
Vue.js响应式基础
响应式基础 API 参考 本页和后面很多页面中都分别包含了选项式 API 和组合式 API 的示例代码。现在你选择的是 组合式 API。你可以使用左侧侧边栏顶部的“API 风格偏好”开关在 API 风格之间切换。 声明响应式状态 ref() 在组合式 API 中,推荐使用 ref() 函数来声明…...
解决Deepseek“服务器繁忙,请稍后再试”问题,基于硅基流动和chatbox的解决方案
文章目录 前言操作步骤步骤1:注册账号步骤2:在线体验步骤3:获取API密钥步骤4:安装chatbox步骤5:chatbox设置 价格方面 前言 最近在使用DeepSeek时,开启深度思考功能后,频繁遇到“服务器繁忙&am…...
Java SSE流式数据前后端实现
#Java SSE流式数据前后端实现 Java后端实现 RestController public class SSEController {GetMapping(value "/sse/stream", produces MediaType.TEXT_EVENT_STREAM_VALUE)public SseEmitter streamSse() throws InterruptedException, IOException {SseEmitter …...
DeepSeek开源周Day4:三连发!突破 AI 训练瓶颈的立体解决方案,并行计算三剑客DualPipe、EPLB与Profile-data
项目地址: https://github.com/deepseek-ai/DualPipehttps://github.com/deepseek-ai/eplbhttps://github.com/deepseek-ai/profile-data 开源日历:2025-02-24起 每日9AM(北京时间)更新,持续五天 (4/5)! 一、背景概述 …...
3-1 WPS JS宏工作簿的新建与保存(批量新建工作簿)学习笔记
************************************************************************************************************** 点击进入 -我要自学网-国内领先的专业视频教程学习网站 *******************************************************************************************…...
esp8266 rtos sdk开发环境搭建
1. 安装必要的工具 1.1 安装 Git Git 用于从远程仓库克隆代码,你可以从Git 官方网站下载 Windows 版本的安装程序。安装过程中可保持默认设置,安装完成后,在命令提示符(CMD)或 PowerShell 中输入git --version&#…...
Pycharm使用matplotlib出现的问题(1、不能弹出图表 2、图表标题中文不显示)
Pycharm使用matplotlib出现的问题 问题1:Pycharm调试时出现:AttributeError: module backend_interagg has no attribute FigureCanvas. Did you mean: FigureCanvasAgg? 排查原因:可能是由于matplotlib后端设置不正确或与运行环境不兼容引…...
【MySql】EXPLAIN执行计划全解析:15个字段深度解读与调优指南
文章目录 一、执行计划核心字段总览二、关键字段深度拆解1. type(访问类型)——查询性能的晴雨表典型场景分析: 2. key_len(索引使用长度)——索引利用率的检测仪计算示例: 3. Extra(附加信息&a…...
学习路程八 langchin核心组件 Models补充 I/O和 Redis Cache
前序 之前了解了Models,Prompt,但有些资料又把这块与输出合称为模型输入输出(Model I/O):这是与各种大语言模型进行交互的基本组件。它允许开发者管理提示(prompt),通过通用接口调…...
Everything——你的文件搜索效率革命
Everything 是一款由 voidtools 开发的文件搜索工具,专为 Windows 系统设计。它以极快的速度和高效的搜索能力著称,能够基于文件名实时定位文件和目录。以下是其主要特点和功能概述: 1. 核心特点 快速搜索:Everything 使用 NTFS…...
【一起学Rust | Tauri2.0框架】单实例应用程序的深入解析:零漏洞实现与优化实战
文章目录 前言一、 单实例应用的意义二、 实现单实例应用的方法1 Windows下的实现1.1 创建命名Mutex1.2 在Tauri应用中集成Mutex检查 2 macOS下的实现2.1 获取Bundle Identifier2.2 检查是否已经有实例在运行 3 Linux下的实现3.1 获取进程列表3.2 检查是否已经有实例在运行 4 在…...
React + TypeScript 数据血缘分析实战
React TypeScript 数据血缘分析实战 目录 技术选型与架构设计核心概念解析基础场景实现 场景一:visx库基础血缘图实现场景二:React-Lineage-DAG企业级方案场景三:动态数据源与复杂交互 TypeScript类型系统深度优化性能优化与工程化实践开源…...
解决 ERROR 1130 (HY000): Host is not allowed to connect to this MySQL server
当使用 MySQL 时,您可能会遇到错误信息“ERROR 1130 (HY000): Host ‘hostname’is not allowed to connect to this MySQL server”这是 MySQL 用于防止未经授权的访问的标准安全特性。实际上,服务器还没有配置为接受来自相关主机的连接。 Common Caus…...
4. 示例:创建带约束的随机地址生成器(范围0x1000-0xFFFF)
文章目录 前言代码示例:运行方法:查看结果:关键功能说明:扩展功能建议: 前言 以下是一个完整的SystemVerilog测试平台示例,包含约束随机地址生成、日志输出和波形生成功能: 代码示例࿱…...
Dashboard-frps
通过浏览器查看 frp的状态以及代理统计信息展示。 注:Dashboard 尚未针对大量的 proxy 数据展示做优化,如果出现 Dashboard 访问较慢的情况,请不要启用此功能。 需要在 frps.ini中指定 dashboard服务使用的端口,即可开启此功能&…...
鸿蒙兼容Mapbox地图应用测试
鸿蒙Next已经发布一段时间了,很多之前的移动端地图应用,纷纷都要求适配鸿蒙Next。作为开发者都清楚,所谓的适配其实都是重新开发,鸿蒙的开发语言和纯前端的Javascript不同,也可以Android原始开发的语言不同。鸿蒙自带的…...
PyCharm 的使用 + PyCharm快捷键 + 切换中文界面
2025 - 02 - 27 - 第 62 篇 Author: 郑龙浩 / 仟濹 【PyCharm的使用】 文章目录 如何使用Pycharm1 新建工程,新建 .py 文件,运行2 常用快捷键3 其他快捷键 - DeepSeek 总结如下**代码编辑****导航与定位****查找与替换****运行与调试****代码重构****其…...
Ubuntu下QT安装和调试的常见问题(一)__could_not_dertermine_which_make
前言 Ubuntu下QT的安装会有一些奇怪的问题出现,并没有像Windows下Visual Studio的安装那么直接就可以使用那么方便,本文就“make”挂接的问题,给出一些小的感受。 1、问题的提出 很多问题的解答,AI无论是上文心一言,还…...
JAVA面试_进阶部分_Linux面试题
Linux概述 1. 什么是Linux Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix 的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工 具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网 络为核心的设…...
【深度学习】强化学习(RL)-A3C(Asynchronous Advantage Actor-Critic)
A3C(Asynchronous Advantage Actor-Critic)详解 A3C(Asynchronous Advantage Actor-Critic) 是 深度强化学习(Deep Reinforcement Learning, DRL) 领域的重要算法,由 DeepMind 在 2016 年提出。…...
DeepSeek-v1到DeepSeek-v3再到DeepSeek-R1的变迁和进化史,创新点,值得大家学习,DeepSeek系列干货
DeepSeek-v1 1.高质量的数据构建:2T tokens中英文数据集(数据去重、过滤和重混); 2. 模型架构参考LlaMa; 3.数据并行、张量并行、超参数设置等: 衍生:DeepSeek-Coder、deepseek MoE、DeepSe…...
基于多层感知机(MLP)实现MNIST手写体识别
实现步骤 下载数据集处理好数据集确定好模型(初始化模型参数等等)确定优化函数(损失函数也称为目标函数)和优化方法(一般选用随机梯度下降 SDG )进行模型的训练进行模型的评估 import torch import torch…...
windows下安装pyenv+virtualenv+virtualenvwrapper
1、下载pyenv 进入git官网,打包下载zip到本地 2、解压到安装目录 解压下载好的pyenv-win-master.zip到自己的安装目录,如D:\Program Files 3、配置环境变量 右击桌面 此电脑 --> 属性 --> 高端系统设置 --> 环境变量 --> 新建系统变量…...
C# 确保程序只有一个实例运行
常规需求 C#程序只能运行一次,不能多开: using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using System.Threading; using System.Runtime.InteropServices; using System.Security.Principal; namespace BallLocation {sta…...