【docker】Calibre-Web——在线电子书库/漫画/CG/画集库

2024-08-20 16:40:28 浏览数 (4)

1.项目介绍

1.1项目地址

GitHub:https://github.com/janeczku/calibre-web

1.2项目特点

  • Bootstrap 3 HTML5界面
  • 全图形化管理界面
  • 具有细化的每个用户权限的用户管理
  • 支持巴西语、捷克语、荷兰语、英语、芬兰语、法语、加利西亚语、德语、希腊语、匈牙利语、意大利语、日语、高棉语、韩国语、波兰语、俄语、简体和繁体中文、西班牙语、瑞典语、土耳其语、乌克兰语、越南语
  • 支持用于电子书阅读器应用程序的OPDS feed
  • 支持通过标题、作者、标签、系列、书籍格式和语言进行过滤和搜索
  • 支持创建一个自定义的图书集(书架)
  • 支持编辑电子书元数据和从Calibre图书馆删除电子书
  • 支持从各种来源下载电子书元数据,来源可以通过外部插件扩展
  • 支持通过Calibre二进制文件转换电子书
  • 支持限制电子书下载给已登录的用户
  • 支持公共用户注册
  • 支持通过点击按钮将电子书发送到电子阅读器上
  • 支持通过Calibre-Web与您的Calibre图书馆同步您的Kobo设备
  • 支持在浏览器中直接阅读电子书(.txt, .epub, .pdf, .cbr, .cbt, .cbz, .djvu)
  • 支持上传多种格式的新书,包括音频格式(.mp3、.m4a、.m4b)。
  • 支持Calibre自定义列
  • 能够根据类别和每个用户的自定义栏目内容来隐藏内容
  • 自动更新
  • “魔力链接 “登录,使之易于登录电子阅读器
  • 通过LDAP、google/github oauth和通过代理认证登录

2.环境准备

这里我们采用ubuntu 22.04

【docker】在服务器上安装docker

【docker】反向代理神器——Nginx Proxy Manager

3.正式部署

代码语言:javascript复制
sudo -i

mkdir -p /root/data/docker_data/calibre-web

cd /root/data/docker_data/calibre-web
代码语言:javascript复制
vim docker-compose.yml
代码语言:javascript复制
---
version: "2.1"
services:
  calibre-web:
    image: lscr.io/linuxserver/calibre-web:latest
    container_name: calibre-web
    environment:
      - PUID=0
      - PGID=0
      - TZ=Asia/Shanghai
      - DOCKER_MODS=linuxserver/mods:universal-calibre #optional
      - OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
    volumes:
      - ./data:/config
      - ./library:/books
    ports:
      - 8083:8083
    restart: unless-stopped

注意,这边是以root身份来运行的,所以这边的PUID=0,PGID=0。

如果不知道id,我们可以在命令行里输入id,查看当前的id情况,如果你也是root运行的,那么不需要改。如果你是别的用户运行的,请把0改成对应id输出的数字,不然后续会出现无法连接数据库的情况。

没什么问题的话,复制完上面的内容后,

按一下esc,然后:wq保存退出,之后,

代码语言:javascript复制
cd /root/data/docker_data/calibre-web    # 来到dockercompose文件所在的文件夹下

docker-compose up -d 
代码语言:javascript复制
docker exec -it calibre-web sh #进入容器内部

cd /app/calibre/bin #进入bin文件夹

calibredb restore_database --really-do-it --with-library /books #创建一个数据库

chmod a w /books/metadata.db #添加写的权限

exit  # 退出容器

默认用户名:admin

默认密码:admin123

4.反向代理

4.1Nginx Proxy Manager

Nginx Proxy Manager的使用

4.2宝塔反代

代码语言:javascript复制
    location / {
      proxy_pass http://127.0.0.1:8083/;       # 注意改成你实际使用的端口
      rewrite ^/(.*)$ /$1 break;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Forwarded-Proto $scheme;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Upgrade-Insecure-Requests 1;
      proxy_set_header X-Forwarded-Proto https;
    }

[1]

1 人点赞