【Calibre-Web】Calibre-Web服务器安装详细步骤(个人搭建自用的电子书网站,docker-compose安装)
文章目录
- 一、Calibre-Web和Calibre的区别是什么?使用场景分别是什么?
- 二、服务器安装docker和docker-compose
- 三、服务器安装Calibre-Web步骤
- 1、安装完成后的目录结构
- 2、安装步骤
- 3、初始配置
- 4、启动上传
- 四、安装Calibre
- 五、docker-compose常用命令
- 六、客户端
- 1、ios在appstore搜“kybook”
- 2、安卓下载 静读天下app(注意不要在应用商店下载,貌似googleplay有)
最近想用自己的迷你主机搭建一个个人图书馆,方便自己看小说和教学类的电子书。
所以在服务器上安装了Calibre-Web,在自己的笔记本和台式机上安装了Calibre。
一、Calibre-Web和Calibre的区别是什么?使用场景分别是什么?
Calibre:
- 功能完整的桌面应用程序
- 重点在于电子书的管理和处理
- 独立运行的本地软件
Calibre-Web:
- 基于Web的在线图书馆系统
- 重点在于图书的展示和阅读
- 需要服务器部署的网页应用
主要功能对比
| 功能 | Calibre | Calibre-Web |
|---|---|---|
| 图书管理 | ✅ 完整强大 | ⭕️ 基础管理 |
| 元数据编辑 | ✅ 专业完整 | ⭕️ 基础编辑 |
| 格式转换 | ✅ 支持多种格式 | ❌ 需依赖Calibre |
| 在线阅读 | ❌ 不支持 | ✅ 支持 |
| 多用户支持 | ❌ 单用户 | ✅ 多用户系统 |
| 远程访问 | ❌ 本地使用 | ✅ 随处访问 |
Calibre 和 Calibre-Web 是互补的工具:
- Calibre 专注于管理和处理
- Calibre-Web 专注于展示和阅读
最理想的方案是:
- 用 Calibre 做后台管理
- 用 Calibre-Web 做前台展示
- 两者结合获得最佳体验
二、服务器安装docker和docker-compose
想到小伙伴们的服务器系统可能都不同,所以花了一天的时间认真整理了docker的安装步骤,这里就不再赘述啦~
点击这篇博客(虚拟机分别安装了Ubuntu、CentOS、Debian等系统的docker、docker-compose的操作步骤)
题外废话:真喜欢docker呀!真的很方便!很适合懒人!
三、服务器安装Calibre-Web步骤
1、安装完成后的目录结构
/data/calibre/
├── docker-compose.yml # 配置文件
├── config/ # Calibre-Web配置目录
│ ├── app.db # 应用数据库
│ ├── calibre-web.log # 日志文件
│ └── config.json # 配置文件
├── books/ # 图书库目录
│ ├── metadata.db # 数据库文件,这个文件必须存在
│ └── [作者名]/[书名] # 图书文件
└── upload/ # 上传目录

2、安装步骤
- 创建必要的目录
# 创建主目录
mkdir -p /data/calibre# 创建子目录
mkdir -p /data/calibre/{config,books,upload}# 进入calibre目录
cd /data/calibre# 使用普通用户权限
sudo chown -R 1000:1000 /data/calibre/{config,books,upload}
chmod -R 755 config books upload

- 创建 docker-compose.yml 文件
nano docker-compose.yml
-
粘贴以下内容
为避免空格等格式问题,也可以点击这里直接下载,扔到目录中
version: '3'
services:calibre-web:# 官方下载失败可以使用可用的镜像dockerpull.org# dockerpull.org/linuxserver/calibre-web:latest# 24年11月整理了20来个可用的镜像网站且用且珍惜# https://download.csdn.net/download/mudarn/90051682# 官方镜像image: linuxserver/calibre-web:latestcontainer_name: calibre-webenvironment:# 使用普通用户权限,避免安全问题- PUID=1000- PGID=1000# 设置时区为上海- TZ=Asia/Shanghai# 安装完整的Calibre,支持格式转换等功能# dockerpull.org/linuxserver/mods:universal-calibre# 使用本地 Calibre 管理 -> 可以不需要 DOCKER_MODS#- DOCKER_MODS=linuxserver/mods:universal-calibreports:# Web访问端口- "7089:8083"volumes:# 配置文件目录- ./config:/config# 图书库目录,存放所有图书和数据库- ./books:/books# 上传目录,用于本地Calibre同步上传- ./upload:/upload# 容器重启策略restart: always# 使用bridge网络,保持网络隔离networks:- calibre-net
networks:calibre-net:driver: bridge
-
保存和退出
ctrl+o(字母)保存 回车 ctrl+x退出文件 -
提前准备数据库文件
# 下载初始数据库文件 wget https://raw.githubusercontent.com/janeczku/calibre-web/master/library/metadata.db -O books/metadata.db# 设置权限,所有者和所属组更改为 UID 和 GID 为 1000 的用户和组。 sudo chown 1000:1000 books/metadata.db# 设置权限 644,即文件所有者可以读取和写入,所属组和其他用户只能读取。 sudo chmod 644 books/metadata.db
-
启动
# 启动
docker-compose up -d# 查看日志
docker-compose logs -f#日后维护常用命令
# 查看容器状态
docker-compose ps# 重启服务
docker-compose restart# 更新镜像
docker-compose pull && docker-compose up -d# 查看资源使用
docker stats calibre-web# 清理并重建
docker-compose down --rmi all && docker-compose up -d

启动成功

3、初始配置
-
访问地址:
http://服务器IP:7089 -
默认账号:
admin -
默认密码:
admin123
-
首次登录配置:
设置图书库路径为:
/books
更改中文和修改默认密码

如果language中没有选项,可以在/data/calibre/config目录下,加一个配置文件再重启

cd /data/calibre/config
nano config.json
粘贴以下
{"language": "zh-CN" // 添加或修改为中文简体
}
保存和退出
ctrl+o(字母)保存
回车
ctrl+x退出文件
也可以直接点这里下载json文件
重启
cd /data/calibre
docker-compose restart

4、启动上传
管理权限–编辑基本配置–功能配置–启动上传



四、安装Calibre
整理中后期补充
五、docker-compose常用命令
点击这里查看整理好的博客文章
六、客户端
1、ios在appstore搜“kybook”

(1)

(2)

(3)

(4)输入自己的 web地址/opds,键盘点搜索,用户名密码就是web登陆的用户名密码

(5)

(6)

2、安卓下载 静读天下app(注意不要在应用商店下载,貌似googleplay有)
我是在这个博主这里下载的,点击这里
设置方法:
app左上角的图标(三横杠)–网上书库–app左上角的图标(三个点)—增加新书库
输入自己的 web地址/opds
用户名密码就是web登陆的用户名密码


相关文章:
【Calibre-Web】Calibre-Web服务器安装详细步骤(个人搭建自用的电子书网站,docker-compose安装)
文章目录 一、Calibre-Web和Calibre的区别是什么?使用场景分别是什么?二、服务器安装docker和docker-compose三、服务器安装Calibre-Web步骤1、安装完成后的目录结构2、安装步骤3、初始配置4、启动上传 四、安装Calibre五、docker-compose常用命令六、客…...
服务器数据恢复—服务器raid0阵列硬盘指示灯显示黄颜色的数据恢复案例
服务器数据恢复环境&故障情况: 某品牌服务器上有一组由两块SAS硬盘组建的raid0阵列,上层是windows server操作系统ntfs文件系统。服务器上一个硬盘指示灯显示黄颜色,该指示灯对应的硬盘离线,raid不可用。 服务器数据恢复过程…...
.nii.gz文件读取方式
".nii.gz"文件的介绍: ".nii.gz"文件是一种常见的用于存储神经影像数据的格式,它通常包含了三维或四维的图像体素数据,以及与磁共振扫描相关的一些重要元数据,比如扫描参数、特征描述等等。而".nii"表示未经压…...
Kube-Prometheus-Stack安装时初始化导入自定义Grafana dashboards
获取Grafana dashboards的JSON文件 这里是获取已经编辑好的Grafana dashboards的JSON文件;以便内置到Kube-Prometheus-Stack的helm charts的安装zip文件中。 编辑自定义dashboards JSON文件 获取dashboards JSON文件模板 其实Kube-Prometheus-Stack内部本身已经内…...
【SNIP】《An Analysis of Scale Invariance in Object Detection – SNIP》
CVPR-2018 Singh B, Davis L S. An analysis of scale invariance in object detection snip[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 3578-3587. https://github.com/bharatsingh430/snip?tabreadme-ov-file 文章目录 …...
JAVA基础学习笔记_异常
文章目录 异常异常的作用处理异常的方式异常中的常见方法捕获异常自定义异常 异常 应该知道出了异常怎么处理 java.lang.Throwable Error(错误,硬件出错或内存不足,不是程序员能解决的) Exception(异常) RuntimeException(运行时异常),代码出错导致程序出现的问题 其他异…...
Modern Effective C++条款三十四:考虑lambda而非std::bind
C11中的std::bind是C98的std::bind1st和std::bind2nd的后续,C11 lambda几乎总是比std::bind更好的选择。 从C14开始,lambda的作用不仅强大,而且是完全值得使用的。与item32中一样,我们将从std::bind返回的函数对象称为bind对象(bi…...
lyapunov指数的绘制
有如下方程: %% 方程式 % x(n1)1y(n)-a*x(n)^2 % y(n1)b*x(n)绘制其对应的lyapunov指数。 MATLAB实现方式: clc; clearvars; close all;%% 方程式 % x(n1)1y(n)-a*x(n)^2 % y(n1)b*x(n)%% 代码 N 1000; a (0:0.001:1.4); b 0.3; na length(a…...
Ansible 运维工具
安装 apt install ansible /etc/ansible/hosts , 指定密码或密钥访问分组机器 [k8s_masters] master0.c0.k8s.sb[k8s_nodes] node0.c0.k8s.sb node1.c0.k8s.sb[k8s:children] k8s_masters k8s_nodes[k8s_masters:vars] ansible_ssh_usersbadmin ansible_ssh_pass"***&q…...
【AI系统】MobileNet 系列
MobileNet 系列 在本文会介绍 MobileNet 系列,重点在于其模型结构的轻量化设计,主要介绍详细的轻量化设计原则,基于这原则,MobileNetV1 是如何设计成一个小型,低延迟,低功耗的参数化模型,可以满…...
MATLAB在生态环境数据处理与分析中的应用
专题一 MATLAB编程入门 要点:介绍、案例演示、软件界面、语法基础、基本运算等 专题二(试听) MATLAB编程入门 要点:脚本编写、函数调用、循环控制、代码调试、文件读写等 专题三 MATLAB可视化与绘图 要点:交互式…...
tensorrt
engine /*tensorrt创建builder1. 创建builder2. 创建网络定义:builder-->network3. 配置参数:builder-->config4. 生成engine:builder-->engine()5. 序列化保存:engine-->serialize6. 释放资源:delete */ #include&l…...
利用Grounding DINO进行自动标注——目标检测任务——YOLO格式
关于Grounding DINO的环境搭建可以参考我的以前的博客,链接如下所示 如何在Linux上离线部署Grounding DINO-CSDN博客 这个博客主要来介绍如何利用Grounding DINO这个项目去进行目标检测的自动化标注。并且给出了相关的代码已经实验验证。 1.数据集准备 2. 开始实…...
网际协议(IP)与其三大配套协议(ARP、ICMP、IGMP)
网际协议(Internet Protocol,IP),又称互联网协议。是OSI中的网络层通信协议,用于跨网络边界分组交换。它的路由功能实现了互联互通,并从本质上建立了互联网。网际协议IP是 TCP/IP 体系中两个最主要的协议之…...
uniapp 添加loading
在uniapp中添加loading可以使用uni的API uni.showLoading 方法。以下是一个简单的示例代码 // 显示loading uni.showLoading({title: 加载中 });// 假设这里是异步操作,比如网络请求 setTimeout(function () {// 隐藏loadinguni.hideLoading(); }, 2000);...
cocotb pytest
打印python中的print , 应该使用 pytest -s pytest --junitxmltest_report.xml --htmlreport.html...
docker run 设置启动命令
在使用 docker run 命令时,你可以通过指定启动命令来覆盖 Docker 镜像中的默认入口点或命令。具体来说,你可以通过以下两种方式来设置启动命令: 覆盖 CMD: 你可以通过在 docker run 命令的最后部分提供命令来覆盖镜像的默认 CMD 指…...
docker入门 自记录
1.先自己下载离线bao .tar 或者 自己pull docker pull xxx 如果遇到网络问题就换源 2.之后run一个docker 后面是映射本地路径 sudo docker run -it --name ultralytics_241124 --gpus all --shm-size 8G -v /home/oppenheim/detect/train241204/docker:/home/docker ultralyti…...
css实现圆周运动效果
在CSS中可以通过 keyframes 动画 和 transform 属性实现元素的圆周运动。以下是一个示例代码: 示例代码 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content…...
【NoSQL数据库】MongoDB数据库——集合和文档的基本操作(创建、删除、更新、查询)
目录 一、MongoDB数据库原理 二、MongoDB数据库和集合基本操作(增删改查) 三、MongoDB数据库的文档基本操作(增删改) 四、学习笔记 往期文章:【NoSQL数据库】MongoDB数据库的安装与卸载-CSDN博客 一、MongoDB数据…...
使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式
一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明:假设每台服务器已…...
【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15
缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下: struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...
Cursor实现用excel数据填充word模版的方法
cursor主页:https://www.cursor.com/ 任务目标:把excel格式的数据里的单元格,按照某一个固定模版填充到word中 文章目录 注意事项逐步生成程序1. 确定格式2. 调试程序 注意事项 直接给一个excel文件和最终呈现的word文件的示例,…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
深入浅出:JavaScript 中的 `window.crypto.getRandomValues()` 方法
深入浅出:JavaScript 中的 window.crypto.getRandomValues() 方法 在现代 Web 开发中,随机数的生成看似简单,却隐藏着许多玄机。无论是生成密码、加密密钥,还是创建安全令牌,随机数的质量直接关系到系统的安全性。Jav…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
