
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
⚠️重要提示:各位用户,由于我几乎没有时间维护此项目,现决定停止维护,并建议您切换到维护更完善的镜像 linuxserver/calibre-web。同时,感谢 https://github.com/OzzieIsaacs 及其团队长期致力于 https://github.com/janeczku/calibre-web 的开发,不断改进并添加新功能 👍
https://github.com/janeczku/calibre-web 是一个Web应用,提供简洁的界面用于浏览、阅读和下载电子书,需使用现有Calibre数据库。
!https://raw.githubusercontent.com/janeczku/docker-calibre-web/master/screenshot.png
Calibre Web 包含以下功能:
如需了解更多信息,请访问 Calibre Web 项目网站:https://github.com/janeczku/calibre-web%E3%80%82
如对原始 Calibre 电子书管理工具感兴趣,请访问其项目网站:[***]
2021-10-22 - v1.6.0 - v1.6.1
requirements.txt 和 optional-requirements.txt 中的依赖项 - 解决 calibre-web AttributeError: 'NoneType' object has no attribute 'exempt' #109 问题 - 感谢 @wanoo 提交的相关PR历史变更记录详见 完整更新日志。
/books/gdrive.db 创建gdrive.db符号链接,便于外部访问(如备份)/books/app.db 创建app.db符号链接,便于外部访问(如备份)glibc,因此需要来自ArchLinux的额外包/books 的主机卷/目录必须对其他用户具有_读-写-执行_权限,否则Calibre-Web配置无法完成 :-|/books 卷(如 /volume1/books),这会导致目录权限问题。建议在 /volume1/books 下创建子目录 calibre,然后将 /volume1/books/calibre 映射为 /books 卷http://主机名:<HTTP端口>,例如 http://主机名:8083\books默认管理员登录信息:
成功登录后,请修改默认密码并设置电子邮件地址。
要访问OPDS目录订阅源,请将电子书阅读器指向 http://主机名:<HTTP端口>/opds
在 管理员 -> 基本配置 -> 电子书转换器 中设置所需转换器:
/calibre-web/app/vendor/kindlegen,在 关于 中会显示 kindlegen Amazon kindlegen(Linux) V2.9 build 1028-0897292/opt/calibre/ebook-convert,在 关于 中会显示 Calibre converter ebook-convert (calibre 3.30.0)-v /volume1/docker/apps/calibre-web/app:/calibre-web/app),启动时会出现以下问题[INFO] 检出最新的Calibre-Web版本... [INFO] 自动更新已激活,尝试拉取Calibre-Web的最新源码... [INFO] ... 当前git状态为 fatal: not a git repository (or any parent up to mount point /calibre-web) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). [INFO] ... 拉取源码 fatal: not a git repository (or any parent up to mount point /calibre-web) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set). [INFO] ... 更新后的git状态为 fatal: not a git repository (or any parent up to mount point /calibre-web) Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
解决方法:在创建和启动容器前,删除 -v /volume1/docker/apps/calibre-web/app:/calibre-web/app 路径下的旧文件。
创建容器:
docker create --name=calibre-web --restart=always \ -v <你的Calibre书籍文件夹>:/books \ [-v <你的Calibre Web应用文件夹>:/calibre-web/app] \ [-v <你的Calibre Web kindlegen文件夹>:/calibre-web/kindlegen`] [-v <你的Calibre Web配置文件夹>:/calibre-web/config \] [-e USE_CONFIG_DIR=true \] [-e APP_REPO=https://github.com/janeczku/calibre-web.git \] [-e APP_BRANCH=master \] [-e SET_CONTAINER_TIMEZONE=true \] [-e CONTAINER_TIMEZONE=<容器时区值> \] [-e PGID=<组ID (gid)> -e PUID=<用户ID (uid)> \] -p <HTTP端口>:8083 \ technosoft2000/calibre-web
示例:
docker create --name=calibre-web --restart=always \ -v /volume1/books/calibre:/books \ -v /etc/localtime:/etc/localtime:ro \ -e PGID=65539 -e PUID=1029 \ -p 8083:8083 \ technosoft2000/calibre-web
或
docker create --name=calibre-web --restart=always \ -v /volume1/books/calibre:/books \ -v /volume1/docker/apps/calibre-web/config:/calibre-web/config \ -e USE_CONFIG_DIR=true \ -e SET_CONTAINER_TIMEZONE=true \ -e CONTAINER_TIMEZONE=Europe/Vienna \ -e PGID=65539 -e PUID=1029 \ -p 8083:8083 \ technosoft2000/calibre-web
启动容器:
docker start calibre-web
参数分为两部分,用冒号分隔。左侧描述主机,右侧描述容器。例如端口定义格式为 -p 外部端口:内部端口,表示将容器内部端口映射到主机外部端口。如 -p 8080:80 表示将容器内的80端口映射到主机的8080端口,通过 [***] 可访问容器内80端口的服务。
-p 8083 - Web用户界面的HTTP端口-v /books - 本地路径,包含Calibre书籍及存储书籍元信息的 metadata.db 文件-v /calibre-web/app - Calibre Web应用文件的本地路径;如需使用Google Drive,请设置此卷-v /calibre-web/kindlegen - Calibre Web kindlegen应用的本地路径-v /etc/localhost - 用于时间同步 - 可选-v /calibre-web/config - Calibre Web配置文件(如 app.db 和 gdrive.db)的本地路径;重要:必须将环境变量 USE_CONFIG_DIR 设置为 true - 可选-e USE_CONFIG_DIR=true - 激活专用配置目录,否则使用默认的 books 目录 - 可选-e APP_REPO - Calibre Web的GitHub仓库地址;默认使用 https://github.com/janeczku/calibre-web.git - 可选-e APP_BRANCH - 要使用的Calibre Web GitHub仓库分支,默认为 master - 可选-e SET_CONTAINER_TIMEZONE - 设为 true 以使用指定的 CONTAINER_TIMEZONE - 可选-e CONTAINER_TIMEZONE - 容器时区,可在 /usr/share/zoneinfo/ 目录下找到 - 可选-e PGID - 组ID - 详见下文说明 - 可选-e PUID - 用户ID - 详见下文说明 - 可选对于Synology NAS等无法映射 /etc/localtime 进行时间同步的情况,可将 SET_CONTAINER_TIMEZONE 设置为 true,并通过 CONTAINER_TIMEZONE 指定时区。可用时区可在 /usr/share/zoneinfo/ 目录下找到。
示例:
UTC - 未设置时的默认值Europe/BerlinEurope/ViennaAmerica/New_York容器运行后,可通过命令 docker exec -it <容器名> tree /usr/share/zoneinfo 查看所有可用时区。
详见 可能的时区值。
不要使用 localtime 作为值,否则会导致:failed to access '/etc/localtime': Too many levels of symbolic links
容器默认的区域设置环境变量如下:
# - LANG, LANGUAGE, LC_ALL: 语言相关设置(默认:en_US.UTF-8) LANG="en_US.UTF-8" LANGUAGE="en_US.UTF-8" LC_ALL="en_US.UTF-8"
如需设置其他区域,可在创建容器时通过 -e LANG、-e LANGUAGE、-e LC_ALL 指定环境变量。支持的区域值详见 可用区域,例如设置 de_DE 需使用 de_DE.UTF-8,示例:-e LANG=de_DE.UTF-8。
查看容器内当前区域设置:
root@NAS:~# docker exec -it calibre-web bash bash-4.4# echo $LANG $LANGUAGE $LC_ALL en_US.UTF-8 en_US.UTF-8 C
在容器内执行 ebook-convert 工具时,输出语言会根据当前区域设置变化:
bash-4.4# ebook-convert Usage: ebook-convert input_file output_file [options] Convert an e-book from one format to another. ...
切换到 de_DE.UTF-8 后的输出:
bash-4.4# export LANG=de_DE.UTF-8; LANGUAGE=de_DE.UTF-8; LC_ALL=de_DE.UTF-8 bash-4.4# echo $LANG $LANGUAGE $LC_ALL de_DE.UTF-8 de_DE.UTF-8 de_DE.UTF-8 bash-4.4# ebook-convert Verwendung: ebook-convert Quelldatei Ausgabedatei [Optionen] Ein eBook von einem Format in ein anderes konvertieren. ...
查看支持的区域:
bash-4.4# /usr/glibc-compat/bin/locale -a C POSIX aa_DJ.utf8 aa_ER.utf8 aa_ET.utf8 af_ZA.utf8 ...
使用数据卷(-v参数)时,主机OS与容器之间可能出现权限问题。通过指定用户PUID和组PGID可避免此问题。确保主机上的数据卷目录归属于指定的用户,即可正常工作。
例如PUID=1001和PGID=1001,可通过以下命令获取当前用户的ID:
$ id <docker用户> uid=1001(dockeruser) gid=1001(dockergroup) groups=1001(dockergroup)
/ |- books |- calibre-web |- app | |- "所有Calibre Web应用文件" | |- app.db -> /calibre-web/config/app.db | |- gdrive.db -> /calibre-web/config/gdrive.db | |- calibre-web.log | |- cps | | |- *.py | | |- *.pyc | | | |- vendor | |- kindlegen -> /calibre-web/kindlegen/kindlegen | |- config | |- app.db | |- gdrive.db | |- kindlegen |- EULA*.txt |- KindleGen Legal Notices*.txt |- docs |- kindlegen |- manual.html
容器运行时获取Shell访问:docker exec -it calibre-web /bin/bash
升级到最新版Calibre Web:docker restart calibre-web
实时监控容器日志:docker logs -f calibre-web
监控Calibre Web日志:docker exec -it calibre-web tail -f /calibre-web/app/calibre-web.log
查看Calibre Web基础镜像版本:docker inspect -f '{{ index .Config.Labels "image.base.version" }}' calibre-web
查看Calibre Web镜像版本:docker inspect -f '{{ index .Config.Labels "image.version" }}' calibre-web
登录DSM Web管理界面
通过SSH连接到NAS
sudo -i
或
sudo su -
密码与SSH认证密码相同。
mkdir -p /volume1/docker/ chown root:root /volume
以下是 technosoft2000/calibre-web 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




来自真实用户的反馈,见证轩辕镜像的优质服务