3分钟上手!Cobalt Docker部署实战:从0到1搭建个人媒体下载站
【免费下载链接】cobalt save what you love 项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt
你是否还在为不同平台的媒体下载工具切换而烦恼?是否希望拥有一个统一、高效的个人下载解决方案?本文将带你通过Docker Compose快速部署Cobalt实例,3分钟即可完成从环境准备到成功运行的全过程,让你轻松管理和保存喜爱的网络内容。
准备工作:环境检查与依赖安装
在开始部署前,请确保你的系统已安装Docker和Docker Compose。Cobalt官方推荐使用Docker Compose方式部署,这种方式可以简化配置管理并确保环境一致性。
系统要求
- Docker Engine (20.10+)
- Docker Compose (v2+)
- 至少1GB可用内存
- 网络连接(用于拉取镜像和媒体下载)
安装指引
如果你需要安装Docker环境,可以参考以下步骤(以Ubuntu为例):
# 安装Docker
sudo apt update && sudo apt install -y docker.io docker-compose
# 启动Docker服务
sudo systemctl enable --now docker
# 将当前用户加入docker组(避免每次使用sudo)
sudo usermod -aG docker $USER && newgrp docker
部署步骤:3分钟极速启动
1. 创建项目目录
首先创建一个专用目录存放Cobalt配置文件:
mkdir -p ~/cobalt && cd ~/cobalt
2. 编写Docker Compose配置文件
创建docker-compose.yml文件,复制以下内容并根据需要修改:
version: '3.5'
services:
cobalt-api:
image: ghcr.io/imputnet/cobalt:7
restart: unless-stopped
container_name: cobalt-api
init: true
ports:
- 9000:9000/tcp
environment:
API_URL: "http://localhost:9000/" # 修改为你的API访问地址
API_NAME: "my-cobalt-instance" # 自定义实例名称
# 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
ports:
- 9001:9001/tcp
environment:
WEB_URL: "http://localhost:9001/" # 修改为你的Web访问地址
API_URL: "http://localhost:9000/" # 指向上面配置的API地址
watchtower:
image: ghcr.io/containrrr/watchtower
restart: unless-stopped
command: --cleanup --scope cobalt --interval 900
volumes:
- /var/run/docker.sock:/var/run/docker.sock
3. 启动服务
在项目目录下执行以下命令启动所有服务:
docker compose up -d
该命令会自动拉取Cobalt和Watchtower镜像,并在后台启动三个容器:
cobalt-api:核心API服务,负责处理下载请求cobalt-web:Web前端界面,提供用户交互watchtower:自动更新服务,保持Cobalt版本最新
4. 验证部署
服务启动后,通过以下方式验证是否部署成功:
- 访问Web界面:http://localhost:9001
- 检查API状态:http://localhost:9000/api/serverInfo
如果一切正常,你将看到Cobalt的Web界面,如下所示:
高级配置:解锁更多功能
配置认证信息(可选)
某些平台(如Instagram、TikTok)需要登录认证才能下载内容。你可以通过cookies.json文件提供认证信息:
- 创建
cookies.json文件:
{
"instagram": [
"mid=<你的mid>; ig_did=<你的ig_did>; csrftoken=<你的csrftoken>; ds_user_id=<你的用户ID>; sessionid=<你的会话ID>"
],
"tiktok": [
"auth_token=<你的auth_token>; ct0=<你的ct0>"
]
}
- 修改
docker-compose.yml,取消以下两行的注释:
# COOKIE_PATH: "/cookies.json"
# volumes:
# - ./cookies.json:/cookies.json
- 重启服务使配置生效:
docker compose up -d
环境变量配置
Cobalt提供了丰富的环境变量来自定义服务行为,以下是常用配置项:
| 服务类型 | 变量名 | 默认值 | 说明 |
|---|---|---|---|
| API | API_PORT | 9000 | API服务端口 |
| API | RATELIMIT_MAX | 20 | 每分钟最大请求数 |
| API | DURATION_LIMIT | 10800 | 最大视频时长(秒) |
| Web | WEB_PORT | 9001 | Web服务端口 |
| Web | SHOW_SPONSORS | 0 | 是否显示赞助商列表(1=显示) |
完整的环境变量列表可参考官方文档:docs/run-an-instance.md
故障排除:常见问题解决
服务无法启动
如果容器无法正常启动,可以通过以下命令查看日志:
# 查看API服务日志
docker logs cobalt-api
# 查看Web服务日志
docker logs cobalt-web
端口冲突问题
如果9000或9001端口已被占用,可以修改docker-compose.yml中的端口映射:
ports:
- 9002:9000/tcp # 将主机9002端口映射到容器9000端口
下载失败
如果遇到下载失败,可能是以下原因:
- 目标平台需要认证,但未配置cookies
- 视频受地区限制,可以尝试配置代理
- 视频时长超过限制(默认3小时),可修改
DURATION_LIMIT环境变量
总结与后续优化
通过本文的步骤,你已经成功部署了一个功能完整的Cobalt实例。为了获得更好的使用体验,建议进行以下优化:
- 配置反向代理:使用Nginx或Caddy为Cobalt添加HTTPS支持,提高安全性
- 设置存储策略:配置外部存储卷,避免容器内数据丢失
- 监控服务状态:添加Prometheus+Grafana监控系统资源使用情况
- 定期备份配置:特别是
cookies.json和docker-compose.yml文件
Cobalt的Docker镜像会通过Watchtower自动更新,确保你始终使用最新版本。如果需要手动更新,可以执行:
docker compose pull && docker compose up -d
现在,你可以开始使用Cobalt下载和管理网络上的媒体内容了。更多高级功能和配置选项,请参考官方文档:docs/run-an-instance.md。
【免费下载链接】cobalt save what you love 项目地址: https://gitcode.com/GitHub_Trending/cob/cobalt
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考






