今天给大家带来的是舰长积分商城和弹幕机器人系统的手动部署教程

之前我出过一个“一键部署”的版本。
但是有不少小伙伴反馈说,不太想用 Docker,或者想直接在自己的设备上部署,所以更希望能一步一步手动安装。

这次我就从零开始,带大家完整走一遍手动部署的流程。


功能简介

这个系统主要有两个功能:

  • 积分商城:舰长上舰后自动记录积分,积分可在商城里兑换奖品;
  • 弹幕机器人:支持自动感谢礼物、关注、进房、分享,还能播报大乱斗对手房间情况。

所有数据都在你自己的服务器里,不需要担心审核或数据泄露,也不会有任何收费问题,完全免费。唯一的成本就是准备一台云服务器。

当然,如果你完全不懂代码,更推荐先看我之前的“一键部署”教程,会更省事。

如果你选择手动部署,不管你是折腾群晖也好,在Windows环境下跑虚拟机也罢,我默认你是一个多少懂一点基础的朋友。

记得在部署的过程中解决科学上网的问题,因为代码托管也好,项目中一些扩展的安装也好,难免会用到大陆以外的资源。

如果遇到问题我非常乐意在空闲时间帮大家解决问题,但是网络问题这种我确实没有什么好办法,这个东西比较敏感,也不太好教 🙏


Step 1:安装宝塔面板

首先,我们需要在服务器上安装 宝塔面板

宝塔下载页面

安装完成后,宝塔会显示登录地址、用户名和密码。用这些信息登录,就能进入服务器的管理面板。

服务器安装宝塔完成


Step 2:安装运行环境

登录宝塔后台,进入 软件商店,依次安装:

  • Nginx(默认版本);

    安装 Nginx

  • PHP 8.2

    安装 PHP

  • MySQL 8.0(注意不要用默认版本);

    安装 MySQL

  • Redis(默认版本即可)

    安装 Redis

安装需要一些时间,大家耐心等待,完成后,如下图所示。

完成安装后的样子

完成后,还需要做以下配置:

  • 在 PHP 设置中安装扩展:redisevent

    安装扩展,event在下面

  • 在配置文件中搜索:disable_functions ,内容替换为:

    1
    disable_functions = passthru,system,chroot,chgrp,chown,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru

    记得保存配置

  • pecl扩展安装 处安装 brotli

    安装 brotli

  • 进入数据库,修改 root 密码为一个你自己能记住的值。

    修改数据库密码


Step 3:创建数据库

在终端输入:

1
mysql -u root -p

登录 MySQL

输入刚刚设置的密码后,执行以下命令创建数据库:

1
CREATE DATABASE bilibili_danmu CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

创建数据库


Step 4:下载项目

在宝塔后台打开 文件 → 终端,输入:

1
git clone https://github.com/zxc7563598/php-bilibili-danmu

下载项目

刷新页面后,可以看到多了一个 php-bilibili-danmu 文件夹。

文件列表

进入该文件夹,新建 .env 文件(前面有点)。

新建.env文件
然后打开 .env.example,复制内容到 .env 并修改:

  • 系统服务地址:服务器IP:7777
  • 加密配置:随意输入 16 位字母或数字(数字密钥、初始向量同样 16 位)
  • 主密钥:随意输入 32 位字母或数字
  • 商城前台访问地址:服务器IP:5177
  • 项目监听端口:7776
  • API 密钥:随意输入 32 位字母或数字
  • 数据库配置:数据库名(bilibili_danmu)、用户名(root)、密码(你修改的 root 密码)

保存后,配置完成。

不需要照着抄,根据自己服务器的信息修改


Step 5:安装依赖并启动

在终端执行(一行一行执行):

1
2
3
4
5
composer install

php vendor/bin/phinx migrate -e development

php start.php start -d

这样依赖安装、数据库构建、项目启动就完成了。

一行一行执行命令

项目启动后的样子


Step 6:配置机器人站点

进入宝塔后台 → 网站 → 添加站点:

  • 域名:服务器IP:7777

  • 根目录:php-bilibili-danmu

    配置站点

创建后,进入站点设置 → 配置文件,在顶部添加:

1
2
3
4
upstream bilibilidanmuji {
server 127.0.0.1:7776;
keepalive 10240;
}

配置 Nginx

保存后,再进入伪静态,添加:

1
2
3
4
5
6
7
8
9
10
11
location ^~ / {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_set_header Connection "";
if (!-f $request_filename){
proxy_pass http://bilibilidanmuji;
}
}

配置伪静态

最后在网站目录设置中:

  • 关闭防跨站攻击;

  • 将运行目录改为 public
    保存即可。

    配置访问目录

这时,访问 服务器IP:7777 就能进入机器人控制台。


Step 7:配置积分商城

宝塔后台 → 网站 → Node项目 安装Node:

安装 NodeJs

先更新列表获取最新版本,记得安装官方源

设置命令行版本:

设置命令版本,不然无法构建

进入机器人控制台,点击 构建商城

服务器IP:7777即可访问

看到这样的内容说明成功:

完成积分商城构建

然后在宝塔后台 → 网站 → 新建站点:

  • 域名:服务器IP:5177

  • 根目录:php-bilibili-danmu/public/shop/dist

  • PHP 版本:纯静态

    创建积分商城站点

创建后,进入伪静态,填入:

1
2
3
location / {
try_files $uri $uri/ /index.html;
}

保存后,访问 服务器IP:5177 即可进入积分商城。

保存积分商城站点伪静态


🎉 至此,手动部署就全部完成啦!
机器人和积分商城都可以正常使用,大家可以根据需要进行进一步配置。

关于一键部署

可能不是最完美的方案,但它一定是对新手最友好的选择:一键配置,命令执行后静待完成,项目会自动拉取、配置并保持更新,全程无需额外操作。

在你的服务器上执行:

1
curl -fsSL https://bilibili-danmu-scripts.oss-cn-hongkong.aliyuncs.com/install-docker.sh | bash

没有开发基础的用户 请确保您使用的是 阿里云 位于 香港 地域的 Ubuntu 24.04 64 位 版本的服务器。这是一套经过验证的环境,能最大程度减少部署问题

其他云服务商或系统版本未做兼容性测试,不排除出现问题的可能性。如果你遇到问题,可以来问我,我乐意帮忙,全当交个朋友。但不保证解决。

一键部署脚本写得很简单,不依赖复杂逻辑,有动手能力的用户完全可以自行调整环境。完全不懂的朋友,建议按推荐配置来,别自找麻烦。

不会购买服务器看下方「一些问题」中的「关于购买服务器」

购买服务器不知道如何使用的看下方「一些问题」中的「购买了服务器要如何使用」

关于购买服务器

为什么要购买服务器?

这不是一个传统意义上的“机器人”项目。如果你只是需要一个弹幕助手,确实可以直接在自己的电脑上运行,直播时连上直播间,下播后关掉就行。

但这个项目是一个积分商城,实质上就是你自己的一个网站。它需要 24 小时持续运行,并且对外开放,让观众随时都能访问和使用。所以,和普通机器人不同,它需要部署在一台能够长期在线、稳定对外服务的服务器上。

如何购买服务器?

前往 阿里云云服务器 ECS 控制台 → 点击「创建实例」 → 选择合适的配置进行购买。

配置图,可按此图配置购买

以下是推荐配置说明:

  • 地域:请选择 中国香港(具体原因详见下方章节 “为什么选择香港服务器”)
  • 配置:最低建议选择 2 vCPU + 2 GiB 内存​。计算型、共享型等都可,不推荐“突发性能实例” ,这类机型在大多数时间会限制 CPU 性能,影响使用体验。
  • 系统镜像:请选择 Ubuntu 20.04 64位​,我所有的测试与部署都基于此版本,兼容性和稳定性最好。

其他配置可根据个人需求自行选择,不过如果你是第一次使用,建议直接参考上图进行配置,省事也稳妥。

关于为什么要选择香港服务器

  1. 备案麻烦 & 使用限制:
    大陆地区的服务器对外提供互联网服务时,必须完成备案和一系列合规流程,流程繁琐,还会受到一定的监管。相比之下,香港属于中国,却不需要备案,开箱即用、稳定省事。
    至于日本、韩国等境外服务器,由于科学上网问题,连接经常不稳定,不推荐新手使用。
  2. 代码托管在 GitHub:
    如果你选择一键部署,服务器需要从 GitHub 拉取代码,而 GitHub 并不在国内。
    大陆服务器与个人一样也会受到网络限制,可能导致部署失败。

    小提示:如果你打算在自家的服务器、NAS 或虚拟机中部署,请务必先解决访问 GitHub 的问题。

  3. 实用角度考虑:
    其实用国内服务器也不是不能用,就是容易自找麻烦。
    阿里云香港的稳定性不错,部署项目之外还能顺便搭个梯子。虽然 ChatGPT 屏蔽了香港 IP,但看点其他内容、搭建加速服务还是很香的,明码标价、速度稳定,视频都能流畅播放。

    如果你不懂怎么搭梯子,欢迎私聊,我可以教你。

购买了服务器要如何使用

可以通过 FinalShell 远程连接直播间:点击下载

如何连接服务器

连接完成后运行一键安装脚本即可

关于怎么才能让访问地址变成网址而不是IP

需要购买域名进行绑定

为什么需要域名?

没有域名也能访问你的网站,正常情况下就是通过 http://你的服务器IP:7777​ 来访问后台管理,商城则是 http://你的服务器IP:5177​。

这当然可以用,如果你不介意链接不好看,也可以直接生成二维码发给观众扫码,访问是没有任何问题的。

但从使用体验来说,IP 地址链接就像毛坯房一样:
丑、不好记、不专业、不安全。

就像百度的 IP 地址是 http://39.156.70.46​,你能访问它没错,但肯定没人会去记这个地址。相比之下,https://baidu.com​ 简洁、有辨识度、安全性也更高。

所以,域名的意义不只是“能访问”,而是让你的项目看起来像个“成品”而不是“内测工具” 。而且现在域名注册成本也不高,是值得的投入。

如何购买域名?

域名注册的平台有很多,比如 GoDaddy阿里云 都是业内比较成熟、可靠的选择。

如果你已经在阿里云购买了服务器,那直接在阿里云顺手把域名也买了会更方便。购买流程不复杂:
搜索你想要的域名,看看有没有被注册,没被注册就可以直接下单购买。

注意: 在阿里云购买域名时需要先完成实名认证,流程不麻烦,按照提示提交资料即可。不需要备案,只是做个身份验证。

另外提醒一下:
如果你的服务器不是香港而是中国大陆地区的,那我通常不建议你单独买域名。因为域名如果解析到大陆服务器,必须完成 ICP 备案,这个流程需要向工信部提交材料,耗时大约 20 个工作日左右。

而且如果你是个人备案,只能用于“博客类”网站,像这种积分商城类项目是无法备案的,必须使用企业主体才能通过。

购买域名后如何使用

购买域名后,请前往 阿里云域名列表

找到你购买的域名 → 点击“操作” → 选择“解析” → 进入添加记录页面

添加记录页面

在“添加记录”页面中,大部分设置(如记录类型、解析线路、TTL)保持默认即可,只需要关注以下两个字段:

  • 主机记录:即你想绑定的子域名前缀。例如你的域名是 hejunjie.life​,这里填写 asd​,那最终用户访问的地址就是 asd.hejunjie.life
  • 记录值:填写你服务器的公网 IP 地址

你需要添加 两个解析记录 指向你的服务器:

  • 一个用于访问 机器人后台
  • 一个用于访问 积分商城

⚠️ 域名解析通常需要几分钟时间才能生效,建议等待 10 分钟左右 确保解析成功。

✅ 解析成功后,登陆服务器配置域名和 SSL 证书即可

如何配置服务器域名和 SSL 证书

一键部署版

解析完成后,登录你的服务器,执行以下命令完成自动配置(包括 Nginx 和 SSL):

1
curl -fsSL https://bilibili-danmu-scripts.oss-cn-hongkong.aliyuncs.com/setup-nginx-ssl.sh | bash -s 后台地址 积分商城地址 你的邮箱

之后完成后续步骤即可

手动部署版

前往宝塔面板 -> 网站,可以看到手动部署时你设置的机器人站点(后台站点)跟积分商城站点

对应的站点点击设置,在域名位置(原本手动部署中写服务器IP:7777跟服务器IP:5177的位置)添加解析的网站地址

后台站点添加后台地址,积分商城添加积分商城地址

“后台地址”和“积分商城地址”就是你刚才解析的域名,例如:asd.hejunjie.life

添加完成后选择 SSL,切换到 Let’s Encrypt 标签页

勾选添加的域名,申请证书,即可完成配置

之后完成后续步骤即可

后续步骤

执行成功后,进入机器人后台控制台 → 打开「系统配置」:

机器人控制台系统配置页面

  • 修改 项目地址​ 为:https://后台的地址
  • 修改 商城地址​ 为:https://积分商城的地址

“后台地址”和“积分商城地址”就是你刚才解析的域名,例如:asd.hejunjie.life

例如你填的是 asd.hejunjie.life​,那就改为:

  • https://asd.hejunjie.life

配置完成后,你就可以通过浏览器访问:

  • 控制台后台:https://后台的地址
  • 用户商城:https://积分商城的地址

关于独立后台

仓库地址:点击查看

现在的机器人实际上已经内置了一个原生后台,已可直接使用,此项目非刚需。本项目的目标是为追求更强大后台功能的用户提供一个更完善的替代方案。

由于在推荐服务器配置时出于成本考虑,建议使用较低配置的服务器(如 2 核 2G)。这种配置在实际运行项目时并不会有明显问题,但如果尝试在服务器上直接构建本项目,性能压力会非常大,构建过程可能会失败甚至卡死。

因此,我们将前端后台代码单独抽离到此仓库,建议用户在本地完成构建后再上传到服务器。这并不是一项复杂的操作,欢迎动手尝试,如有困难也可以联系作者获取帮助。

部署方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 1. 下载项目
git clone https://github.com/zxc7563598/vue-bilibili-danmu-admin.git
# 然后你就会得到一个 vue-bilibili-danmu-admin 目录,这个就是整个项目了
# 前往这个目录


# 2. 安装 Node.js
# 请前往官网下载安装适合你系统的版本:https://nodejs.org/zh-cn
# 目的是为了可以在终端使用 npm 命令
# 过低版本的 NodeJs 的 ESM 模块在 Windows 上对绝对路径支持不完善,可能会出现问题
# 所以尽量不要去装过低的版本,起码要在 18+ 以上才不会有问题

# 3. 配置环境变量:复制 `.env.example` 为 `.env`
# 这里有很多朋友没搞明白
# 其实就是你下载下来的项目中,会存在一个 .env.example 文件,这个是配置的模板文件,教你怎么配置的
# 我们需要在 vue-bilibili-danmu-admin 中创建一个 .env 然后把 .env.example 文件里的内容复制一份过去
# .env 里面的内容需要手动替换
# 根据实际情况填写请求地址、密钥等信息,具体信息可在机器人控制台系统配置中查看。

# 4. 安装依赖 & 构建项目
# 这里也有朋友翻过车,要在 vue-bilibili-danmu-admin 目录去执行这个命令哦
npm install
npm run build

# 执行后将生成 `dist/` 目录,即为最终可部署版本

# 自动部署:将此目录上传到 `/opt/bilibili-robots/php/public` 目录中,重新访问机器人控制台,即可自动切换到新版后台。
# 手动部署:将此目录上传到 `/www/wwwroot/php-bilibili-danmu/public` 目录中,重新访问机器人控制台,即可自动切换到新版后台。

# 使用新版后台的过程中,删除 `/项目目录/public/dist` 目录即可停用新版后台、切换回老版本后台