mikespub/seblucas-cops

Calibre OPDS (和 HTML) PHP 服务器:Calibre内容服务器的基于Web的轻量级替代品 / Calibre2OPDS用于提供电子书(epub、mobi、pdf等)

3.2.2 2024-09-14 15:52 UTC

README

3.x 版本的重大变更(PHP >= 8.2)

面向所有人

  • 将自定义的 config_local.php 文件移动到 Web 服务器/容器上的 config/local.php
  • 将电子阅读器中的 OPDS 馈送中的任何 feed.php 链接替换为 index.php/feed

较少见

  • 如果您将 lib/test/ 目录映射到某个位置,例如 docker compose 文件、Web 服务器配置等,您需要将其分别替换为 src/tests/
  • 如果您在其他链接中使用其他端点,例如小部件的 REST API,您需要使用路由 URL,并将 restapi.php 替换为 index.php/restapi 等。

此分支的先决条件

  • PHP 8.x 具有DOM、GD、Intl、Json、PDO SQLite、SQLite3、XML、XMLWriter和ZLib支持(建议使用PHP 8.1或更高版本)
  • 3.x.x 版本仅适用于 PHP >= 8.2 - 这对于2024年和以后的大多数源代码和docker镜像安装是典型的。注意:更新 .epub 文件以更新元数据或封面需要64位平台
  • 2.x.x 版本仅适用于 PHP >= 8.1 - 这对于2023年和以后的大多数源代码和docker镜像安装是典型的。注意:更新 .epub 文件以更新元数据或封面需要64位平台
  • 1.x.x 版本在必要时仍支持 PHP 7.4 - 此分支不支持早期PHP 7.x(或5.x)版本

用户支持问题仍然可以在https://github.com/seblucas/cops/issues找到 - 如果您需要有关COPS的一般帮助,请使用它。对于2.x和3.x版本,请在新问题https://github.com/mikespub-org/seblucas-cops/issues中报告

拉取请求应针对https://github.com/mikespub-org/seblucas-cops/pulls中的最新源代码 - 感谢任何贡献 :-)

查看CHANGELOG以了解与@seblucas的上游存储库https://github.com/seblucas/cops相比的更改

此分支的安装

与原始版本相同的选项

  1. 发行版包
  1. 源代码
$ cd seblucas-cops
$ composer install --no-dev -o
  1. Docker 镜像
  1. Home Assistant 插件

其余的安装过程与下面原始内容非常相似。但如果您是从源代码安装,只需使用您常规的composer 2.x - 您不需要下载旧的composer 1.x版本或安装全局资产插件 anymore :-)

注意:对于第一次安装,您需要将config/local.php.example复制到config/local.php,并根据需要自定义calibre目录等。之后,如果第一次浏览COPS时出现错误或空白页面,您可以通过浏览到http://.../checkconfig.php来检查常见问题。

COPS(原始)

COPS代表Calibre OPDS(和HTML)Php服务器。

有关更多详细信息,请参阅COPS的主页

别忘了检查Wiki

为什么?

在我看来,Calibre是一个神奇的工具,但它太大,依赖性太多,不适合用作内容服务器。

这就是我编写这个OPDS服务器的主要原因。我需要一个简单的工具安装在小服务器上(以我的Seagate Dockstar为例)。

我最初想到了Calibre2OPDS,但因为它生成静态文件,所以无法进行搜索。

后来我添加了一个简单的HTML目录,应该可以用在我的Kobo上。

因此,COPS的主要优点是

  • 无需许多依赖项。
  • 无需大量的CPU或RAM。
  • 代码不多。
  • 提供搜索功能。
  • 编码起来很有趣。

如果您想使用OPDS源,别忘了在URL末尾指定feed.php。

您只需按您喜欢的任何方式(Dropbox、Bt Sync、Syncthing、使用与Nextcloud共享的目录等)同步您的Calibre目录到COPS服务器。

先决条件(已过时)

  1. PHP 5.3、5.4、5.5、5.6、7.X或hhvm,具有GD图像处理、Libxml、Intl、Json和SQLite3支持(推荐使用PHP 5.6或更高版本)。
  2. 支持PHP的Web服务器。我已经测试了Nginx和Apache的各种版本。其他人报告了它在Apache和Cherokee上也能工作。您也可以使用PHP嵌入服务器(https://github.com/seblucas/cops/wiki/Howto---PhpEmbeddedServer
  3. calibre库的路径(metadata.db、格式和封面文件)。

在基于Debian的Linux上,您可以使用:apt-get install php5-gd php5-sqlite php5-json php5-intl

如果您使用Debian Stretch,请使用:apt-get install php7.0-gd php7.0-sqlite3 php7.0-json php7.0-intl php7.0-xml php7.0-mbstring php7.0-zip

在Centos上,您可能需要添加:yum install php-xml

安装版本(最简单的方法)

  1. 将您从发布页面获得的zip文件解压到Web空间中的一个文件夹(可以被Web服务器访问)。
  2. 如果您正在进行首次安装,请将config_local.php.example复制到config_local.php
  3. 编辑config_local.php以匹配您的配置。
  4. 如果需要,从config_default.php添加其他配置项。

如果您喜欢Docker,您还可以尝试这个来自linuxserver.io的多架构Docker容器。它为x64和arm64提供了构建。

从源代码安装

git clone https://github.com/seblucas/cops.git # or download lastest zip see below
cd cops
# use standard composer 2.x now, no need to install older 1.x version and plugin for PHP 8.x version
#wget https://getcomposer.org.cn/composer.phar
#php composer.phar global require "fxp/composer-asset-plugin:~1.1"
#php composer.phar install --no-dev --optimize-autoloader
composer install --no-dev --optimize-autoloader

之后,您可以从第二步开始使用之前的方法。

注意,您也可以通过最新主版本的zip文件来获取。

注意,如果您的PHP版本低于5.6,那么在开始最后一行之前,您可能需要删除composer.lock

我的Calibre目录应该放在哪里?

简单来说:始终放在COPS目录之外,尤其是如果COPS安装在VPS/服务器上。如果遵循我的建议,您的数据将更安全。

如果您选择将Calibre目录放在您的Web目录中并使用Nginx,那么您需要编辑/etc/nginx/mime.types以添加以下行

application/epub+zip epub;
application/x-mobipocket-ebook mobi prc azw;

已知问题

不多,除了代码质量不佳(这是我第一个PHP项目)之外;()

有关开放问题,请参见https://github.com/seblucas/cops/issues

需要帮助

请阅读https://github.com/seblucas/cops/wiki并检查常见问题解答。

贡献

如您所见这里,我非常欣赏每一个贡献,并且随着时间的推移有很多。所以请不要害羞,提交您的Pull Requests。

注意:翻译者请优先使用Transifex,而不是提交PR。

我只有一个限制(可能还有更多的限制,但这是最严重的): COPS的目标是提供Calibre内容服务器的替代方案,而不是完全替代Calibre。因此,我将拒绝任何修改数据库内容的PR。

致谢

使用的外部库

版权与许可

COPS - 2012-2019 (c) Sébastien Lucas

请参阅LICENSE和文件头部以获取许可信息