在 Windows 中一键部署 Calibre-Web 教程
在 Windows 中一键部署 Calibre-Web 教程

在 Windows 中一键部署 Calibre-Web 教程

目标

我们将通过 Docker 在 Windows 上快速部署 Calibre-Web,提供一个电子书管理和阅读服务。该服务支持直接在浏览器中管理和阅读书籍,并且支持备份功能。

前提条件

  1. Docker Desktop:确保已安装 Docker Desktop。如果没有安装,可以在 Docker 官网 下载并安装。
  2. Git Bash:用于运行 bash 脚本。可以从 Git 官网 下载并安装。
  3. 网络权限:确保 Docker 能够访问互联网来下载镜像。

步骤

1. 创建 Dockerfile 和启动脚本

在你的项目目录中创建以下文件:

Dockerfile
FROM linuxserver/calibre-web:latest

# 使用清华镜像源并安装 calibre,同时清理不必要的缓存和临时文件
RUN sed -i 's|http://archive.ubuntu.com/ubuntu/|https://mirrors.tuna.tsinghua.edu.cn/ubuntu/|g' /etc/apt/sources.list \
    && apt update \
    && apt install -y calibre \
    && apt clean \
    && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

# 拷贝启动脚本
COPY start.sh /start.sh
RUN chmod +x /start.sh

# 容器启动时执行 start.sh
CMD ["/start.sh"]
start.sh
#!/bin/bash

# 条件创建 .calnotes 目录
[ ! -d /books/.calnotes ] && mkdir -p /books/.calnotes

# 如果 /books 目录中没有 metadata.db,可以恢复数据库
if [ ! -f /books/metadata.db ]; then
    calibredb restore_database --really-do-it --with-library /books
fi

# 修改 metadata.db 文件的权限(只在必要时)
chmod a+w /books/metadata.db

# 启动 Calibre Web 服务作为容器主进程
cd /app/calibre-web
python3 cps.py

# 保持容器运行
tail -f /dev/null

2. 构建 Docker 镜像

打开 Git Bash 或者 Windows PowerShell,进入项目目录并执行以下命令:

docker build -t benson80/calibre-web .

此命令会根据 Dockerfile 构建镜像,并命名为 benson80/calibre-web

3. 运行 Docker 容器

创建并运行 Docker 容器:

docker run -d --name=calibre-web -v D:/calibre-web/data:/config -v D:/calibre-web/library:/books -p 8083:8083 --restart unless-stopped -e TZ="Asia/Shanghai" benson80/calibre-web:latest

这里,D:/calibre-web/data 是你的 Calibre-Web 配置目录,D:/calibre-web/library 是你的电子书存放目录,端口 8083 用于访问服务。

4. 推送镜像到 Docker Hub(可选)

如果希望将自己的镜像上传到 Docker Hub,可以执行以下命令:

docker push benson80/calibre-web:latest

确保已登录 Docker Hub 账户。

5. 创建备份脚本

在你的 Windows 系统中创建备份脚本 backup_calibre.sh。该脚本会备份 Calibre-Web 配置和书籍数据。

backup_calibre.sh
#!/bin/bash

# 设置备份目录(Windows 主机上的备份路径)
BACKUP_DIR="/mnt/d/calibre-web/backup"

# Docker 容器挂载的目录(即主机上的路径)
CONFIG_DIR="/mnt/d/calibre-web/data"
BOOKS_DIR="/mnt/d/calibre-web/library"

# 创建备份文件夹(按日期命名)
DATE=$(date +%Y-%m-%d)
BACKUP_CONFIG_DIR="$BACKUP_DIR/config_$DATE"
BACKUP_BOOKS_DIR="$BACKUP_DIR/books_$DATE"
mkdir -p "$BACKUP_CONFIG_DIR"
mkdir -p "$BACKUP_BOOKS_DIR"

# 备份配置和书籍
cp -r "$CONFIG_DIR" "$BACKUP_CONFIG_DIR"
cp -r "$BOOKS_DIR" "$BACKUP_BOOKS_DIR"

echo "Backup completed successfully!"

确保该脚本与 Dockerfile 处于同一目录下。

6. 定时备份

使用 Windows 任务计划程序来设置每日自动备份。执行以下命令在 Windows 上设置每日任务:

schtasks /create /tn "CalibreWebBackup" /tr "\"C:\Program Files\Git\bin\bash.exe\" D:/backup_calibre.sh" /sc daily /st 08:30

这将创建一个任务,每天早上 8:30 执行备份。

7. 访问 Calibre-Web

一切就绪后,你可以通过浏览器访问 http://localhost:8083 来使用 Calibre-Web。你将能够管理和阅读你存放在 /books 目录下的电子书。

总结

通过以上步骤,你成功在 Windows 上使用 Docker 部署了 Calibre-Web,并配置了定时备份功能。此部署过程无需准备特定目录,适合大多数 Windows 环境,提供了一个简洁、稳定的电子书管理平台。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

Title - Artist
0:00