🚀 使用 Docker Compose 部署 BGmi 追番下载器
🚀 使用 Docker Compose 部署 BGmi
本教程将指导您如何使用 Docker Compose 部署 BGmi,这是一个用于自动订阅和下载番剧的工具,带有 Web 管理界面并内置下载器,能帮助您轻松搭建个人追番系统。
📝 项目简介
BGmi 是一个用于订阅番剧(Bangumi)的命令行工具,并提供了 Web UI 界面 。其 bgmi-docker-all-in-one 镜像集成了 BGmi 服务和 Transmission 下载器 ,主要特点包括:
- 番剧订阅:支持通过 Web UI 订阅番剧。
- 自动下载:内置 Transmission 下载器,自动下载订阅的番剧 。
- 多数据源:支持
bangumi_moe、mikan_project和dmhy等数据源 。 - 日历视图:提供番剧更新日历,方便追踪 。
- 弹幕支持:可以为番剧提供弹幕支持 。
- 多下载器支持:除了内置的 Transmission,还支持 aria2、qBittorrent 或 Deluge 等下载工具 。
- 过滤器:支持关键词、字幕组和正则表达式过滤 。
自建 BGmi 服务器的优势在于,您可以自动追更番剧,所有数据保存在自己的服务器上,并通过 Web 界面轻松管理和观看。
⚙️ 部署前准备
1.服务器准备 * 一台云服务器(如腾讯云、阿里云)或本地设备(如 NAS、个人电脑)。推荐配置:1 核 1G 或更高,硬盘空间视番剧存储需求而定。 * 操作系统:Linux (如 Ubuntu 或 Debian)。
2.环境要求 * 确保系统已安装 Docker 和 Docker Compose。 * 可通过以下命令安装 Docker Compose (适用于 Linux):
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -oP '"tag_name": "\K(.*)(?=")')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
3.端口与网络 * 在服务器的防火墙或云服务商的安全组规则中,开放以下端口:
| 端口号 | 协议 | 所属服务 | 说明 |
| :--- | :--- | :--- | :--- |
| 9090 | TCP | BGmi | BGmi 的 Web UI 访问端口 |
| 9091 | TCP | Transmission | Transmission 下载器的 Web UI 访问端口 |
- 如果您的网络环境需要通过代理访问外网(例如某些国内服务器访问 GitHub 等资源),请确保代理服务器(例如
http://192.168.0.5:20171)可用。如果无需代理,可删除配置中的HTTP_PROXY、HTTPS_PROXY和NO_PROXY环境变量。
🚀 配置 Docker Compose
1.创建项目目录 创建一个目录来存放所有配置文件和数据。
mkdir -p ~/bgmi && cd ~/bgmi
2.创建 docker-compose.yml 文件
在该目录下创建 docker-compose.yml 文件,内容如下:
services:
bgmi:
image: codysk/bgmi-all-in-one:latest # 使用最新版集成镜像
container_name: bgmi # 容器名称,方便管理
restart: unless-stopped # 除手动停止外,容器意外退出时自动重启
ports:
- "9090:80" # BGmi Web UI :cite[10] # 映射 BGmi Web UI 端口(宿主机9090 → 容器80)
- "9091:9091" # Transmission Web UI :cite[6]:cite[10] # 映射 Transmission Web UI 端口(宿主机9091 → 容器9091)
volumes:
- ./bgmi/data:/bgmi # BGmi 数据持久化 :cite[10] # 数据持久化:宿主机目录 → 容器内 BGmi 数据目录(订阅、下载记录等)
environment:
- BGMI_SOURCE=mikan_project # 设置缺省数据源 # 数据源(可选:bangumi_moe、mikan_project、dmhy) :cite[6]:cite[10]
- BGMI_ADMIN_TOKEN=123456789 #your_admin_token_here # 设置 BGmi Web 界面身份验证令牌 :cite[6]:cite[10](建议修改为复杂字符串)
- TZ=Asia/Shanghai # 设置时区 :cite[6]:cite[10] # 时区设置(确保时间显示正确)
- HTTP_PROXY=http://192.168.0.5:20171 # HTTP 代理(若需访问境外数据源可配置,替换为实际代理)
- HTTPS_PROXY=http://192.168.0.5:20171 # HTTPS 代理(注意:即使代理是 HTTPS,此处仍用 http:// 开头)
- NO_PROXY=localhost,127.0.0.1 # 无需代理的地址(本地服务不经过代理)
#".\bgmi\data\conf\bgmi\config.toml" 配置文件
#".\bgmi\data\conf\transmission\settings.json" tm下载器的设置文件
**关键配置说明**:
* **`volumes`**:将宿主机的 `./bgmi/data` 目录挂载到容器内的 `/bgmi` 目录,用于持久化保存 BGmi 的数据库、配置和下载任务信息。这对于后续数据备份和迁移至关重要。
* **`environment`**:
* `BGMI_SOURCE`:设置番剧数据源,可根据网络情况在 `bangumi_moe`、`mikan_project` 和 `dmhy` 中选择 。
* `BGMI_ADMIN_TOKEN`:用于 BGmi Web 界面身份验证的令牌,请**务必修改** `123456789` 为一个强密码 。
* `TZ`:设置容器的时区,国内一般设为 `Asia/Shanghai`。
* `HTTP_PROXY`、`HTTPS_PROXY`、`NO_PROXY`:**可选配置**。如果您的服务器网络环境需要通过代理访问外部资源(例如获取番剧信息),请设置这些变量,并确保代理地址和端口正确。如果网络直连通畅,可删除这三行。
2.1补充:config.toml的注释信息,仅供参考。这部分部署内容将涉及环境配置,略微麻烦一点,耐心操作即可。
data_source = "bangumi_moe" # bangumi source,!!! 请不要手动修改此选项 !!!
download_delegate = "aria2-rpc" # 番剧下载工具 (aria2-rpc, transmission-rpc, deluge-rpc, qbittorrent-webapi)
tmp_path = "tmp/tmp" # tmp dir
save_path = "tmp/bangumi" # 下载番剧保存地址
max_path = 3 # 抓取数据时每个番剧最大抓取页数
bangumi_moe_url = "https://bangumi.moe"
share_dmhy_url = "https://share.dmhy.org"
mikan_url = "https://mikanani.me"
mikan_username = "" # 蜜柑计划的用户名
mikan_password = "" # 蜜柑计划的密码
enable_global_filters = true
global_filters = [
"Leopard-Raws",
"hevc",
"x265",
"c-a Raws",
"U3-Web",
]
proxy = '' # http proxy example: http://127.0.0.1:1080
[save_path_map] # 针对每部番剧设置下载路径
'致不灭的你 第二季' = '/home/trim21/downloads/bangumi/致不灭的你/s2/' # 如果使用绝对路径,可能导致 web-ui 无法正确显示视频文件。
'致不灭的你 第三季' = './致不灭的你/s3/' # 以 save_path 为基础路径的相对路径
[http]
admin_token = "dYMj-Z4bDRoQfd3x" # web ui 的密码
danmaku_api_url = ""
serve_static_files = false
[aria2]
rpc_url = "http://localhost:6800/rpc" # aria2c RPC URL (不是 jsonrpc URL, 如果你的 aria2c 运行在 localhost:6800, 对应的链接为 `http://localhost:6800/rpc`)
rpc_token = "token:" # aria2c RPC token (如果没有设置 token, 留空或者设置为 `token:`)
[transmission]
rpc_host = "127.0.0.1"
rpc_port = 9091
rpc_username = "your_username"
rpc_password = "your_password"
rpc_path = "/transmission/rpc" # transmission http rpc 的请求路径
[qbittorrent]
rpc_host = "127.0.0.1"
rpc_port = 8080
rpc_username = "admin"
rpc_password = "adminadmin"
category = ""
[deluge]
rpc_url = "http://127.0.0.1:8112/json"
rpc_password = "deluge"
2.2 注册 MIKAN 计划账号 番剧数据源夜梦推荐使用 mikan_project。切换数据源必须使用 bgmi source 命令,不能手动修改配置文件。手动修改配置文件会导致 bgmi 报错!
bgmi source mikan_project
切换为 mikan_project 以后,需要配置 MIKAN_USERNAME 和 MIKAN_PASSWORD(去蜜柑计划 – Mikan Project 注册账号,使用注册的账号与密码即可)。
注册完毕以后,可以使用:
vim config.toml
进入编辑器。在英文键盘下按下 i 键进入编辑模式,修改 mikan_username 和 mikan_password。夜梦建议在一步同时修改 download_delegate 为 qbittorrent-webapi,具体修改如下图所示:

修改完成后,按下 esc 键,输入:wq 保存退出。
🎯 启动与验证
1.启动服务
在 docker-compose.yml 文件所在目录,执行以下命令以后台模式启动服务:
docker-compose up -d
此命令会自动拉取 codysk/bgmi-all-in-one:latest 镜像并启动容器。
2.验证服务状态 使用以下命令检查容器是否正常运行:
docker-compose ps
如果看到 bgmi 容器的状态 (State) 为 Up,则表示启动成功。
3.访问 Web UI
* **BGmi 管理界面**:浏览器打开 `http://你的服务器IP:9090`。首次访问可能会提示输入 Token,请输入在 `docker-compose.yml` 中设置的 `BGMI_ADMIN_TOKEN`(例如 `123456789`) 。
* **Transmission 下载器界面**:浏览器打开 `http://你的服务器IP:9091`,即可访问内置的 Transmission 下载器 Web UI 。
🔧 基础配置与使用
1.BGmi 初始设置 * 获取番剧信息:首次部署后,BGmi 界面可能无内容。你需要通过命令行更新番剧时间表 :
# 进入容器执行命令
docker exec -it bgmi bgmi cal
此命令会从数据源获取最新的番剧信息。执行完毕后刷新 BGmi Web 界面即可看到番剧。
* **订阅番剧**:
* 在 BGmi Web 界面 (`http://你的服务器IP:9090`) 点击 "Subscribe"。
* 根据提示输入之前设置的 `BGMI_ADMIN_TOKEN`。
* 找到你想追的番剧并点击订阅。
2.管理下载
* BGmi 会自动下载已订阅番剧的最新剧集,下载任务由内置的 Transmission 处理。
* 你可以在 BGmi 界面的 "Bangumi Files" 查看已下载和正在下载的文件列表 。
* 也可以通过 Transmission 的 Web UI (http://你的服务器IP:9091) 更详细地管理下载任务,如调整队列、暂停或删除任务等 。
3.观看番剧 * 在 BGmi 的 "Bangumi Files" 页面,对于已下载完成的番剧文件,可以直接点击文件名在浏览器中播放观看 。
🛠️ 维护与管理
- 更新服务 当有新版本的 BGmi 镜像发布时,可以通过以下步骤更新:
# 进入 docker-compose.yml 所在目录
cd ~/bgmi
# 拉取最新镜像
docker-compose pull
# 重新启动服务
docker-compose up -d
# 可选择性删除旧镜像
docker image prune
-
数据备份 定期备份 BGmi 项目目录下的
bgmi/data文件夹。这个目录包含了所有的订阅信息、配置以及通过 BGmi 下载的番剧文件。 -
日志查看 如果遇到问题,可以查看容器的日志来帮助诊断:
# 查看 BGmi 服务日志
docker-compose logs bgmi
# 实时查看日志
docker-compose logs -f bgmi
❓ 常见问题排查
-
BGmi 网页打开后无番剧内容显示
- 请确保已按照前述步骤执行了
docker exec -it bgmi bgmi cal命令来更新番剧时间表 。 - 检查
docker-compose.yml中的BGMI_SOURCE设置,可尝试更换数据源(例如bangumi_moe)。 - 检查服务器防火墙及云服务商安全组规则,确保端口
9090已开放。
- 请确保已按照前述步骤执行了
-
无法订阅番剧或提示 Token 错误
- 确认在访问 BGmi Web 界面的 "Subscribe" 页面时,输入的 Token 与
docker-compose.yml文件中BGMI_ADMIN_TOKEN的值完全一致 。 - 如果需要修改 Token,可以编辑
docker-compose.yml文件中的BGMI_ADMIN_TOKEN环境变量,然后运行docker-compose up -d重启容器。
- 确认在访问 BGmi Web 界面的 "Subscribe" 页面时,输入的 Token 与
-
番剧无法下载或下载速度慢
- 通过
http://你的服务器IP:9091访问 Transmission Web UI,检查下载任务状态及错误信息 。 - 确认服务器网络连接正常。如果你配置了 HTTP_PROXY 等环境变量,请验证代理服务器是否工作正常且能够访问番剧资源站。; 切换数据源:修改
BGMI_SOURCE为其他选项(如mikan_project不行换dmhy) - 检查下载目录的磁盘空间是否充足。
- 通过
-
服务启动失败
- 使用
docker-compose logs bgmi查看具体错误日志。 - 检查
docker-compose.yml文件格式是否正确,特别是缩进和引号。 - 确认所有映射的目录在宿主机上存在且具有正确的读写权限。
- 使用
通过以上步骤,你应该已经成功部署了属于自己的 BGmi 番剧订阅下载服务器,享受便捷的自动追番体验!