【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数据…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
wordpress后台更新后 前端没变化的解决方法
使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…...
超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
从零实现富文本编辑器#5-编辑器选区模型的状态结构表达
先前我们总结了浏览器选区模型的交互策略,并且实现了基本的选区操作,还调研了自绘选区的实现。那么相对的,我们还需要设计编辑器的选区表达,也可以称为模型选区。编辑器中应用变更时的操作范围,就是以模型选区为基准来…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
HTML前端开发:JavaScript 常用事件详解
作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...
CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云
目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
Map相关知识
数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
