参考链接:
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.jsonlibrary_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在线书库相关推荐

  1. 在线乞讨系统 Docker一键部署

    begger乞讨网 在线乞讨 全球要饭系统 前端界面 后端界面 H2 数据库 console 运行命令 访问信息 支付平台 在线乞讨 全球要饭系统 在线乞讨全球要饭项目,支持docker一键部署,支持 ...

  2. IDEA配置Docker一键部署SpringBoot项目(企业级做法)

    Docker一键部署SpringBoot项目 前言 一.开启Linux的Docker远程访问 1.1 安装vim工具: 1.2 修改`daemon.json`的配置: 1.3 加入配置: 1.4 重新 ...

  3. 利用Docker一键部署若依前后端分离项目详细教程

    本文内容,主要介绍一下,在Linux服务器中如何利用Docker一键部署若依前后端分离项目. 若依前后端分离版本开源地址:https://gitee.com/y_project/RuoYi-Vue 目 ...

  4. docker一键部署php开发环境

    docker-phper docker 一键部署php开发者环境 项目地址 特性 真 · 一键部署 清晰配置与日志文件 数据持久化 自定义php扩展 项目结构 │ .env 系统配置 │ docker ...

  5. docker 一键部署前后端项目 ruoyi

    使用 docker 一键部署前后端项目 这里我以开源项目ruoyi 的 vue 前后端为例,想要通过 docker 一键跑起来,需要对项目做部分调整. 修改 springboot yml 的配置 ap ...

  6. linux运行dock打包的镜像,Linux部署之Docker方式部署项目

    Linux部署之Docker方式部署项目 1. 使用Docker对前端vue项目进行部署 1.1 环境准备 服务器或者虚拟机上先安装好Nginx和相关配置 docker pull nginx 拉去最新 ...

  7. 铁威马NAS教程之利用docker快速搭建个人在线书库

    这是一个基于Calibre的简单的图书管理系统,支持在线阅读.主要特点是:美观的界面.支持多用户.支持在线阅读.支持邮件推送.支持OPDS.支持一键安装,网页版初始化配置,轻松启动网站等等. 那么,如 ...

  8. docker一键部署springboot项目(三)

    上一篇,大概讲了下早docker中部署redis.tomcat(JavaWeb项目)和nginx,当我们做了那么多,终于部署好一套完整的环境之后,要是移植怎么办,这里呢,就算是docker的好处了吧, ...

  9. docker一键部署jenkins服务(一)

    一.简介 1)docker是当前流行的容器技术,通过docker技术可以实现快速的部署常见的服务. 2)jenkins是当前主流的持续集成的工具和框架(CI),通过jenkins可以实现项目的智能化构 ...

  10. oracle容器部署,Linux docker oracle 部署

    此刻,oracle的数据正在一条条地插入数据库.虽然命令行的表名还是乱码,但是oracle 客户端已经能查出数据了.反观这次 Linux docker  oracle之旅.充满了艰辛,我像一个盲人一样 ...

最新文章

  1. java命名course为名的class_Java教程之变量命名
  2. 直立车各环的调试_平衡小车调试指南(直立环 速度环)
  3. Swift 3 新特性
  4. Bag of Tricks for Efficient Text Classification(Fasttext)
  5. 【深度学习】深度学习之LSTM
  6. sql 2005 try catch
  7. hashtable和hashmap的区别?
  8. processing python模式_详解python之多进程和进程池(Processing库)
  9. 玩转Java8的 Stream 之函数式接口
  10. ES11新特性_绝对全局对象globalThis---JavaScript_ECMAScript_ES6-ES11新特性工作笔记067
  11. opencascade架构_基于OpenCASCADE的CAD平台分析报告
  12. oracle PL/SQL(procedure language/SQL)程序设计(在PL/SQL中使用SQL)
  13. JavaWeb:JSP、EL、JSTL
  14. C语言 - 判断素数
  15. 0基础学SQL-Task02 SQL基础查询与排序(共7节)
  16. Cropper详细笔记
  17. Neural Transducer, MoCha模型总结
  18. seaborn的多样化图表及图表样式设置
  19. 我的项目: UConn summer academy BI制药 缺失值处理
  20. Android Calander Event

热门文章

  1. 年龄的计算方式计算机函数,excel使用时间函数计算年龄 使用Excel函数计算年龄的三种方法...
  2. 计算机论文注释范例,论文注释的标准格式范例(范例详解论文正确书写规范)...
  3. 量子计算机 脉冲,快十万倍!飞秒激光脉冲将带来超高速量子计算机
  4. studio 3T 使用
  5. 树莓派链接USB摄像头
  6. Android jobb 工具使用详解
  7. IQ不平衡数字域校准方案
  8. Android IPC —— AIDL的原理
  9. C#可用的RSA公钥加密私钥解密以及私钥加密公钥解密,支持2048
  10. ads pspice 导入_怎么由导入ADS中的pspice的参数模型得到器件模型?