0 为什么写这个呢 是因为有些人即使是看了视频依旧不会
----------视频地址
[Linux]从零开始在云服务器部署属于自己的鸣潮bot“小爱同学”_哔哩哔哩_bilibili

介绍路线 和前提准备

介绍路线 +官方文档(必看)

GsCore(GenshinUID Core):一个高度模块化、多平台支持的游戏数据查询与交互框架。它自带网页控制台以及多个游戏插件,负责处理游戏数据(如鸣潮、原神等)的获取、面板渲染和签到等核心业务逻辑。

早柚核心Docs | 安装早柚核心、了解早柚协议、编写插件的相关文档

NapCatQQ:基于 NTQQ 的 QQ 协议端,可运行于 Shell Mode(适合无头服务器)或 Framework Mode(注入 QQ 客户端)。它的主要工作就是登录你的 QQ 账号,作为底层协议端,稳定地处理消息的收发,并将其通过标准协议(如 OneBot V11)暴露给上层机器人框架。 使用的docker安装

Shell | NapCatQQ +使用 接入 接入框架 | NapCatQQ

AstrBot:一款支持可视化配置、开箱即用的多平台大模型聊天机器人框架。它不仅 LLM 接入体验优秀,通过特定适配器插(例如 astrbot_plugin_gscore_adapter)也能较优雅地将 GsCore 的游戏数据能力集成进来,因此很适合轻量化部署。

有个插件Gscore的 官方文档 接入 OneBot v11 协议实现 | AstrBot

1panel和宝塔面板 如果不知道 请看 :

1Panel:新一代的 Linux 服务器运维管理面板_哔哩哔哩_bilibili

一分钟带你了解宝塔面板_哔哩哔哩_bilibili

AstrBot安装

在 1Panel 部署 AstrBot | AstrBot 使用1panl面板

在 宝塔面板 部署 AstrBot | AstrBot 使用宝塔面板

Liunx +docker换源 官方地址 一键脚本使换源更简单 - LinuxMirrors

liunx 换源命令 bash <(curl -sSL https://linuxmirrors.cn/main.sh)

docker 换源 命令 bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

一个加速github 网站 https://gh-proxy.com/

然后设置github 地址代理 这样拉取快点

git config --global url."https://gh-proxy.org/https://github.com/".insteadOf "https://github.com/"

wsl提前准备的工具 一定要看 如果有服务器忽略这个 wsl缺点就是你电脑不能关机

首先是Watt Toolkit 加速器 加速github

然后是vscode 或者其他编码软件 +插件记得下载一个wsl 或者你连接服务器的任何工具

一个加速github 网站

https://gh-proxy.com/

先下载 wsl 微软商店搜索 ubuntu 选Ubuntu 24.04.2 LTS

安装完 记得设置用户和密码

Windows Terminal 和一个github 安装的GUi启动wsl2 owu/wsl-dashboard: A GUI manager for WSL. A modern, high-performance, and lightweight WSL instance management dashboard.

Liunx +docker换源 官方地址 一键脚本使换源更简单 - LinuxMirrors

换源保持默认选择阿里云 https 然后默认就行了

liunx 换源命令 bash <(curl -sSL https://linuxmirrors.cn/main.sh)

docker 换源 命令 bash <(curl -sSL https://linuxmirrors.cn/docker.sh)

然后设置github 地址代理 这样拉取快点

git config --global url."https://gh-proxy.org/https://github.com/".insteadOf "https://github.com/"

分开来写 Winds+wsl+1panel面板或者宝塔面板(进入可以安装docker)+docker

官方文档 1Panel - 现代化、开源的Linux服务器运维管理面板

命令 bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"

里面跟着走就行了 默认帮忙下载doker 也是使用阿里云镜像

然后打开1pnae就行了 wsl记得把防火墙关掉 服务器记得把防火墙开启来 然后 把端口放行

例如8765(core) 6099(qq) 6199(asbot) 5140(Koishi)

如果不会 请教豆包来 安装宝塔或者 1panel面板

到这一步 就是与服务器一致了 请往服务器 看

服务器+1pane面板或者宝塔面板(进入可以安装docker)+docker

服务器 最好有vpc 经典网络是没有内网ip的 我这里基于的是内网ip

官方文档 1Panel - 现代化、开源的Linux服务器运维管理面板

命令 bash -c "$(curl -sSL https://resource.fit2cloud.com/1panel/package/v2/quick_start.sh)"

里面跟着走就行了 默认帮忙下载doker 也是使用阿里云镜像

然后打开1pnae就行了 wsl记得把防火墙关掉 服务器记得把防火墙开启来 然后 把端口放行(服务器公网ip 如果你想全部让访问就默认)

例如8765(core) 6099(qq) 6199(asbot) 5140(Koishi) 这里与上面 一致的

也同样安装 如果不会 请教豆包来 安装宝塔或者 1panel面板

下文统一以 /root/bot 为示例目录。若你不是 root 用户,请将后文所有 /root/bot 替换为你自己的实际路径(例如 ~/bot)

# 创建总目录
mkdir -p /root/bot && cd /root/bot

# 安装基础依赖
sudo apt update
sudo apt install -y python3 python3-pip python3-venv python3-tk git curl wget

1 安装 GsCore 这里走 pip 安装uv 或者 官方脚本

pip install uv --break-system-packages

# 也可在虚拟环境中安装

# 创建虚拟环境
python3 -m venv venv

# 激活虚拟环境
source venv/bin/activate

# 安装 uv
pip install uv

# 退出虚拟环境
deactivate

官方脚本 :

curl -LsSf https://astral.sh/uv/install.sh | sh

# 如果系统没有 curl,可以使用 wget
wget -qO- https://astral.sh/uv/install.sh | sh

这里是本地拉取 这样就可以在本地创建docker拉取 创建下载插件

git clone https://github.com/Genshin-bots/gsuid_core.git --depth=1 --single-branch
cd gsuid_core 

安装环境 :

uv python install 3.13
uv sync --python 3.13
uv run python -m ensurepip

# 如果你当前环境的 Python 版本已经满足要求,也可以使用:
# uv venv --seed
# uv sync

注意事项:

网页控制台
首次启动会自动生成 gsuid_core/data/config.json 和 gsuid_core/data/core_config.json
网页控制台默认地址为 http://127.0.0.1:8765/app
首次进入控制台需要注册,注册码位于 gsuid_core/data/config.json 的 REGISTER_CODE 字段中
建议优先关注的几个配置项

masters:你的 QQ 号 / 平台账号。建议尽早填写,否则部分 Core 管理命令无法正常使用
WS_TOKEN:建议填写;填写后需要在对应适配器内同步配置该 Token。如果 GsCore 和连接端 Bot 都在本机,通常可以不配;但如果同机却跨 Docker,也需要配置。
HOST:默认是 localhost;若要外网访问,可改为 0.0.0.0
TRUSTED_IPS:如果不填写 WS_TOKEN,默认仅信任受信 IP(通常为 127.0.0.1)
外网访问方式

直接把 gsuid_core/data/config.json 里的 HOST 改成 0.0.0.0
或在控制台修改“服务监听地址”后重启
或直接反向代理 http://127.0.0.1:8765

可在反向代理中添加以下配置,使 example.com 自动跳转到控制台而不是 example.com/app

location = / {
    return 301 /app/;
}


然后这里就是开始安装插件了
XutheringWavesUID

cd /root/bot/gsuid_core/gsuid_core/plugins/
git clone https://github.com/Loping151/XutheringWavesUID.git --depth=1

# 重新运行 GsCore
cd /root/bot/gsuid_core
uv run core

建议安装以下额外依赖:

  • playwright:用于渲染公告、wiki图等功能。安装后还需执行 uv run playwright install chromium

  • opencv-python:用于面板图重复判断、提取面板图、相似度识别等功能

  • fonttools:用于多语言字体 fallback,未安装时日韩文可能显示为方框

  • 记得放行8765 端口 在防火墙那里设置

# Linux/Mac
source .venv/bin/activate && uv pip install playwright opencv-python fonttools && uv run playwright install chromium
# Windows
.venv\Scripts\activate; uv pip install playwright opencv-python fonttools; uv run playwright install chromium

然后就是创建docker以在同步本地 :

选择 2、使用 Docker compose 从代码构建 docker 容器
特点:挂载本地代码到容器,无需等待镜像更新,直接使用 git:手动拉取 or 命令: core全部更新, 即可同步更新。
拉取代码
cd gsuid_core
创建配置文件(可选)

cp .env.example .env

💡 如需自定义配置,请编辑 .env 文件并取消注释相应配置

启动服务

docker-compose up -d --build

打开为Gscore为 你的内网ip:8765/app 或者公网ip:8765/app

2 安装 NapCatQQ 协议端 docker安装 端口为6099 放行

如何访问呢 你的内网ip:6099 或者公网ip +6099

curl -o \
napcat.sh \
https://nclatest.znin.net/NapNeko/NapCat-Installer/main/script/install.sh \
&& bash napcat.sh \
--docker y \
--qq "123456789" \
--mode ws \
--proxy 1 \
--confirm

里面进去扫描你的二维码 进入qq

在 NapCat WebUI 页面选择 网络配置 → 新建 → WebSocket 客户端,URL 填入ws://127.0.0.1:6199/ws,添加完成后,点击保存即可。

这示例 请你给我 ws://内网ip:6199/ws

如果没有请你 ws://公网ip:6199/ws

如果 不知道请你 ip aadr 然后发给AI 让它告诉你 内网ip

注意 !!!!!! 这里会生成一个token然后填写 在你gscore 和astrbot 下面

在1apnel或者宝塔安装 AstrBot

访问 AstrBot

访问 http://IP:6185 即可访问 AstrBot 的管理面板。

TIP

默认情况下,上述方法只会放行一个 6185 端口。如果需要部署消息平台,需要额外放行对应的端口。点击上栏 容器,找到 AstrBot 容器,点击 管理,点击 编辑容器,添加对应的端口即可。

1panel安装 然后就启动就行了 1panel默认为6185 记得端口放行

网页控制台

  • 默认地址:http://127.0.0.1:6185

  • 默认账号密码:astrbot / astrbot

务必在首次登录后修改密码。

具体配置可参考:接入到 NapCat

配置 AstrBot

进入 AstrBot 仪表盘 选择 机器人 → 创建机器人 → 消息平台类别 → OneBot v11 (QQ 个人号等),启用适配器,其余默认即可,可根据需要更改(例如反向 Websocket Token)。

wsl 填内网地址

然后就是 在商店搜索Gscore插件 然后设置

这里要是设置你的内网ip 或者有公网就填你自己的公网ip Token 用的也是QQ生成的

在 AstrBot 的插件商店安装 astrbot_plugin_gscore_adapter 并配置:

  • 链接至 GsCore 的 IP 地址:默认填写 localhost

  • 链接至 GsCore 的端口:默认填写 8765

  • 向 GsCore 注册自身的 Bot:默认填写 AstrBot

  • 连接 Core 的 WsToken:即你在 GsCore 中设置的 WS_TOKEN

如果 AstrBot 跑在 Docker 容器里,而 GsCore 跑在宿主机上,那么 localhost 往往会指向容器自身,无法访问宿主机。此时请改为宿主机 IP、同网络容器名,或改用合适的网络模式。

XutheringWavesUID FAQ

Q1:申请总排行 token / 评分 OCR token?

A:

总排行 token:使用Bot 主人 QQ进入 QQ 群 885617919,使用入群 QQ前往 注册页面Star XutheringWavesUID,并在群内艾特群主,等待审核。审核通过后,即可在注册网站中看到 token;若要申请别名,重复上述操作即可。

评分 token:Star ScoreEcho,在群内艾特群主,等待审核。

如果你完全不使用 QQ 平台,也可以按 XutheringWavesUID 的 README 说明,通过邮件联系 agent@loping151.com 申请计算服务 token。

渲染失败?

gsuid_core 目录下执行:

# Linux
source .venv/bin/activate && uv pip install playwright && uv run playwright install chromium

# Windows
.venv\Scripts\activate; uv pip install playwright; uv run playwright install chromium

如果仍有问题,可再补装 opencv-pythonfonttools

签到插件

cd /root/bot/gsuid_core/plugins/
git clone https://github.com/Loping151/RoverSign.git --depth=1

# 重新运行
cd /root/bot/gsuid_core
uv run core

Tip

RoverSign 依赖 XutheringWavesUID 及其数据库,请先确保前者已经正确安装并能正常运行。

cd /home/boot/gsuid_core/gsuid_core/plugins/RemoteRender npx puppeteer browsers install chrome pm2 restart remote-render 下载外置渲染的浏览器

参考 & 致谢