Skip to content

🚀 使用 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_moemikan_projectdmhy 等数据源 。
  • 日历视图:提供番剧更新日历,方便追踪 。
  • 弹幕支持:可以为番剧提供弹幕支持 。
  • 多下载器支持:除了内置的 Transmission,还支持 aria2、qBittorrent 或 Deluge 等下载工具 。
  • 过滤器:支持关键词、字幕组和正则表达式过滤 。

自建 BGmi 服务器的优势在于,您可以自动追更番剧,所有数据保存在自己的服务器上,并通过 Web 界面轻松管理和观看。

⚙️ 部署前准备

1.服务器准备 * 一台云服务器(如腾讯云、阿里云)或本地设备(如 NAS、个人电脑)。推荐配置:1 核 1G 或更高,硬盘空间视番剧存储需求而定。 * 操作系统:Linux (如 Ubuntu 或 Debian)。

2.环境要求 * 确保系统已安装 DockerDocker 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_PROXYHTTPS_PROXYNO_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 网页打开后无番剧内容显示

    1. 请确保已按照前述步骤执行了 docker exec -it bgmi bgmi cal 命令来更新番剧时间表 。
    2. 检查 docker-compose.yml 中的 BGMI_SOURCE 设置,可尝试更换数据源(例如 bangumi_moe)。
    3. 检查服务器防火墙及云服务商安全组规则,确保端口 9090 已开放。
  • 无法订阅番剧或提示 Token 错误

    1. 确认在访问 BGmi Web 界面的 "Subscribe" 页面时,输入的 Token 与 docker-compose.yml 文件中 BGMI_ADMIN_TOKEN 的值完全一致 。
    2. 如果需要修改 Token,可以编辑 docker-compose.yml 文件中的 BGMI_ADMIN_TOKEN 环境变量,然后运行 docker-compose up -d 重启容器。
  • 番剧无法下载或下载速度慢

    1. 通过 http://你的服务器IP:9091 访问 Transmission Web UI,检查下载任务状态及错误信息 。
    2. 确认服务器网络连接正常。如果你配置了 HTTP_PROXY 等环境变量,请验证代理服务器是否工作正常且能够访问番剧资源站。; 切换数据源:修改 BGMI_SOURCE 为其他选项(如 mikan_project 不行换 dmhy
    3. 检查下载目录的磁盘空间是否充足。
  • 服务启动失败

    1. 使用 docker-compose logs bgmi 查看具体错误日志。
    2. 检查 docker-compose.yml 文件格式是否正确,特别是缩进和引号。
    3. 确认所有映射的目录在宿主机上存在且具有正确的读写权限。

通过以上步骤,你应该已经成功部署了属于自己的 BGmi 番剧订阅下载服务器,享受便捷的自动追番体验!


🎯 参考链接

  1. 用命令行程序来追番 带WEBUI | BGmi – 夜梦星尘の折腾日记
  2. 自动追番工具BGmi | 老苏的blog
  3. 10.31(docker、Ubuntu配置bgmi)|简单一点
  4. 暑期高温与BGmi多合一Docker安装指南-CSDN博客
  5. 理想影音库构建之路(一):使用BGmi自动追番、刮削-腾讯云开发者社区-腾讯云
  6. 解放双手!全自动追番神器BGmi一键部署指南 - 知乎