跳转到内容
搜教程里的步骤和配置项 例如 Vercel、Docker、TOKEN、播放器、域名。

Docker 部署

目标:从打开 cmd 和 SSH 登录 VPS 开始,用 Docker Compose 在服务器上跑起 huangxd-/danmu_api,改好 TOKENADMIN_TOKEN,最后直接用浏览器访问测试。

这页只讲命令行主线。服务跑通后,直接接着看 Docker 绑定域名、反代与 HTTPS

先把这 4 项准备好,后面会反复用到:

  • 服务器公网 IP
  • SSH 用户名,例如 rootubuntu
  • SSH 密码
  • SSH 端口;如果服务商没单独写,一般就是 22

第 1 步:如果你用 Windows,先打开 cmd

Section titled “第 1 步:如果你用 Windows,先打开 cmd”

按这个顺序做:

  1. 按键盘上的 Win
  2. 输入 cmd
  3. 命令提示符

如果你用的是 macOS 或 Linux,就打开系统自带的终端;后面这一步的 SSH 命令同样可以照着执行。

Windows 开始菜单里搜索 cmd 并打开命令提示符的截图
先把 cmd 打开,后面的 SSH 命令就在这个窗口里执行。

第 2 步:在终端里先用 SSH 登录 VPS

Section titled “第 2 步:在终端里先用 SSH 登录 VPS”

如果 SSH 端口就是默认的 22,执行:

Terminal window
ssh root@你的服务器IP

如果服务商给的是其他端口,就执行:

Terminal window
ssh -p 端口 root@你的服务器IP

这一步要这样替换:

  • root 换成服务商给你的 SSH 用户名;如果你拿到的是 ubuntu,这里就写 ubuntu
  • 你的服务器IP 换成服务器公网 IP
  • 端口 换成服务商给你的 SSH 端口

第一次连接时,终端通常会询问是否继续,输入 yes,再回车。 如果后面要求输入密码,窗口里通常不会显示星号,也不会回显字符;直接输入密码,再回车就行,这是正常现象。

登录成功后,命令行前面的样子一般会变成类似 root@你的服务器:~# 这种 Linux 提示符;看到这种变化,再继续下一步。

社区教程里通过 SSH 登录 Ubuntu VPS 的终端截图
先在本机终端里连上 VPS;看到服务器终端提示后,再继续安装 Docker。

第 3 步:先装 Docker 和 Docker Compose

Section titled “第 3 步:先装 Docker 和 Docker Compose”

下面 3 组安装方式只选 1 组,不要 3 组都执行。 每次只复制当前这一条,等终端重新回到提示符,再继续下一条。

  • 官方网络正常:用 Docker 官方脚本
  • 国内 VPS 拉取慢:用 LinuxMirrors 的 Docker 脚本
  • 机器刚装好,想顺手换系统源再装 Docker:用 OCSS 脚本

先装 Docker:

Terminal window
curl -fsSL https://get.docker.com | sudo bash

再装 nano

Terminal window
sudo apt install -y nano

先装 Docker:

Terminal window
bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

再装 nano

Terminal window
sudo apt install -y nano

先跑脚本:

Terminal window
bash <(curl -sSL https://cdn.jsdelivr.net/gh/Master08s/ocss@latest/main.sh)

再装 nano

Terminal window
sudo apt install -y nano

装好后再按顺序确认:

Terminal window
docker --version
Terminal window
docker compose version
在终端里检查 Docker 和 Docker Compose 版本的实操图
能正常看到 docker —versiondocker compose version 的版本号,再继续下一步。

后面统一在这个目录里操作,按顺序执行:

Terminal window
mkdir -p ~/danmu-api
Terminal window
cd ~/danmu-api
Terminal window
pwd
在终端里创建 danmu-api 部署目录并进入目录的实操图
后面所有 Docker 命令都默认在 ~/danmu-api 里执行。

先回到部署目录:

Terminal window
cd ~/danmu-api

再打开文件:

Terminal window
nano docker-compose.yml

把下面这段内容原样粘贴进去:

services:
danmu-api:
image: logvar/danmu-api:latest
container_name: danmu-api
ports:
- "9321:9321"
volumes:
- ./config:/app/config
- ./.cache:/app/.cache
restart: unless-stopped

粘贴完以后按这个顺序保存:

  1. Ctrl + O
  2. 回车
  3. Ctrl + X
在 nano 里写入 danmu_api docker-compose.yml 的实操图
这份 Compose 只负责主服务。先把服务跑起来;自动更新和域名反代都放到后面单独做。

先启动服务:

Terminal window
docker compose up -d

再看容器状态:

Terminal window
docker compose ps

只要状态是 Up,就继续下一步。

第一次执行 docker compose up -d 并查看容器状态的实操图
第一次启动时,先看 docker compose ps。只要容器已经起来,就继续去改 config/.env

第 7 步:打开 config/.env,只改这两项

Section titled “第 7 步:打开 config/.env,只改这两项”

第一次启动完成后,宿主机的 ~/danmu-api/config/.env 一般会自动生成。 现在直接打开它:

Terminal window
cd ~/danmu-api
Terminal window
nano config/.env

先确认这两项:

TOKEN=87654321
# ADMIN_TOKEN=改成你自己的后台口令

建议这样处理:

  • TOKEN 先保持 87654321
  • ADMIN_TOKEN 改成自己的值
  • 如果 ADMIN_TOKEN 这一行前面带 #,先把 # 删除再保存

保存顺序:

  1. Ctrl + O
  2. 回车
  3. Ctrl + X

正常保存后,一般不用重启。 如果保存后页面还是旧值,再手动执行一次:

Terminal window
docker compose restart danmu-api
Terminal window
docker compose ps
第一次启动后 config 目录里已经自动生成 .env,并且只需要改 TOKEN 和 ADMIN_TOKEN 的实操图
重点只看这两项:TOKENADMIN_TOKEN。这一步不用自己手搓一份新的 .env

容器启动后,不在这里重复写测试细节,直接按 部署后自检 继续检查首页、弹幕测试和管理员入口。

第 9 步:需要自动更新的话,再单独加 Watchtower

Section titled “第 9 步:需要自动更新的话,再单独加 Watchtower”

先创建 Watchtower 目录:

Terminal window
mkdir -p ~/danmu-api-watchtower

再进入目录:

Terminal window
cd ~/danmu-api-watchtower

再打开配置文件:

Terminal window
nano docker-compose.yml

把下面这段内容原样粘贴进去:

services:
watchtower:
image: nickfedor/watchtower
container_name: watchtower-gx
restart: always
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- TZ=Asia/Shanghai
command:
- --cleanup
- --interval
- "12600"
- danmu-api

保存后再按顺序启动:

Terminal window
cd ~/danmu-api-watchtower
Terminal window
docker compose up -d
Terminal window
docker compose ps
Terminal window
docker compose logs --tail=30 watchtower

这里虽然 Watchtower 放在另一个目录里,但它监控的还是前面主服务目录里启动出来的 danmu-api 容器。 只要下面两项没改错,就能正常监控:

  1. container_name 还是 danmu-api
  2. /var/run/docker.sock:/var/run/docker.sock 还保留着
在终端里启动 Watchtower 并检查状态和日志的实操图
看到 docker compose ps 里容器已经起来,再看日志里有没有下一次检查时间;有的话就说明 Watchtower 已经正常工作。

先回到主服务目录:

Terminal window
cd ~/danmu-api

再拉最新镜像:

Terminal window
docker compose pull

最后重新启动:

Terminal window
docker compose up -d

先检查这两个地方有没有放行 9321

  • 服务器自己的防火墙
  • 云厂商安全组

如果当前机器用的是 UFW,可以先执行:

Terminal window
sudo ufw allow 9321/tcp

说明 Docker Compose 插件没有装好,回到第 3 步重新执行你选的那组安装命令即可。

如果你是单独目录部署的,就按这个顺序检查:

  1. ~/danmu-api-watchtower/docker-compose.yml 里是不是写的 image: nickfedor/watchtower
  2. /var/run/docker.sock:/var/run/docker.sock 有没有保留
  3. 日志里有没有正常看到下一次检查时间

参考来源:huangxd-/danmu_api README、GeeksforGeeks 的 Windows 命令提示符教程页面LinuxMirrors Docker 脚本、Master08s / OCSS 社区脚本、Docker 官方安装文档Server World 的 SSH 截图,以及本次按正文真实命令整理的终端实操图。