阿里云服务器真香宝典之Calibre-Web个人图书馆云端部署

简介: 在阿里云ECS(2核2G,SSD40G,3M带宽)上,安装Ubuntu 22.04,然后配置Docker和FTP。创建 `/config` 和 `/books` 目录,设置权限,开放端口,拉取 `johngong/calibre-web` Docker镜像,以`calibre-web`命名容器,映射端口,配置环境变量,挂载卷,确保重启策略。本地安装Calibre客户端,上传metadata.db到服务器。在Calibre-web服务端配置数据库,启用上传权限,修改管理员账户信息。完成配置后,开始上传电子书并进行阅读。

一、准备工作

1.准备一台云服务器

我选择的是阿里云ECS,配置:2核2G,SSD40G,3M固定带宽(今年销冠)。
aliyun_99.png

服务器的操作系统选用ubuntu 22.04。
ubuntu_env.png

2.安装Docker

Docker的安装教程,有兴趣的小伙伴们可以留言,立马安排。

3.安装FTP服务

FTP的安装教程,有兴趣的小伙伴们可以留言,立马安排。

4.创建/config及/books文件夹

Calibre-Web服务在docker环境下自有一套文件目录,其中的/config以及/books这两个文件夹需要和我们在根目录下/opt里创建的目录做映射,这里是我们图书馆数据库存放的实体文件夹所在。

$ mkdir -p /opt/calibre-web/config
$ mkdir -p /opt/calibre-web/books

修改文件操作属性,不然,我们在后面往里面写数据库文件,会因为权限被拒绝(避坑点!!!)。

chmod 777 /opt/calibre-web/*

dir_chmod_777.png

5.控制台修改端口规则

我们通过浏览器访问Calibre-Web需要通过8083端口,这个端口需要小伙伴手动添加到控制台的安全组里。

port_enable.png

二、安装Calibre-web

1.拉取镜像

搜索Calibre-Web镜像。

$ sudo docker search calibre-web

calibre.png

拉取Calibre-Web镜像。

$ sudo docker pull johngong/calibre-web

2.创建Calibre-Web服务

配置并运行docker。

# docker run -d \
> --name=calibre-web \
> -p 8083:8083 \
> -e PUID=1000 \
> -e PGID=1000 \
> -e TZ=Asia/Shanghai \
> -e DOCKER_MODS=linuxserver/mods:universal-calibre \
> -e OAUTHLIB_RELAX_TOKEN_SCOPE=1 \
> -v /opt/calibre-web/config:/config \
> -v /opt/calibre-web/books:/books \
> --restart=always \
> johngong/calibre-web

run_calibre.png

1.docker run -d,后台运营docker容器;
2.--name=calibre-web,容器名称calibre-web;
3.-p 8083:8083,端口映射,服务器对外端口:容器calibre-web服务端口;
4.-e PUID=1000,环境变量PUID配置,给容器用户分配ID;
5.-e PGID=1000,环境变量PGID配置,给容器用户组分配ID;
6.-e TZ=Asia/Shanghai,环境变量时区配置,需要查询时区的小伙伴;
7.-e DOCKER_MODS,电子书转换模式(可选,有需要的可以添加这个参数);
8.-e OAUTHLIB_RELAX_TOKEN_SCOPE,允许google OAUTH工作,可以调用google API接口,可选项(小伙伴们懂的都懂了);
9.-v /opt/calibre-web/config:/config,卷映射,服务器文件夹/config:容器文件夹/config;
10.-v /opt/calibre-web/books:/books,同上;
11.--restart=always,docker重启时,容器自动重启;
12.johngong/calibre-web,容器运行的镜像;

查看容器运行状态。

# docker ps

ps_calibre.png

三、本地安装Calibre客户端

1.安装Calibre客户端

Calibre客户端windows下载地址,找到metadata.db数据库文件。
db_local.png

2.上传数据库文件

通过Filezilla将metadata.db文件上传到服务器,并修改文件属性。

sudo chmod 777 metadata.db

db_chmod777.png

四、配置Calibre-web

1.浏览器登录Calibre-Web服务端

输入服务器ip地址:8083,登录名admin,密码admin123。
web_login.png

2.服务端配置

2.1配置数据库

路径:管理权限->编制calibre数据库配置。
db_location0.png

选择/books文件夹,添加metadata.db。
db_location.png

保存并看到“数据库更新已成功”。
db_location_01.png

2.2 添加上传文件权限

路径:管理权限->编辑基本配置。
config_upload00.png

添加上传文件权限并保存,看到“配置已更新”,即配置成功。
config_upload01.png

2.3 用户名及密码修改

通过右上角用户名进入编辑模式,修改用户名及密码。
user_config.png

五、开启阅读之旅

通过本地上传电子书到服务器端。
book_upload0.png
上传完成后,对相应数据元做修改,也可以通过搜索从第三方下载相应数据元。
book_upload.png
体验web端浏览电子书。
book_upload02.png

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2天前
|
网络协议 网络安全
基于bind软件部署DNS服务器
关于如何使用bind软件部署DNS服务器的教程,包括DNS服务器的类型、基于bind软件的部署步骤、验证DNS服务器可用性的指导,以及如何进行DNS正向解析的实现。
7 2
基于bind软件部署DNS服务器
|
3天前
|
存储 关系型数据库 MySQL
使用Docker快速部署Mysql服务器
本文介绍了如何使用Docker快速部署MySQL服务器,包括下载官方MySQL镜像、启动容器、设置密码、连接MySQL服务器以及注意事项。
52 18
|
3天前
|
前端开发 JavaScript
构建你的第一个Web应用:从零到部署
【8月更文挑战第33天】 在这篇文章中,我们将一起踏上构建一个基本Web应用的旅程。不同于传统的“安装这个、运行那个”教程,我们的目标是通过理解每一步的意义和目的来深化你的技术理解。我们将探索HTML、CSS、JavaScript的基础,并学习如何将它们结合起来创建一个简单的个人网站。接着,我们会介绍如何使用GitHub Pages进行免费部署,让你的应用上线。准备好了吗?让我们开始吧!
|
4天前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
23 0
|
4天前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
15 0
|
4天前
|
Java UED 自然语言处理
Struts 2 国际化竟有如此神奇魔力?快来揭开多语言支持的 Web 应用神秘面纱
【8月更文挑战第31天】在全球化背景下,Web应用需适应多种语言环境。Struts 2凭借其强大的国际化(i18n)支持,简化了多语言应用开发。通过不同语言的资源文件,它能自动匹配用户语言偏好,优化用户体验并扩展用户群。下面是一个示例:创建`messages.properties`(英语)与`messages_zh_CN.properties`(中文),并在Struts 2的Action类及JSP页面中调用`getText()`方法及Struts标签展示相应语言内容。此外,在struts.xml中指定资源文件,以确保框架正确加载对应语言包。通过这些步骤,开发者可以轻松实现应用的多语言支持。
26 0
|
5天前
|
UED
JSF文件下载:解锁终极文件传输秘籍,让你的Web应用瞬间高大上!
【8月更文挑战第31天】掌握JSF文件下载功能对构建全面的Web应用至关重要。本文通过具体代码示例,详细介绍如何在JSF中实现文件下载。关键在于后端Bean中的文件读取与响应设置。示例展示了从创建实体类到使用`<h:commandLink>`触发下载的全过程,并通过正确设置响应头和处理文件流,确保文件能被顺利下载。这将显著提升Web应用的实用性与用户体验。
16 0
|
5天前
|
Java 数据库 API
JSF与JPA的史诗级联盟:如何编织数据持久化的华丽织锦,重塑Web应用的荣耀
【8月更文挑战第31天】JavaServer Faces (JSF) 和 Java Persistence API (JPA) 分别是构建Java Web应用的用户界面组件框架和持久化标准。结合使用JSF与JPA,能够打造强大的数据驱动Web应用。首先,通过定义实体类(如`User`)和配置`persistence.xml`来设置JPA环境。然后,在JSF中利用Managed Bean(如`UserBean`)管理业务逻辑,通过`EntityManager`执行数据持久化操作。
12 0
|
4天前
|
数据库 开发者 Python
web应用开发
【9月更文挑战第1天】web应用开发
16 1
|
1天前
|
数据采集 Java 数据挖掘
Java IO异常处理:在Web爬虫开发中的实践
Java IO异常处理:在Web爬虫开发中的实践

相关产品

  • 云服务器 ECS
  • 下一篇
    DDNS