[部署] 私有化部署媒体下载服务 Cobalt

[部署] 私有化部署媒体下载服务 Cobalt

图片[1]-[部署] 私有化部署媒体下载服务 Cobalt-阿噜噜小栈

Cobalt 可解析、支持的平台众多,作者实测 YouTube、Bilibili、X/Twitter、Twitch、Tiktok 、Instagram、Reddit 等均可顺利解析、下载。同时,Cobalt 支持自托管部署,最新版本(10)提供有 api (后端/backend)docker 镜像,尚未发布 cobalt 10 前端镜像。历史版本 cobalt 7 则提供了完整的 api 和 web 模块。高级用户可以私有化部署 api 服务端,并通过前端(cobalt.tools 站点)提交,作为自定义处理服务器。私有化部署的主机应确保至少应放行 9000 端口或其他用于 api 通讯的端口。对于前端确有需求的开发者或爱好者,可以使用旧版本(7)docker 镜像,或者 git clone 后,在 node.js 环境中部署。docker 加速镜像几乎全部失效,可订阅「嘀嗒云」解决 docker.io、ghcr.io 等仓库的连接问题。

图片[2]-[部署] 私有化部署媒体下载服务 Cobalt-阿噜噜小栈

私有化部署最新版本[API版本]

在默认已安装 docker、docker-compose 的前提下,首先,创建 cobalt-api 服务定义配置文件。

#创建文件夹
mkdir /opt/cobalt
#进入文件夹
cd /opt/cobalt
#新建并编辑文件
vim docker-compose.yml

docker-compose.yml 文件内容参考如下,可直接拷贝并修改 URL 使用。本配置中的两项服务 cobalt-api 和 watchtower,watchtower 服务配置块为可选,可整体删除。watchtower 默认监听端口为 8080,可通过环境变量修改 。

services:
    cobalt-api:
        image: ghcr.io/imputnet/cobalt:latest
        restart: unless-stopped
        container_name: cobalt-api

        init: true

        ports:
            - 9000:9000/tcp
            # if you're using a reverse proxy, uncomment the next line and remove the one above (9000:9000/tcp):
            #- 127.0.0.1:9000:9000

        environment:
            API_URL: "http://cobalt.example.com/"
            # if you want to use cookies when fetching data from services, uncomment the next line and the lines under volume
            # COOKIE_PATH: "/cookies.json"
            # see docs/run-an-instance.md for more information
        labels:
            - com.centurylinklabs.watchtower.scope=cobalt

        # if you want to use cookies when fetching data from services, uncomment volumes and next line
        #volumes:
            #- ./cookies.json:/cookies.json

    # update the cobalt image automatically with watchtower
    watchtower:
        image: ghcr.io/containrrr/watchtower
        restart: unless-stopped
        command: --cleanup --scope cobalt --interval 900 --include-restarting
        volumes:
            - /var/run/docker.sock:/var/run/docker.sock

之后,在 cobalt 目录下用Docker-compose启动容器。

docker compose up -d
#docker-compose up -d

缺失 docker compose 命令时,应安装 docker-compose-plugin。要停止并删除 cobalt 容器以及 cobalt 自定义网络,可使用如下命令。

docker compose down
#docker-compose rm -f
#docker rm -f $(docker ps -a)
docker network prune -y

同时,需要在 cobalt.tools 中打开『Settings』,在『Instance』下启用『use a custom processing server』,输入自定义的服务端(api 容器)URL 并提交。前文直接使用官方站点在线下载峰值速度可达 30Mbps,私有化部署的下载速度取决于 api 服务部署主机和下载端的网络环境。

图片[3]-[部署] 私有化部署媒体下载服务 Cobalt-阿噜噜小栈

完整私有化部署

完整私有化部署要分别定义 api 和 web 服务,也就是需要加载两个容器。过程与使用最新版本部署 api 完全相同,仅服务定义文件 docker-compose.yml  有所区别。编辑适合自身网络环境和需求的服务定义文件时,应注意以下几点:

  • IP 或域名均可使用,但 API IP 必须为公网 IP ,支持 IPv6
  • WEB IP 如无公网访问需求,可为内网 IP
  • 注意修改镜像名称,cobalt 仅部分版本提供适配 armv7、arm64 平台的镜像
  • 支持 http、https,建议使用 https,仅私人访问可使用自签证书
  • 建议使用域名而非 IP,并提前配置好 DNS 解析
  • 如果部署于境外主机,建议使用 nginx、caddy 等进行反向代理,定义文件中应去掉端口号
  • 最新版本 10 部署 api,混搭版本 7 部署 web 未经验证,谨慎使用
version: '1.0'
services:
    cobalt-api:
        image: ghcr.io/imputnet/cobalt:7
        restart: unless-stopped
        container_name: cobalt-api
        init: true
        tty: true
        ports:
            - 9000:9000/tcp
        environment:
            # 私有化部署的主机IP或域名
            API_URL: "http://public_ip_or_domainname:9000/"
            API_NAME: "cobalt-api"
            # 如需开启cookie,则打开下一行,并删除volumes注释
            # COOKIE_PATH: "/cookies.json"
        #volumes:
            #- ./cookies.json:/cookies.json
    cobalt-web:
        image: ghcr.io/imputnet/cobalt:7
        restart: unless-stopped
        container_name: cobalt-web
        init: true
        tty: true
        ports:
            - 9001:9001/tcp
        environment:
            # web主机IP或域名
            WEB_URL: "http://ip_or_domainname:9001/"
            # api主机ip或域名
            API_URL: "http://public_ip_or_domainname:9000/"

编辑好 docker-compose.yml 后,运行 docker compose up -d 命令,docker 将自动拉取镜像,并按照定义文件创建 cobalt-api、cobalt-web 两项服务。

图片[4]-[部署] 私有化部署媒体下载服务 Cobalt-阿噜噜小栈

容器加载后,我们就可以通过域名或 IP 地址访问前端 web,并正常下载视频资源。示例使用了 http 协议,并添加 DNS AAAA 记录指向内网盒子。

图片[5]-[部署] 私有化部署媒体下载服务 Cobalt-阿噜噜小栈

至此,就完成了使用 cobalt 7 镜像进行完整私有化部署的任务。如果需要采用最新版本,应 git clone 所有代码,在配置好的 node.js 环境下部署 。

最后,特别提示,无论使用何种下载工具下载何种资源,务必尊重版权,严格遵守内容协议、遵照原创声明对每个人都有好处。

© 版权声明
THE END
喜欢就支持一下吧
点赞137 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容