Decentralization? We're still early!

Anx Calibre Manager:打造现代化的个人电子书管理中心

  • Anx Calibre Manager:打造现代化的个人电子书管理中心

    發布人 Brave 2025-10-10 09:19

    在数字阅读日益普及的今天,如何高效、便捷地管理自己日益增长的电子书库,成为了许多阅读爱好者面临的共同挑战。传统的电子书管理软件 Calibre 功能强大,但在移动端体验和现代化 Web 访问方面略显不足。为了解决这一痛点,开源项目 Anx Calibre Manager 应运而生。它是一个现代化的、移动端优先的 Web 应用,旨在为你提供一个集书籍管理、在线阅读、多设备同步和 AI 交互于一体的终极解决方案。

    本文将全面介绍 Anx Calibre Manager 的核心功能、部署方法和高级用法,帮助你了解它如何革新你的数字阅读体验。

    ✨ 核心功能:不止于书库管理

    Anx Calibre Manager 不仅仅是 Calibre 的一个 Web 前端,它集成了一系列强大而创新的功能,旨在满足现代读者的多样化需求。

    1. 现代化与移动端优先的用户体验

    • 移动端优先界面: 专为手机优化,界面简洁、响应迅速,让你随时随地都能轻松管理书库。
    • PWA 支持: 可作为渐进式 Web 应用 (PWA) 安装到你的手机或桌面,提供接近原生应用的流畅体验,无需通过浏览器地址栏访问。
    • 多语言支持: 内置完整的国际化方案,支持简体中文、繁体中文、英语、西班牙语、法语和德语,满足全球用户的需求。

    2. 强大的阅读与消费功能

    • 浏览器内阅读器: 无需下载,直接在浏览器中打开并预览 EPUB 格式的电子书。阅读器还内置了文本转语音(TTS)功能,可以为你朗读书籍内容。
    • KOReader 同步: 对于使用 Kobo、Kindle 等电纸书设备并安装了 KOReader 的用户,此功能是一大福音。你可以将阅读进度和阅读时长无缝同步到 Anx Calibre Manager,实现跨设备阅读体验的统一。
    • 智能推送到 Kindle: 发送书籍到你的 Kindle 设备从未如此简单。应用会自动处理格式转换:如果书籍已有 EPUB 格式,则直接发送;如果没有,它会根据你的偏好,自动将最佳可用格式转换为 EPUB 后再发送,确保最佳的兼容性和阅读体验。
    • 集成的 WebDAV 服务器: 每个用户都会获得一个独立的个人 WebDAV 文件夹。这不仅方便了与 Anx-reader 等兼容设备的同步,也为其他支持 WebDAV 的应用(如某些笔记软件或阅读器)提供了接入书库的通道。

    3. 创新的 AI 与有声书功能

    • 与 AI 对话: 这是 Anx Calibre Manager 最具前瞻性的功能之一。你可以与书库中的任何一本书进行“聊天”,向 AI 提问关于书籍内容的问题、获取章节摘要,或是探讨书中深层次的主题。这为知识探索和内容回顾提供了全新的维度。
    • 有声书生成与播报: 你可以将任何 EPUB 电子书转换为带章节标记的 M4B 有声书。该功能利用可配置的文本转语音(TTS)服务(如 Microsoft Edge TTS 或 OpenAI TTS)实现。生成的 M4B 文件与 Audiobookshelf 等专业有声书服务器完全兼容。
    • 在线有声书播放器: 生成的有声书可以直接在 Web 界面中播放,你的收听进度会被自动保存和同步,方便你在不同设备间切换。

    4. 完善的管理与协作机制

    • Calibre 深度集成: 应用通过连接到你现有的 Calibre 内容服务器来浏览、搜索和管理书籍,充分利用了 Calibre 强大的后端能力。
    • 精细的用户管理: 内置多角色用户系统(管理员、维护者、普通用户),满足个人使用或家庭、小团队共享书库的需求。
    • 仅限邀请注册: 默认开启邀请码注册机制,管理员可以生成邀请码来控制新用户加入,有效防止未经授权的访问,保障书库安全。
    • 用户可编辑上传书籍: 普通用户可以编辑自己上传书籍的元数据。此功能通过在 Calibre 中添加一个名为 #library 的自定义列来实现,系统会自动记录上传者,并授予其编辑权限。

    5. 个性化与数据洞察

    • 阅读统计: 系统会自动为每位用户生成个人阅读统计页面,包含精美的年度阅读热力图、在读书籍和已读书籍列表。该页面可以设置为公开分享或保持私有。

    🚀 如何部署 Anx Calibre Manager

    该应用被设计为通过 Docker 进行部署,过程非常简单。

    先决条件:

    1. 你的服务器上已安装 Docker 和 Docker Compose。
    2. 一个正在运行的 Calibre 服务器(推荐使用 linuxserver/calibre Docker 镜像)。虽然可选,但大部分核心功能都依赖它。

    快速开始 (使用 docker run)

    这是最简单的入门方法,只需一条命令即可启动。

    1.创建用于持久化存储配置和 WebDAV 文件的目录:

    mkdir -p ./config mkdir -p ./webdav

    2.运行 Docker 容器:

    docker run -d \ --name anx-calibre-manager \ -p 5000:5000 \ -v $(pwd)/config:/config \ -v $(pwd)/webdav:/webdav \ --restart unless-stopped \ ghcr.io/ptbsare/anx-calibre-manager:latest

    3.启动后,在浏览器中访问 http://<你的服务器IP>:5000。第一个注册的用户将自动成为管理员。之后,你可以在网页的设置界面中配置 Calibre 服务器连接等信息。

    高级配置 (使用 docker-compose.yml)

    对于需要进行更多自定义配置的用户,推荐使用 docker-compose

    # Docker Compose 文件版本,建议使用 '3.8' 或更高版本
    version: '3.8'
    
    # 定义所有服务
    services:
      # Anx Calibre Manager 服务
      anx-calibre-manager:
        # 使用官方指定的 Docker 镜像
        image: ghcr.io/ptbsare/anx-calibre-manager:latest
        container_name: anx-calibre-manager
        ports:
          # 将主机的 5000 端口映射到容器的 5000 端口
          # 如果主机 5000 端口被占用,可以修改前面的数字,例如 "5001:5000"
          - "5000:5000"
        volumes:
          # 挂载配置文件目录,用于持久化存储数据库和设置
          - ./anx-config:/config
          # 挂载 WebDAV 数据目录,用于存储用户的 WebDAV 文件
          - ./webdav:/webdav
          # (可选) 挂载有声书目录,用于存放生成的 M4B 有声书文件
          - ./audiobooks:/audiobooks
          # (可选) 挂载字体目录,用于解决书籍转换时的字体问题 (例如中文)
          # 您需要将自己的字体文件 (如 .ttf, .otf) 放入本地的 ./fonts 文件夹
          - ./fonts:/opt/share/fonts
        environment:
          # --- 基础设置 ---
          # 设置运行应用的用户和组ID,避免权限问题
          # 在 Linux/macOS 上运行 `id -u` 和 `id -g` 获取
          - PUID=1000
          - PGID=1000
          # 设置时区,请根据您所在位置修改,例如 "Asia/Shanghai"
          - TZ=Asia/Shanghai
          # (必填) 设置一个长且随机的安全密钥,用于会话安全
          - SECRET_KEY=your_super_secret_key_please_change_this
          
          # --- Calibre 连接设置 ---
          # 使用 Docker 内部网络连接到 calibre-server 服务
          # 'calibre-server' 是下面定义的服务名
          - CALIBRE_URL=http://calibre-server:8080
          # 设置 Calibre 用户名,必须与下面 calibre-server 服务中设置的相同
          - CALIBRE_USERNAME=your_calibre_username # 请修改
          # 设置 Calibre 密码,必须与下面 calibre-server 服务中设置的相同
          - CALIBRE_PASSWORD=your_calibre_password # 请修改
          # Calibre 默认书库ID。通常是 'Calibre_Library' 或 'Calibre_书库'
          # 您可以在 Calibre 网页界面确认
          - CALIBRE_DEFAULT_LIBRARY_ID=Calibre_Library
          - CALIBRE_ADD_DUPLICATES=false
          # 设置为 true 时,新用户注册需要邀请码
          - REQUIRE_INVITE_CODE=true
        restart: unless-stopped
        # 确保 calibre-server 服务先于此服务启动
        depends_on:
          - calibre-server
    
      # Calibre 内容服务器服务
      calibre-server:
        # 使用 linuxserver.io 提供的 Calibre 镜像
        image: lscr.io/linuxserver/calibre:latest
        container_name: calibre-server
        ports:
          # Calibre 内容服务器端口 (用于 Anx 连接)
          - "8080:8080"
          # Calibre 网页管理界面端口 (用于您管理书库)
          - "8081:8081"
        volumes:
          # 挂载 Calibre 的配置目录
          - ./calibre-config:/config
          # 挂载 Calibre 的书库目录,您的所有电子书将存放在这里
          - ./calibre-library:/books
        environment:
          # 同样设置 PUID, PGID 和 TZ,保持与上面一致
          - PUID=1000
          - PGID=1000
          - TZ=Asia/Shanghai # 请修改
          # --- Calibre 内容服务器用户凭证 ---
          # 设置用于内容服务器的用户名和密码
          # Anx Calibre Manager 将使用这些凭证来访问 Calibre
          - CALIBRE_USERNAME=your_calibre_username # 请修改,并与上面保持一致
          - CALIBRE_PASSWORD=your_calibre_password # 请修改,并与上面保持一致
        restart: unless-stopped

    自定义字体

    如果在转换包含特殊字符(如中文)的书籍时遇到字体缺失的问题,你可以将包含所需字体文件(如 .ttf, .otf)的本地目录挂载到容器的 /opt/share/fonts 路径,以解决此问题。

    🔧 常见问题排查 (FAQ)

    1. 为什么我看不到 Calibre 书库里的书?
      • A: 请确保你启动的是 Calibre 的内容服务 (Content Server),而非 calibre-web。内容服务通常运行在 8080 端口。
      • B: 检查在 Anx 设置中填写的 Calibre URL、用户名和密码是否正确。
    2. 为什么上传/编辑书籍时提示 401 Unauthorized?
      • A: 你在 Anx 中配置的 Calibre 用户需要有写入权限。请在 Calibre 桌面端 -> “首选项” -> “通过网络共享” -> “用户账户”中为该用户勾选写入权限。
    3. 如何找到我的 library_id
      • A: 在浏览器中访问你的 Calibre 内容服务,书库名称旁边显示的通常就是书库 ID(空格会被替换为下划线)。例如,“Calibre 书库”的 ID 通常是 Calibre_书库
    4. 编辑已读日期或上传书籍时出现 400 Bad Request 错误?
      • A: 这是因为你的 Calibre 书库缺少必要的自定义列。请在 Calibre 桌面端添加以下两个自定义列并重启 Calibre 服务器:
        1. #library (查找名称), 类型为 文本,逗号分隔
        2. #readdate (查找名称), 类型为 日期

    🤖 MCP 服务器:与你的书库智能交互

    Anx Calibre Manager 内置了一个符合规范的 MCP (Model Context Protocol) 服务器,允许 AI 代理或外部工具通过 API 与你的书库进行安全的交互。

    用户可以在设置页面生成 API 令牌,然后通过向 http://<你的服务地址>/mcp?token=YOUR_TOKEN 端点发送 JSON-RPC 2.0 请求来调用各种工具。

    你可以向支持工具调用的 AI 代理发出这样的自然语言指令:

    • “查找关于Python编程的书籍。”
    • “最近添加的5本书是哪些?把第一本发送到我的Kindle。”
    • “为《三体》这本书生成有声书。”
    • “《沙丘》这本书我读到哪里了?”
    • “总结一下《基地》第一章的内容。”

    这为自动化工作流和实现更高级的智能交互打开了想象空间。

    Github地址:https://github.com/ptbsare/anx-calibre-manager

    总结

    Anx Calibre Manager 不仅仅是一个 Calibre 的现代化皮肤,它是一个功能强大、设计前沿的个人数字阅读中心。通过整合移动优先的 UI、PWA、AI 对话、有声书生成、多设备同步等一系列创新功能,它极大地扩展了 Calibre 的能力边界。Anx Calibre Manager 作为不容错过的开源利器,可以将你的本地书库转变为一个随时随地可访问、功能丰富的云端阅读平台。

    Brave 回复 1 week ago 1 成員 · 0 回复
  • 0 回复

歡迎留言回复交流。

Log in to reply.

讨论開始
00 回复 2018 年 6 月
現在