calibre部署指南:docker一键部署calibre在线书库
参考链接:
https://github.com/lyy289065406/calibre-docker
calibre-docker
docker 一键部署 calibre 在线书库
概要
你是否面临以下困扰:
- 想翻看曾经看过的某本小说的时候,网上已经找不到了
- 即使网上找到了,因为版权原因无法在线看、甚至无法下载
- 可以在线看,但是要收费
- 连载小说几个月才出一册,囤了一年后却不知道自己看到哪了
- 在家看小说看了一半突然要出门,打算在路上看,于是不得不把小说发送到手机
- …
其实只需要搭建一个私人书库,这些问题就迎刃而解了:
- Calibre: 一款强大且易用的电子书本地管理工具,可以在 Windows、macOS 和 Linux 平台搭建个人私人的电子书书库。
- Calibre-web: Calibre 的 CMS 界面,用于读取和下载 Calibre 数据库中的电子书,同时它支持 OPDS 协议
- OPDS: 全称是 Open Publication Distribution System 开放式出版发布系统,是基于 Atom 和 Http 的一种目录格式。OPDS 主要实现 2 个功能:(1) 让电子出版物被发现,可以使用简单的搜索和一些其他的浏览器技术;(2) 让用户下载电子出版物,直接免费下载或进行出售
项目说明
本仓库包含三个 docker 镜像:
镜像 | 用途 | 服务端口 | 端口说明 |
---|---|---|---|
calibre | calibre 后端 | 8080 | calibre 管理页面 |
calibre-web | calibre 前端 | 8083 | CMS 页面,同时提供 OPDS 服务 |
nginx | 反向代理 calibre 服务 | 80 | 项目说明页面 |
目录结构说明
calibre-docker
├── books ....................... [缓存目录:导入电子书到 calibre 时,仅可以选择在该目录下的电子书]
├── data ........................ [存档目录:calibre 的数据库(包括电子书本身),用于数据迁移]
├── calibre
│ ├── cms
│ │ └── Dockerfile .......... [calibre 前端镜像构建脚本]
│ └── mgr
│ └── Dockerfile .......... [calibre 后端镜像构建脚本]
├── nginx
│ ├── etc
│ │ └── calibre_site.conf ... [代理服务配置]
│ └── html .................... [代理服务主页]
├── index.html .................. [Github Paget:自动跳转到代理服务主页]
├── docker-compose.yml .......... [calibre 镜像构建脚本]
├── run.sh ...................... [calibre 服务一键启动脚本]
├── stop.sh ..................... [calibre 服务一键停止脚本]
├── imgs ........................ [README 插图目录]
└── README.md ................... [本仓库说明文档]
部署步骤
1. 项目构建
- 宿主机安装 docker、docker-compose
- 宿主机安全组/防火墙(iptables/firewall)放行这些端口的入口流量: 80、8080、8081、8083
- 下载仓库:
git clone -b main --single-branch https://github.com/lyy289065406/calibre-docker /usr/local/calibre-docker
(只下载 main 主分支即可) - 打开仓库目录:
cd /usr/local/calibre-docker
- 构建镜像并运行:
./run.sh -u admin -p admin123
(完全启动约需要 2 分钟,书库越大启动越慢)
构建时设置的是 calibre 后端管理页面的账密,calibre-web 前端账密只能在 CMS 上修改。
2. 配置 calibre
- 登录后端管理页面:
http://${vps-ip}/mgr/
(或http://${vps-ip}:8080
) - 默认登录账密:
admin / admin123
- 参考下图,根据向导进行初始化设置(必须记得配置路径为
/config/Calibre Library
,该路径用于存储 calibre 的配置库,默认挂载到宿主机的data
目录)
3. 导入本地电子书
先把电子书上传到宿主机的 books
目录,然后登录后台管理页面,点击【Add books】,在【/books】目录找到所上传的电子书,点击【Open】即可导入到 calibre 数据库。
可以把个人电子书存储到另一个 Repo(如 ebooks-library),使用时再通过 git clone 拉取到
books
目录
4. 配置 calibre-web
- 登录前端 CMS 页面:
http://${vps-ip}/cms/
(或http://${vps-ip}:8083
) - 默认登录账密:
admin / admin123
- 根据向导设置 calibre 配置库路径,路径就是前面的
/config/Calibre Library
- 成功登录后即可看到在后端管理页面导入的电子书
点击右上角的 【admin】 即可修改用户密码
阅读设置
1. PC 阅读
默认情况下 admin 用户是无法在线阅读电子书的,需要先授权阅读权限:
点击右上角的【管理权限】,编辑【admin】用户,勾选【允许在线阅读】即可。
之后点击任意一本电子书,会多出一个【在线阅读】按钮:
2. 手机阅读
calibre-web 提供了 OPDS 协议的服务地址:http://${vps-ip}/cms/opds/
(或 http://${vps-ip}:8083/opds/
)。
换言之所有支持 OPDS 协议的 APP 都可以对接到 calibre-web 获取书库中的电子书,例如这些 APP :
APP | 适用设备/系统 | 说明 |
---|---|---|
FullReader | Android | 界面清新但是有广告,而且汉化不完全,有少量韩文 |
AIReader | Android | 没有广告但是外观不好看 |
kybook3 | iOS | 目前已知 iOS 唯一支持 OPDS 的 APP |
kindle | kindle | 仅在 kindle 设备上支持 OPDS,在 Android/iOS 上不支持 |
以 FullReader 为例:点击【网络图书馆】->【添加OPDS目录】,填写 calibre 的 OPDS 服务地址和 BasicAuth 账号密码即可。
FAQ
Q1. 迁移 data 目录的数据库后无法运行 CMS 服务
理论上 data 目录挂载了 calibre 运行所需的全部数据(包括电子书本身),只要完整迁移到任何设备就可以直接运行。
但若 calibre 非正常停止过,就会导致 calibre-web (即 CMS 服务)无法运行。
解决方法也很简单:
- 执行
stop.sh
脚本停止 calibre 服务 - 查看
data/.config/calibre/gui.json
的library_usage_stats
状态值是否为1
,若不是则修改为1
- 执行
run.sh
脚本重新启动 calibre 服务,此时 CMS 服务应该可以正常启动了
Q2. 项目仓库太大无法下载到本地
本仓库包含 main 和 produce 两个分支,其中:
- main: 干净分支,纯粹用于构建私人书库
- produce: 我的生产环境分支,归档了我的个人书库数据,而且会越来越大
因此 produce 分支是不需要下载的,只下载 main 主分支即可:
git clone -b main --single-branch https://github.com/lyy289065406/calibre-docker
calibre部署指南:docker一键部署calibre在线书库相关推荐
- 在线乞讨系统 Docker一键部署
begger乞讨网 在线乞讨 全球要饭系统 前端界面 后端界面 H2 数据库 console 运行命令 访问信息 支付平台 在线乞讨 全球要饭系统 在线乞讨全球要饭项目,支持docker一键部署,支持 ...
- IDEA配置Docker一键部署SpringBoot项目(企业级做法)
Docker一键部署SpringBoot项目 前言 一.开启Linux的Docker远程访问 1.1 安装vim工具: 1.2 修改`daemon.json`的配置: 1.3 加入配置: 1.4 重新 ...
- 利用Docker一键部署若依前后端分离项目详细教程
本文内容,主要介绍一下,在Linux服务器中如何利用Docker一键部署若依前后端分离项目. 若依前后端分离版本开源地址:https://gitee.com/y_project/RuoYi-Vue 目 ...
- docker一键部署php开发环境
docker-phper docker 一键部署php开发者环境 项目地址 特性 真 · 一键部署 清晰配置与日志文件 数据持久化 自定义php扩展 项目结构 │ .env 系统配置 │ docker ...
- docker 一键部署前后端项目 ruoyi
使用 docker 一键部署前后端项目 这里我以开源项目ruoyi 的 vue 前后端为例,想要通过 docker 一键跑起来,需要对项目做部分调整. 修改 springboot yml 的配置 ap ...
- linux运行dock打包的镜像,Linux部署之Docker方式部署项目
Linux部署之Docker方式部署项目 1. 使用Docker对前端vue项目进行部署 1.1 环境准备 服务器或者虚拟机上先安装好Nginx和相关配置 docker pull nginx 拉去最新 ...
- 铁威马NAS教程之利用docker快速搭建个人在线书库
这是一个基于Calibre的简单的图书管理系统,支持在线阅读.主要特点是:美观的界面.支持多用户.支持在线阅读.支持邮件推送.支持OPDS.支持一键安装,网页版初始化配置,轻松启动网站等等. 那么,如 ...
- docker一键部署springboot项目(三)
上一篇,大概讲了下早docker中部署redis.tomcat(JavaWeb项目)和nginx,当我们做了那么多,终于部署好一套完整的环境之后,要是移植怎么办,这里呢,就算是docker的好处了吧, ...
- docker一键部署jenkins服务(一)
一.简介 1)docker是当前流行的容器技术,通过docker技术可以实现快速的部署常见的服务. 2)jenkins是当前主流的持续集成的工具和框架(CI),通过jenkins可以实现项目的智能化构 ...
- oracle容器部署,Linux docker oracle 部署
此刻,oracle的数据正在一条条地插入数据库.虽然命令行的表名还是乱码,但是oracle 客户端已经能查出数据了.反观这次 Linux docker oracle之旅.充满了艰辛,我像一个盲人一样 ...
最新文章
- java命名course为名的class_Java教程之变量命名
- 直立车各环的调试_平衡小车调试指南(直立环 速度环)
- Swift 3 新特性
- Bag of Tricks for Efficient Text Classification(Fasttext)
- 【深度学习】深度学习之LSTM
- sql 2005 try catch
- hashtable和hashmap的区别?
- processing python模式_详解python之多进程和进程池(Processing库)
- 玩转Java8的 Stream 之函数式接口
- ES11新特性_绝对全局对象globalThis---JavaScript_ECMAScript_ES6-ES11新特性工作笔记067
- opencascade架构_基于OpenCASCADE的CAD平台分析报告
- oracle PL/SQL(procedure language/SQL)程序设计(在PL/SQL中使用SQL)
- JavaWeb:JSP、EL、JSTL
- C语言 - 判断素数
- 0基础学SQL-Task02 SQL基础查询与排序(共7节)
- Cropper详细笔记
- Neural Transducer, MoCha模型总结
- seaborn的多样化图表及图表样式设置
- 我的项目: UConn summer academy BI制药 缺失值处理
- Android Calander Event
热门文章
- 年龄的计算方式计算机函数,excel使用时间函数计算年龄 使用Excel函数计算年龄的三种方法...
- 计算机论文注释范例,论文注释的标准格式范例(范例详解论文正确书写规范)...
- 量子计算机 脉冲,快十万倍!飞秒激光脉冲将带来超高速量子计算机
- studio 3T 使用
- 树莓派链接USB摄像头
- Android jobb 工具使用详解
- IQ不平衡数字域校准方案
- Android IPC —— AIDL的原理
- C#可用的RSA公钥加密私钥解密以及私钥加密公钥解密,支持2048
- ads pspice 导入_怎么由导入ADS中的pspice的参数模型得到器件模型?