阿里云服务器真香宝典之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

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
Java PHP
PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。理解其垃圾回收机制有助于开发高效稳定的PHP应用。
【10月更文挑战第1天】PHP作为广受青睐的服务器端脚本语言,在Web开发中占据重要地位。其垃圾回收机制包括引用计数与循环垃圾回收,对提升应用性能和稳定性至关重要。本文通过具体案例分析,详细探讨PHP垃圾回收机制的工作原理,特别是如何解决循环引用问题。在PHP 8中,垃圾回收机制得到进一步优化,提高了效率和准确性。理解这些机制有助于开发高效稳定的PHP应用。
50 3
|
3月前
|
缓存 Kubernetes Java
阿里云 SAE Web:百毫秒高弹性的实时事件中心的架构和挑战
SAE 事件中心通过智能诊断显示通知与用户连接起来,SAE WEB 百毫秒弹性实例给事件中心带来了新的实时性、海量数据和高吞吐的挑战,本篇将带您了解 SAE 整体事件中心的架构和挑战。
175 10
|
3月前
|
前端开发 JavaScript
构建你的第一个Web应用:从零到部署
【8月更文挑战第33天】 在这篇文章中,我们将一起踏上构建一个基本Web应用的旅程。不同于传统的“安装这个、运行那个”教程,我们的目标是通过理解每一步的意义和目的来深化你的技术理解。我们将探索HTML、CSS、JavaScript的基础,并学习如何将它们结合起来创建一个简单的个人网站。接着,我们会介绍如何使用GitHub Pages进行免费部署,让你的应用上线。准备好了吗?让我们开始吧!
|
3月前
|
负载均衡 网络协议 应用服务中间件
web群集--rocky9.2源码部署nginx1.24的详细过程
Nginx 是一款由 Igor Sysoev 开发的开源高性能 HTTP 服务器和反向代理服务器,自 2004 年发布以来,以其高效、稳定和灵活的特点迅速成为许多网站和应用的首选。本文详细介绍了 Nginx 的核心概念、工作原理及常见使用场景,涵盖高并发处理、反向代理、负载均衡、低内存占用等特点,并提供了安装配置教程,适合开发者参考学习。
|
4月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
189 0
|
4月前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
45 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中指定资源文件,以确保框架正确加载对应语言包。通过这些步骤,开发者可以轻松实现应用的多语言支持。
68 0
|
2月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
143 3
|
1月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
152 45
|
17天前
|
开发框架 JavaScript 前端开发
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势
TypeScript 是一种静态类型的编程语言,它扩展了 JavaScript,为 Web 开发带来了强大的类型系统、组件化开发支持、与主流框架的无缝集成、大型项目管理能力和提升开发体验等多方面优势。通过明确的类型定义,TypeScript 能够在编码阶段发现潜在错误,提高代码质量;支持组件的清晰定义与复用,增强代码的可维护性;与 React、Vue 等框架结合,提供更佳的开发体验;适用于大型项目,优化代码结构和性能。随着 Web 技术的发展,TypeScript 的应用前景广阔,将继续引领 Web 开发的新趋势。
31 2

相关产品

  • 云服务器 ECS