Skip to content

Docker 部署

INFO

  • 确保系统已安装 Docker(官方安装文档
  • 默认端口为 19159,请开放对应端口(防火墙/安全组/面板)
  • 每个容器对应一个端口,不能多个容器共用同一端口

拉取镜像

bash
docker pull ghcr.io/biliup/caution:latest

创建容器

bash
docker run -d \
  --name biliup \
  --restart unless-stopped \
  -p 0.0.0.0:19159:19159 \
  -v /path/to/save_folder:/opt \
  ghcr.io/biliup/caution:latest \
  server --bind 0.0.0.0 --auth

容器内必须加 --bind 0.0.0.0

CLI 的 --bind 默认是 127.0.0.1(只监听本机)。在容器里这意味着服务只监听容器自身的回环地址,宿主机的端口映射转发不进去,WebUI 会打不开

所以只要显式写了 command / 镜像名后的参数覆盖了镜像默认 CMD,就必须补上 --bind 0.0.0.0

bash
... ghcr.io/biliup/caution:latest server --bind 0.0.0.0 --auth

镜像默认的 CMD 已经是 ["server", "--bind", "0.0.0.0", "--auth"],完全不写参数时不受影响。

WARNING

镜像已将 biliup 设为入口命令(ENTRYPOINT),因此镜像名之后只需追加子命令与参数,不要重复写 biliup。正确形式是 ... caution:latest server --bind 0.0.0.0 --auth;写成 ... caution:latest --auth(缺少 server)或 command: biliup server --auth(重复入口)都会导致启动失败。

参数说明:

参数说明
--name biliup容器名称(可自定义)
--restart unless-stopped意外停止后自动重启
-p 0.0.0.0:19159:19159端口映射(可改主机端口)
-v /path/to/save_folder:/opt录播文件存储路径挂载
server启动 WebUI 服务的子命令(镜像已含 biliup 入口,此处只需子命令)
--bind 0.0.0.0容器内监听所有地址,端口映射才能转发进来(不可省略
--auth开启 WebUI 登录认证(首次访问时用户名为固定 biliup,请设置管理员密码)

验证启动

bash
docker ps -a

输出示例:

CONTAINER ID   IMAGE                          STATUS        PORTS                      NAMES
xxxxxxxxxxxx   ghcr.io/biliup/caution:latest  Up 4 seconds  0.0.0.0:19159->19159/tcp   biliup

访问 WebUI

浏览器访问 http://<你的服务器IP>:19159,首次访问会进入登录页。管理员用户名固定为 biliup,请设置密码;之后使用同一用户名(biliup)与密码登录。

WARNING

WebUI 管理员账号(固定用户名 biliup)与用于投稿的 B站账号(通过扫码 / Cookie 添加)是两套不同的身份,请勿混淆。忘记管理员密码时只能重置数据库中的用户,详见WebUI 使用指南 - 忘记密码


容器管理

bash
# 停止
docker stop biliup

# 重启
docker restart biliup

# 删除
docker rm -f biliup

# 查看日志
docker logs biliup

# 进入容器
docker exec -it biliup /bin/sh

更新镜像

bash
docker pull ghcr.io/biliup/caution:latest
docker stop biliup
docker rm biliup
# 重新执行 docker run 命令(数据在挂载目录中不变)

基于 Rust + Python + Next.js 构建