【Calibre-Web】Calibre-Web服务器安装详细步骤(个人搭建自用的电子书网站,docker-compose安装)

news2024/12/26 18:27:45

文章目录

    • 一、Calibre-Web和Calibre的区别是什么?使用场景分别是什么?
    • 二、服务器安装docker和docker-compose
    • 三、服务器安装Calibre-Web步骤
      • 1、安装完成后的目录结构
      • 2、安装步骤
      • 3、初始配置
      • 4、启动上传
    • 四、安装Calibre
    • 五、docker-compose常用命令

最近想用自己的迷你主机搭建一个个人图书馆,方便自己看小说和教学类的电子书。

所以在服务器上安装了Calibre-Web,在自己的笔记本和台式机上安装了Calibre。

一、Calibre-Web和Calibre的区别是什么?使用场景分别是什么?

Calibre:

  • 功能完整的桌面应用程序
  • 重点在于电子书的管理和处理
  • 独立运行的本地软件

Calibre-Web:

  • 基于Web的在线图书馆系统
  • 重点在于图书的展示和阅读
  • 需要服务器部署的网页应用

主要功能对比

功能CalibreCalibre-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/              # 上传目录

image-20241205111137181

2、安装步骤

  1. 创建必要的目录
# 创建主目录
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

image-20241205111027893

  1. 创建 docker-compose.yml 文件
nano docker-compose.yml
  1. 粘贴以下内容

    为避免空格等格式问题,也可以点击这里直接下载,扔到目录中

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:latest
    container_name: calibre-web
    environment:
      # 使用普通用户权限,避免安全问题
      - PUID=1000
      - PGID=1000
      # 设置时区为上海
      - TZ=Asia/Shanghai
      # 安装完整的Calibre,支持格式转换等功能
      # dockerpull.org/linuxserver/mods:universal-calibre
      # 使用本地 Calibre 管理 -> 可以不需要 DOCKER_MODS
      #- DOCKER_MODS=linuxserver/mods:universal-calibre
    ports:
      # Web访问端口
      - "7089:8083"
    volumes:
      # 配置文件目录
      - ./config:/config
      # 图书库目录,存放所有图书和数据库
      - ./books:/books
      # 上传目录,用于本地Calibre同步上传
      - ./upload:/upload
    # 容器重启策略
    restart: always
    # 使用bridge网络,保持网络隔离
    networks:
      - calibre-net
networks:
  calibre-net:
    driver: bridge
  1. 保存和退出

    ctrl+o(字母)保存
    回车
    ctrl+x退出文件
    
  2. 提前准备数据库文件

    # 下载初始数据库文件
    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
    

    image-20241205134738076

  3. 启动

# 启动
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

image-20241205131956599

启动成功

image-20241205133526570

3、初始配置

  • 访问地址:http://服务器IP:7089

  • 默认账号:admin

  • 默认密码:admin123

    image-20241205133620926

  • 首次登录配置:

    设置图书库路径为:/books

    image-20241205135102569

    更改中文和修改默认密码

    image-20241205141457223

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

image-20241205141900822

cd /data/calibre/config
nano config.json

粘贴以下

{
  "language": "zh-CN"  // 添加或修改为中文简体
}

保存和退出

ctrl+o(字母)保存
回车
ctrl+x退出文件

也可以直接点这里下载json文件

重启

cd /data/calibre
docker-compose restart

image-20241205142236869

4、启动上传

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

image-20241205162623536

image-20241205162644995
在这里插入图片描述

四、安装Calibre

整理中后期补充

五、docker-compose常用命令

点击这里查看整理好的博客文章

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2254357.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

easyexcel 导出日期格式化

1.旧版本 在新的版本中formate已经被打上废弃标记。那么不推荐使用这种方式。 2.推荐方式 推荐使用另外一种方式【 Converter 】代码如下,例如需要格式化到毫秒【yyyy-MM-dd HH:mm:ss SSS】级别 创建一个公共Converter import com.alibaba.excel.converters.Conv…

ABAP - 系统集成之SAP的数据同步到OA(泛微E9)服务器数据库

需求背景 项目经理说每次OA下单都需要调用一次SAP的接口获取数据,导致效率太慢了,能否把SAP的数据保存到OA的数据库表里,这样OA可以直接从数据库表里获取数据效率快很多。思来想去,提供了两个方案。 在集群SAP节点下增加一个SQL S…

40分钟学 Go 语言高并发:【实战】分布式缓存系统

【实战课程】分布式缓存系统 一、整体架构设计 首先,让我们通过架构图了解分布式缓存系统的整体设计: 核心组件 组件名称功能描述技术选型负载均衡层请求分发、节点选择一致性哈希缓存节点数据存储、过期处理内存存储 持久化同步机制节点间数据同步…

w~视觉~合集27

我自己的原文哦~ https://blog.51cto.com/whaosoft/12715639 #视频AIGC~论文 1、Pix2Video: Video Editing using Image Diffusion 基于大规模图像库训练的图像扩散模型已成为质量和多样性方面最为通用的图像生成模型。它们支持反转真实图像和条件生成(例如&…

MYSQL中的增删改查操作(如果想知道MYSQL中有关增删改查操作的知识,那么只看这一篇就足够了!)

前言:在 MySQL 中,增、删、改、查(CRUD)操作是基本的数据库操作,增操作(INSERT)用于插入数据,删操作(DELETE)用于删除数据,改操作(UPD…

Ansible的yum和saltstack的哪个功能相似

Ansible的yum和saltstack的哪个功能相似 在 Ansible 和 SaltStack 中,Ansible 的 yum 模块 和 SaltStack 的 pkg 模块 功能相似。它们都用于管理软件包,支持安装、升级、删除和查询等操作。 Ansible 的 yum 模块 用途: 专门用于基于 Red Hat …

在做题中学习(76):颜色分类

解法:三指针 思路:用三个指针,把数组划分为三个区域: for循环遍历数组,i遍历数组,left是0区间的末尾,right是2区间的开头,0 1 2区间成功被划分 而上面的图画是最终实现的图样&…

Java版-速通数据结构-树基础知识

现在面试问mysql,红黑树好像都是必备问题了。动不动就让手写红黑树或者简单介绍下红黑树。然而,我们如果直接去看红黑树,可能会一下子蒙了。在看红黑树之前,需要先了解下树的基础知识,从简单到复杂,看看红黑树是在什么…

浙江工业大学《2024年828自动控制原理真题》 (完整版)

本文内容,全部选自自动化考研联盟的:《浙江工业大学828自控考研资料》的真题篇。后续会持续更新更多学校,更多年份的真题,记得关注哦~ 目录 2024年真题 Part1:2024年完整版真题 2024年真题

【计算机网络】实验11:边界网关协议BGP

实验11 边界网关协议BGP 一、实验目的 本次实验旨在验证边界网关协议(BGP)的实际作用,并深入学习在路由器上配置和使用BGP协议的方法。通过实验,我将探索BGP在不同自治系统之间的路由选择和信息交换的功能,理解其在互…

微信小程序全屏显示地图

微信小程序在界面上显示地图&#xff0c;只需要用map标签 <map longitude"经度度数" latitude"纬度度数"></map>例如北京的经纬度为&#xff1a;116.407004,39.904595 <map class"bgMap" longitude"116.407004" lati…

InfluxDB 集成 Grafana

将InfluxDB集成到Grafana进行详细配置通常包括以下几个步骤&#xff1a;安装与配置InfluxDB、安装与配置Grafana、在Grafana中添加InfluxDB数据源以及创建和配置仪表板。以下是一个详细的配置指南&#xff1a; 一、安装与配置InfluxDB 下载与安装&#xff1a; 从InfluxDB的官…

【AI系统】ESPNet 系列

ESPNet 系列 本文将会介绍 ESPNet 系列&#xff0c;该网络主要应用在高分辨率图像下的语义分割&#xff0c;在计算内存占用、功耗方面都非常高效&#xff0c;重点介绍一种高效的空间金字塔卷积模块&#xff08;ESP Module&#xff09;&#xff1b;而在 ESPNet V2 上则是会更进…

【Axios】如何在Vue中使用Axios请求拦截器

✨✨ 欢迎大家来到景天科技苑✨✨ &#x1f388;&#x1f388; 养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; &#x1f3c6; 作者简介&#xff1a;景天科技苑 &#x1f3c6;《头衔》&#xff1a;大厂架构师&#xff0c;华为云开发者社区专家博主&#xff0c;…

w~深度学习~合集1

我自己的原文哦~ https://blog.51cto.com/whaosoft/12663254 #Motion Plan 代码 github.com/liangwq/robot_motion_planing 轨迹约束中的软硬约束 前面的几篇文章已经介绍了&#xff0c;轨迹约束的本质就是在做带约束的轨迹拟合。输入就是waypoint点list&#xff0c;约束…

大语言模型应用开发框架LangChain

大语言模型应用开发框架LangChain 一、LangChain项目介绍1、简介2、LangChain的价值3、实战演练 二、LangChain提示词大语言模型应用1、简介1.1、提示词模板化的优点1.2、提示词模板LLM 的应用1.3、Prompt 2、应用实战2.1、PromptTemplate LLM2.2、PromptTemplate LLM Outpu…

公众号文章标题的重要性

标题&#xff0c;不仅仅是一个简单的标题&#xff0c;它更是吸引读者眼球的“颜值担当”。 信息爆炸的今天&#xff0c;一个好的标题就是打开流量之门的金钥匙。那么&#xff0c;如何衡量一个标题的“颜值”呢&#xff1f;我们可以从两个维度来看&#xff1a;打开率和传播率。…

116. UE5 GAS RPG 实现击杀掉落战利品功能

这一篇&#xff0c;我们实现敌人被击败后&#xff0c;掉落战利品的功能。首先&#xff0c;我们将创建一个新的结构体&#xff0c;用于定义掉落体的内容&#xff0c;方便我们设置掉落物。然后&#xff0c;我们实现敌人死亡时的掉落函数&#xff0c;并在蓝图里实现对应的逻辑&…

ros2人脸检测

第一步&#xff1a; 首先在工作空间/src下创建数据结构目录service_interfaces ros2 pkg create service_interfaces --build-type ament_cmake 然后再创建一个srv目录 在里面创建FaceDetect.srv&#xff08;注意&#xff0c;首字母要大写&#xff09; sensor_msgs/Image …

Neo4j:图数据库使用入门

文章目录 一、Neo4j安装1、windows安装&#xff08;1&#xff09;准备环境&#xff08;2&#xff09;下载&#xff08;3&#xff09;解压&#xff08;4&#xff09;运行&#xff08;5&#xff09;基本使用 2、docker安装 二、CQL语句1、CQL简介2、CREATE 命令&#xff0c;创建节…