Calibre Web
用于浏览、阅读和下载存储在 Calibre 数据库中的电子书的 Web 应用程序。
Docker Run
创建容器并运行
1 2 3 4 5 6 7 8 9 10 11 12
| docker run -d \ --name=calibre-web \ -e PUID=0 \ -e PGID=0 \ -e TZ=Asia/Shanghai \ -e DOCKER_MODS=linuxserver/mods:universal-calibre ` -e OAUTHLIB_RELAX_TOKEN_SCOPE=1 ` -p 8083:8083 \ -v /root/docker/Calibre-Web/config:/config \ -v /root/docker/Calibre-Web/books:/books \ --restart unless-stopped \ lscr.io/linuxserver/calibre-web:latest
|
停止容器并删除
1
| docker stop calibre-web && docker rm calibre-web
|
容器运行时的 shell 访问
1
| docker exec -it calibre-web /bin/bash
|
实时监控容器的日志
1
| docker logs -f calibre-web
|
容器版本号
1
| docker inspect -f '{{ index .Config.Labels "build_version" }}' calibre-web
|
镜像版本号
1
| docker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/calibre-web:latest
|
Docker Compose
创建 docker-compose.yaml 文件
1
| nano docker-compose.yaml
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| --- version: "2.1" services: calibre-web: image: linuxserver/calibre-web:latest container_name: calibre-web environment: - PUID=0 - PGID=0 - TZ=Asia/Shanghai - DOCKER_MODS=linuxserver/mods:universal-calibre - OAUTHLIB_RELAX_TOKEN_SCOPE=1 volumes: - ./config:/config - ./books:/books ports: - 8083:8083 restart: unless-stopped
|
打开 8083 端口
配置过程
出现权限错误是 PUID PGID 填写错误导致
数据库错误:attempt to write a readonly database
本地的 books 文件夹需要给予 777 权限
配置数据库(可以上传 metadata.db 文件,到 books 文件夹内, PUID PGID 填写错误将需要额外赋予读写权限 755 给 metadata.db 文件)
使用 docker logs -f calibre-web 查看日志
进入网站
默认账号 admin 密码 admin123
填写数据库位置 /books
更改语言
扩展程序配置(转换格式)
- 管理权限 - 编辑基本配置 - 扩展程序配置
- Calibre 电子书转换器路径:
/usr/bin/ebook-convert
- KEpubify 电子书转换器路径:
/usr/bin/kepubify
后台启用上传
- 管理权限 - 编辑基本配置 - 功能配置
- 启用上传
- 允许匿名浏览
启用用户阅读权限
管理权限 - 管理用户
1 2 3 4 5 6 7 8 9 10
| docker exec -it calibre-web sh
cd app/calibre/bin
calibredb restore_database --really-do-it --with-library /books
exit
chmod a+w /books/metadata.db
|
一键脚本
1
| wget https://raw.githubusercontent.com/18nome/docker/main/Calibre-Web/Calibre-Web.sh && chmod +x Calibre-Web.sh && bash Calibre-Web.sh
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94
| #! /bin/bash
red(){ echo -e "\033[31m\033[01m$1\033[0m" } green(){ echo -e "\033[32m\033[01m$1\033[0m" } yellow(){ echo -e "\033[33m\033[01m$1\033[0m" }
function calibre-web_install(){ if nc -z localhost 8083; then echo " 8083 端口已经被占用,请检查相关进程" exit 1 fi if docker ps -a --format "{{.Names}}" | grep -q "calibre-web"; then echo " calibre-web 容器名已经被占用" exit 1 fi if [ ! -d /root/docker/Calibre-Web ]; then mkdir -p /root/docker/Calibre-Web fi cd /root/docker/Calibre-Web if [ -f "docker-compose.yaml" ] || [ -f "docker-compose.yml" ]; then echo green " docker-compose 文件已经存在, 跳过创建 docker-compose.yaml 步骤" echo else cat <<EOF > docker-compose.yaml --- version: "2.1" services: calibre-web: image: linuxserver/calibre-web:latest container_name: calibre-web environment: - PUID= - PGID= - TZ=Asia/Shanghai - DOCKER_MODS=linuxserver/mods:universal-calibre - OAUTHLIB_RELAX_TOKEN_SCOPE=1 volumes: - ./config:/config - ./books:/books ports: - 8083:8083 restart: unless-stopped EOF sed -i "s/- PUID=/- PUID=$(id -u)/" docker-compose.yaml sed -i "s/- PGID=/- PGID=$(id -g)/" docker-compose.yaml fi docker-compose up -d ufw allow 8083/tcp yellow "-----------------------------------------------" green " Web 端口:8083" echo green " Docker IP = $(ip addr show docker0 | grep 'inet\b' | awk '{print $2}' | cut -d '/' -f1):8083" echo green " Web 网址 = http://$(ifconfig $(ifconfig | grep -oP 'enp\w+') | grep 'inet ' | awk '{print $2}'):8083" echo green " 第一次安装需要进入容器内部生成 metadata.db 数据库,步骤如下:" green " cd: can't cd to app/calibre/bin 报错,需要等待容器初始化完毕!" green " 大概等待 3 分钟左右!" echo green " 实时监控容器的日志" yellow "-----------------------------------------------" green " docker logs -f calibre-web" yellow "-----------------------------------------------" echo green " 初始化数据库" yellow "-----------------------------------------------" green " docker exec -it calibre-web sh" green " cd app/calibre/bin" green " calibredb restore_database --really-do-it --with-library /books" green " exit" yellow "-----------------------------------------------" echo green " 数据库填写 /books" echo green " 也可以直接 wget 下载 metadata.db 数据库" green " wget -O /root/docker/Calibre-Web/books/metadata.db https://github.com/18nome/docker/raw/main/Calibre-Web/metadata.db" echo green " 登陆账号:admin " green " 登陆密码:admin123" echo green " Calibre Web 安装完毕!" yellow "-----------------------------------------------" } calibre-web_install
|
数据备份
1 2 3 4 5 6 7 8
| cd /root/docker tar czvf Calibre-Web.tar Calibre-Web zip -r Calibre-Web.zip Calibre-Web
tar xzvf Calibre-Web.tar unzip Calibre-Web.zip
|
内网穿透
1 2 3 4 5 6
| [calibre-web] type = tcp local_ip = 127.0.0.1 local_port = 8083 remote_port = 17011 custom_domains = nascalibreweb.rahn.top
|
总结
在本地部署过程中,日志有时候会卡在 [mod-init] Attempting to run Docker Modification Logic 这一步,跟网络环境有关。
一个网络环境问题,将出现一大堆谜一样的问题!!!
VPS 中没有问题!
官方网站:https://github.com/janeczku/calibre-web
项目地址:https://docs.linuxserver.io/images/docker-calibre-web