Skip to content

Napcat Adapter (独立部署)

本文档将指导你如何独立配置和使用 Napcat Adapter,使其能够连接到你的 NapCat 客户端,并将消息转发到 Neo-MoFox。

什么是独立适配器?

独立适配器意味着 Napcat Adapter 作为一个独立的进程运行,它通过 WebSocket 与 NapCat 和 Neo-MoFox 进行通信。这种部署方式提供了更好的灵活性和稳定性。

核心概念:WebSocket 连接模式

Napcat Adapter 支持两种 WebSocket 连接模式,以适应不同的网络环境和部署需求。

1. 反向连接模式 (reverse) - 推荐

在这种模式下,Napcat Adapter 作为 WebSocket 服务器,等待 NapCat 客户端主动连接。这是默认且最常用的模式。

工作流程:

  1. Napcat Adapter 启动并监听一个指定的 IP 地址和端口(例如 ws://0.0.0.0:8095)。
  2. 你在 NapCat 客户端的配置文件中,将 WebSocket 连接地址指向 Napcat Adapter。
  3. NapCat 客户端连接到 Adapter,开始消息同步。

优点:

  • 配置简单,易于理解。
  • 网络控制更安全,Adapter 可以部署在防火墙后。

2. 正向连接模式 (forward)

在这种模式下,Napcat Adapter 作为 WebSocket 客户端,主动连接到 NapCat 服务器。

工作流程:

  1. NapCat 客户端作为 WebSocket 服务器运行,并监听一个 URL。
  2. Napcat Adapter 启动后,会根据配置主动连接到该 URL。
  3. 连接成功后,开始消息同步。

优点:

  • 适用于 Adapter 无法被外部网络直接访问的场景。
  • 支持通过 access_token 进行身份验证,增强安全性。

配置步骤

  1. 下载或克隆项目

    bash
    git clone https://github.com/MoFox-Studio/Napcat-Adapter.git
    cd Napcat-Adapter
  2. 安装依赖

    bash
    pip install -r requirements.txt
    #uv用户使用下面这个
    uv pip install -r requirements.txt
  3. 创建并编辑配置文件 从模板复制一份配置文件:

    bash
    cp template/template_config.toml config/config.toml

    然后,使用文本编辑器打开 config/config.toml 文件。

配置文件详解

你需要关注文件中的 [napcat_server][maibot_server] 部分。

toml
[napcat_server] # Napcat连接的ws服务设置
mode = "reverse"        # 连接模式: "reverse" 或 "forward"
host = "0.0.0.0"        # [反向模式] 监听的主机地址
port = 8095             # [反向模式] 监听的端口号
url = ""                # [正向模式] Napcat 的 WebSocket URL
access_token = ""       # [可选] 访问令牌
heartbeat_interval = 30 # 心跳间隔(秒)

[maibot_server] # 连接麦麦的ws服务设置
host = "localhost" # 麦麦在.env文件中设置的主机地址
port = 8000        # 麦麦在.env文件中设置的端口

配置示例 1:使用反向模式

如果你希望 Adapter 在 0.0.0.0:8095 上监听来自 NapCat 的连接,配置如下:

toml
[napcat_server]
mode = "reverse"
host = "0.0.0.0"
port = 8095
url = ""
access_token = ""

配置示例 2:使用正向模式

如果你的 NapCat 服务器运行在 ws://127.0.0.1:3001,并且需要令牌 my-secret-token,配置如下:

toml
[napcat_server]
mode = "forward"
host = "localhost" # 此项在 forward 模式下无效,但建议保留
port = 8095        # 此项在 forward 模式下无效,但建议保留
url = "ws://127.0.0.1:3001"
access_token = "my-secret-token"

权限与安全:配置白名单

除了基本的连接配置,Napcat Adapter 还支持通过独立的 features.toml 文件来管理可以接收消息的群聊和用户,例如设置群聊和私聊的白名单。

  1. 创建 features.toml 文件

    config 文件夹下,从模板复制一份功能配置文件:

    bash
    cp template/features_template.toml config/features.toml
  2. 编辑 features.toml

    打开 config/features.toml 文件,你可以看到详细的权限设置。

    核心配置项:

    • group_list_type: 群聊列表类型。
      • "whitelist": 白名单模式,只有 group_list 中的群聊的消息才能被传达给机器人。
      • "blacklist": 黑名单模式group_list 中的群聊不能的消息被传达给机器人。
    • group_list: 群聊号码列表。
    • private_list_type: 私聊列表类型,规则同上。
    • private_list: 用户 QQ 号码列表。

    配置示例:只允许特定群聊和用户使用

    toml
    # 设置为白名单模式
    group_list_type = "whitelist"
    # 填入允许的群号
    group_list = [123456789, 987654321]
    
    # 设置为白名单模式
    private_list_type = "whitelist"
    # 填入允许的用户QQ号
    private_list = [10001, 10002]

    TIP

    features.toml 文件支持热重载,修改保存后会立即生效,无需重启适配器。

启动适配器

所有配置完成后,在 Napcat-Adapter 目录下运行以下命令来启动适配器:

bash
python main.py

如果一切正常,你将看到日志输出,表明适配器已成功启动并根据你选择的模式开始监听或连接。


现在,你的 Napcat Adapter 已经成功运行了!它会作为你和 MaiBot 之间的桥梁,高效地处理和转发消息。

贡献者

The avatar of contributor named as minecraft1024a minecraft1024a
The avatar of contributor named as sunbiz1024 sunbiz1024
The avatar of contributor named as ikun-11451 ikun-11451

页面历史

Released under the GPL-3.0 License.

新对话
MoFox 助手

下午好。

今天想做点什么?

聊天内容可能会被记录以用于改进服务及其质量,并会遵循我们的隐私政策进行处理。