搭建属于自己的Qmsg私有云和机器人

记录一下搭建Qmsg私有云和机器人踩坑记录XD

搭建属于自己的Qmsg私有云和机器人

前言

建议先搭建机器人再搭建私有云

搭建私有云

参考文档:私有云 | Qmsg酱

首先我使用的阿里云服务器,系统使用的Ubuntu

虽然官方推荐的docker版本是24.0.x但是本人安装的是Docker version 28.3.1,目前还没碰到什么问题

安装docker

在 Ubuntu 上安装 Docker 的步骤如下:

  1. 卸载旧版本(如果有)

    1
    sudo apt-get remove docker docker-engine docker.io containerd runc
  2. 安装依赖包

    1
    2
    3
    4
    5
    6
    sudo apt-get update
    sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release
  3. 添加 Docker 官方 GPG 密钥

    1
    2
    sudo mkdir -p /etc/apt/keyrings
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
  4. 设置 Docker 仓库

    1
    2
    3
    echo \
    "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
    $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
  5. 安装 Docker Engine

    1
    2
    sudo apt-get update
    sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin

部署

这里就不写具体步骤了,文档上写的很清楚,这里只写本人遇到的坑

  1. redis下载不成功

    在测试过程中redis一直下载不成功,使用docker pull redis指令下载下来的镜像也是几年前的,这里本人配置了阿里云的加速也没有用

    注意这里的redis版本一定是要大于7的,下载的几年前的版本太低了就无法使用

    于是选择下载了该镜像源,修改qmsg-redis-Dockerfile的redis版本为7.0.14

    docker.io/library/redis:7.0.14 - 镜像下载 | docker.io

  2. 修改密码不成功

    不确定是什么原因,在修改网页密码后,输入自己设置的密码一直显示

    img

    但是换回默认密码123456,uninstall再install,就可以登陆进去

  3. 授权码

    在文档中有一个授权码,这个需要加官方群向官方人员申请

搭建自己的机器人

参考文档:捐赠版 | Qmsg酱

这里选择的还是docker搭建

同样这里就不写具体步骤了,文档上写的很清楚,这里只写本人遇到的坑

  1. node无法下载

    还是碰到了镜像下载不下来的问题

    于是选择下载了该镜像源,修改Dockerfile的node版本为20.19.3

    docker.io/library/node:20.19.3 - 镜像下载 | docker.io

  2. 下载包超时

    apt update 一行超时,研究了一下,感觉可能是这个问题

    对于debian 目前支持两个source list

    参考:debian | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

    大部分 Debian 的软件源配置文件使用传统的 One-Line-Style,路径为 /etc/apt/sources.list;但是对于容器镜像,从 Debian 12 开始,其软件源配置文件变更为 DEB822 格式,路径为 /etc/apt/sources.list.d/debian.sources。一般情况下,将对应文件中 Debian 默认的源地址 http://deb.debian.org/ 替换为镜像地址即可。

    因此我将两个sources的镜像源全部替换为阿里云镜像源,此时apt-get update && apt-get install -y curl 一行速度起飞了

    sources list 如下:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    # sources.list
    deb http://mirrors.aliyun.com/debian bookworm main contrib non-free non-free-firmware
    deb http://mirrors.aliyun.com/debian-security bookworm-security main
    deb http://mirrors.aliyun.com/debian bookworm-updates main contrib non-free non-free-firmware
    deb http://mirrors.aliyun.com/debian bookworm-backports main contrib non-free non-free-firmware

    #debian.sources`
    Types: deb
    URIs: http://mirrors.aliyun.com/debian
    Suites: bookworm bookworm-updates bookworm-backports
    Components: main contrib non-free non-free-firmware
    Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

    Types: deb
    URIs: http://mirrors.aliyun.com/debian-security
    Suites: bookworm-security
    Components: main contrib non-free non-free-firmware
    Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
  3. 下载QQNT时间过长

    这个直接去github下载,不在docekrfile中下载了

    下载下来的压缩包放Dockerfile同级目录下

    Release v1.0.18 · 1244453393/QmsgNtClient-NapCatQQ

  4. nmp安装时间过长

    好不容易折腾了上面一堆,又卡在了RUN cd ./QmsgNtClient-NapCatQQ &&
    npm config set registry https://registry.npmmirror.com &&
    npm i
    把我服务器卡死动不了了,重启了

    询问gpt,建议我 npm install –omit=dev,遂改之

    1
    2
    3
    RUN cd ./QmsgNtClient-NapCatQQ && \
    npm config set registry https://registry.npmmirror.com && \
    npm install --omit=dev

由于docker 制作镜像其实带有缓存,加快的原因有一部分是改了dockerfile,也有一部分是因为前面卡着下载缓存了一部分,总之仅作参考

最后放一下修改后的Dockerfile

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
FROM node:20.19.3
MAINTAINER DIEYI from NapCatQQ
# 设置环境变量
ENV DEBIAN_FRONTEND=noninteractive
RUN echo 'Acquire::https::Verify-Peer "false";' >> /etc/apt/apt.conf.d/99noverify
COPY sources.list /etc/apt/sources.list
COPY debian.sources /etc/apt/sources.list.d/debian.sources
#RUN sed -i 's/http:\/\/mirrors.tuna.tsinghua.edu.cn/http:\/\/mirrors.cloud.aliyuncs.com/g' /etc/apt/sources.list
RUN ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
#RUN apt-get update && apt-get install -y curl && curl -I https://mirrors.aliyun.com/debian
# 安装必要的软件包
RUN apt-get update && apt-get install -y \
libnss3 \
libnotify4 \
libsecret-1-0 \
libgbm1 \
libasound2 \
fonts-wqy-zenhei \
gnutls-bin \
libglib2.0-dev \
libdbus-1-3 \
libgtk-3-0 \
libxss1 \
libxtst6 \
libatspi2.0-0 \
libx11-xcb1 \
ffmpeg \
unzip \
openbox \
xorg \
dbus-user-session \
xvfb \
supervisor \
xdg-utils \
git \
fluxbox \
curl && \
apt-get clean --no-install-recommends && \
apt autoremove -y && \
apt clean && \
rm -rf \
/var/lib/apt/lists/* \
/tmp/* \
/var/tmp/*

WORKDIR /usr/src/app

#RUN curl -L -o /tmp/QmsgNtClient-NapCatQQ.zip https://ghfast.top/https://github.com/1244453393/QmsgNtClient-NapCatQQ/releases/download/v$(curl https://fastly.jsdelivr.net/gh/1244453393/QmsgNtClient-NapCatQQ@main/package.json | grep '"version":' | sed -E 's/.*([0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}).*/\1/')/QmsgNtClient-NapCatQQ.zip

COPY QmsgNtClient-NapCatQQ.zip /tmp/QmsgNtClient-NapCatQQ.zip

RUN unzip -o /tmp/QmsgNtClient-NapCatQQ.zip -d ./QmsgNtClient-NapCatQQ
RUN unzip -o /tmp/QmsgNtClient-NapCatQQ.zip -d /tmp/QmsgNtClient-NapCatQQ

COPY start.sh ./start.sh

RUN arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) && \
curl -o linuxqq.deb https://dldir1.qq.com/qqfile/qq/QQNT/5aa2d8d6/linuxqq_3.2.17-34740_${arch}.deb && \
dpkg -i --force-depends linuxqq.deb && rm linuxqq.deb && \
chmod +x start.sh && \
echo "(async () => {await import('file:///usr/src/app/QmsgNtClient-NapCatQQ/napcat.mjs');})();" > /opt/QQ/resources/app/loadNapCat.js && \
sed -i 's|"main": "[^"]*"|"main": "./loadNapCat.js"|' /opt/QQ/resources/app/package.json

#RUN cd ./QmsgNtClient-NapCatQQ && npm config set registry https://registry.npmmirror.com/ && npm i
RUN cd ./QmsgNtClient-NapCatQQ && \
npm config set registry https://registry.npmmirror.com && \
npm install --omit=dev

VOLUME /usr/src/app/QmsgNtClient-NapCatQQ/config
VOLUME /usr/src/app/QmsgNtClient-NapCatQQ/logs
VOLUME /root/.config/QQ

ENTRYPOINT ["bash", "start.sh"]
  1. 最后的最后,在配置这一步,本人又卡了好久,配置这里在搭建私有云的文档中orz

    然后由于本人先搭建的私有云再搭建的机器人,因此install unistall了一下私有云,重新配置了一下

    开始愉快的用bot了!

    然后不知道本人没使用正确还是测试有问题,总之webui测试没成功?但是按照api文档是可以的 很怪

image-20250707221444760