COPS由Sébastien Lucas创建,现由MikesPub维护,全称为Calibre OPDS(和HTML)Php服务器。
COPS链接到您的Calibre图书馆数据库,允许直接从Web浏览器下载和发送书籍,并提供OPDS feed以连接到您的设备。Calibre图书馆中的更改会立即反映在COPS页面中。
更多详情请参见:COPS主页。别忘了查看Wiki。
在我看来,Calibre是一个很棒的工具,但作为内容服务器使用时体积过大且依赖过多。这是我开发这个OPDS服务器的主要原因。我需要一个可安装在小型服务器(我用的是Seagate Dockstar)上的简单工具。
我最初考虑使用Calibre2OPDS,但它生成静态文件,无法搜索。后来我添加了一个简单的HTML目录,可在我的Kobo上使用。
因此,COPS的主要优势包括:
如果您想使用OPDS feed,请记得在URL末尾添加/feed。
我们利用docker manifest实现多平台支持。只需拉取lscr.io/linuxserver/cops:latest即可获取适合您架构的正确镜像,也可通过标签拉取特定架构的镜像。
此镜像支持的架构:
| 架构 | 可用 | 标签 |
|---|---|---|
| x86-64 | ✅ | amd64-<version tag> |
| arm64 | ✅ | arm64v8-<version tag> |
通过http://<docker主机IP>:80访问Web界面。在移动设备上通过OPDS连接时,使用http://<docker主机IP>:80/index.php/feed。强烈建议在暴露到互联网前配置反向代理。有关更多信息(如需要凭据),请查看上述COPS Wiki。
LinuxServer版本允许您通过/config目录中的config/local.php自定义安装,还包含直接在浏览器中查看epub书籍所需的依赖。
以下提供docker-compose和docker cli两种方式帮助您创建容器。
[!NOTE] 除非参数标记为“可选”,否则均为必填项,必须提供值。
yaml--- services: cops: image: lscr.io/linuxserver/cops:latest container_name: cops environment: - PUID=1000 - PGID=1000 - TZ=Etc/UTC volumes: - /path/to/cops/config:/config - /path/to/data:/books ports: - 80:80 - 443:443 restart: unless-stopped
bashdocker run -d \ --name=cops \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Etc/UTC \ -p 80:80 \ -p 443:443 \ -v /path/to/cops/config:/config \ -v /path/to/data:/books \ --restart unless-stopped \ lscr.io/linuxserver/cops:latest
容器通过运行时传递的参数进行配置(如上所示)。参数以冒号分隔,表示<外部>:<内部>。例如,-p 8080:80将容器内的80端口暴露到主机IP的8080端口。
| 参数 | 功能 |
|---|---|
-p 80:80 | HTTP Web界面 |
-p 443:443 | HTTPS Web界面 |
-e PUID=1000 | 用户ID - 详见下文说明 |
-e PGID=1000 | 组ID - 详见下文说明 |
-e TZ=Etc/UTC | 指定时区,查看列表。 |
-v /config | COPS应用数据。 |
-v /books | Calibre metadata.db位置。 |
您可以通过特殊前缀FILE__从文件中设置任何环境变量。
例如:
bash-e FILE__MYVAR=/run/secrets/mysecretvariable
这会根据/run/secrets/mysecretvariable文件的内容设置环境变量MYVAR。
对于所有镜像,我们提供通过可选的-e UMASK=022设置来覆盖容器内服务的默认umask。请注意,umask是通过其值减去权限,而非添加。请在请求支持前阅读此处了解更多。
使用卷(-v标志)时,主机OS和容器之间可能出现权限问题。我们通过允许您指定用户PUID和组PGID来避免此问题。
确保主机上的任何卷目录都归您指定的用户所有,权限问题将迎刃而解。
此处PUID=1000和PGID=1000,通过id your_user命令可获取您的ID:
bashid your_user
示例输出:
textuid=1000(your_user) gid=1000(your_user) groups=1000(your_user)
我们发布了各种Docker Mods以启用容器内的附加功能。上述动态徽章可访问此镜像的可用mods(如有)以及可应用于任何LinuxServer.io镜像的通用mods。
容器运行时的Shell访问:
bashdocker exec -it cops /bin/bash
实时监控容器日志:
bashdocker logs -f cops
容器版本号:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' cops
镜像版本号:
bashdocker inspect -f '{{ index .Config.Labels "build_version" }}' lscr.io/linuxserver/cops:latest
我们的大多数镜像是静态、版本化的,需要更新镜像并重新创建容器以更新内部应用。除相关readme.md中注明的例外情况,不建议或支持在容器内更新应用。请查看上述应用设置部分,了解是否推荐对此镜像进行应用更新。
以下是更新容器的说明:
更新镜像:
所有镜像:
bashdocker-compose pull
单个镜像:
bashdocker-compose pull cops
更新容器:
所有容器:
bashdocker-compose up -d
单个容器:
bashdocker-compose up -d cops
还可删除旧的悬空镜像:
bashdocker image prune
更新镜像:
bashdocker pull lscr.io/linuxserver/cops:latest
停止运行中的容器:
bashdocker stop cops
删除容器:
bashdocker rm cops
使用上述相同的docker run参数重新创建容器(如正确映射到主机文件夹,您的/config文件夹和设置将被保留)
还可删除旧的悬空镜像:
bashdocker image prune
[!TIP] 我们推荐Diun用于更新通知。不推荐或支持其他自动无人值守更新容器的工具。
如您需要为开发目的或自定义逻辑对这些镜像进行本地修改:
bashgit clone [***] cd docker-cops docker build \ --no-cache \ --pull \ -t lscr.io/linuxserver/cops:latest .
可使用lscr.io/linuxserver/qemu-static在x86_64硬件上构建ARM变体,反之亦然:
bashdocker run --rm --privileged lscr.io/linuxserver/qemu-static --reset
注册后,可使用-f Dockerfile.aarch64指定要使用的dockerfile。
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429