From 420f59fe5b12fde3c0fc9f0752bad5c6c15cd4fe Mon Sep 17 00:00:00 2001 From: enKl03b Date: Sat, 8 Mar 2025 21:41:00 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 +- docs/manual_deploy_linux.md | 113 ++++++++++++++++++ ...ual_deploy.md => manual_deploy_windows.md} | 2 +- 3 files changed, 117 insertions(+), 2 deletions(-) create mode 100644 docs/manual_deploy_linux.md rename docs/{manual_deploy.md => manual_deploy_windows.md} (98%) diff --git a/README.md b/README.md index 533d38383..3419b4322 100644 --- a/README.md +++ b/README.md @@ -50,7 +50,9 @@ - [🐳 Docker部署指南](docs/docker_deploy.md) -- [📦 手动部署指南](docs/manual_deploy.md) +- [📦 手动部署指南(Windows)](docs/manual_deploy.md) + +- [📦 手动部署指南(Linux)](docs/manual_deploy_linux.md) ### 配置说明 - [🎀 新手配置指南](docs/installation_cute.md) - 通俗易懂的配置教程,适合初次使用的猫娘 diff --git a/docs/manual_deploy_linux.md b/docs/manual_deploy_linux.md new file mode 100644 index 000000000..ab69f24ae --- /dev/null +++ b/docs/manual_deploy_linux.md @@ -0,0 +1,113 @@ +# 📦 Linux系统如何手动部署MaiMbot麦麦? + +## 准备工作 +- 一台联网的Linux设备(本教程以Ubuntu/Debian系为例) +- QQ小号(QQ框架的使用可能导致qq被风控,严重(小概率)可能会导致账号封禁,强烈不推荐使用大号) +- 可用的大模型API +- 一个AI助手,网上随便搜一家打开来用都行,可以帮你解决一些不懂的问题 +- 以下内容假设你对Linux系统有一定的了解,如果觉得难以理解,请直接用Windows系统部署[Windows系统部署指南](./manual_deploy_windows.md) + +## 你需要知道什么? + +- 如何正确向AI助手提问,来学习新知识 + +- Python是什么 + +- Python的虚拟环境是什么?如何创建虚拟环境 + +- 命令行是什么 + +- 数据库是什么?如何安装并启动MongoDB + +- 如何运行一个QQ机器人,以及NapCat框架是什么 +--- + +## 环境配置 + +### 1️⃣ **确认Python版本** + +需确保Python版本为3.9及以上 + +```bash +python --version +# 或 +python3 --version +``` +如果版本低于3.9,请更新Python版本。 +```bash +# Ubuntu/Debian +sudo apt update +sudo apt install python3.9 +# 如执行了这一步,建议在执行时将python3指向python3.9 +``` + +### 2️⃣ **创建虚拟环境** +```bash +# 方法1:使用venv(推荐) +python3 -m venv maimbot +source maimbot/bin/activate # 激活环境 + +# 方法2:使用conda(需先安装Miniconda) +wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh +bash Miniconda3-latest-Linux-x86_64.sh +conda create -n maimbot python=3.9 +conda activate maimbot + +# 通过以上方法创建并进入虚拟环境后,再执行以下命令 + +# 安装依赖(任选一种环境) +pip install -r requirements.txt +``` + +--- + +## 数据库配置 +### 3️⃣ **安装并启动MongoDB** +- 安装与启动:Debian参考[官方文档](https://docs.mongodb.com/manual/tutorial/install-mongodb-on-debian/),Ubuntu参考[官方文档](https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/) + +- 默认连接本地27017端口 +--- + +## NapCat配置 +### 4️⃣ **安装NapCat框架** + +- 参考[NapCat官方文档](https://www.napcat.wiki/guide/boot/Shell#napcat-installer-linux%E4%B8%80%E9%94%AE%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC-%E6%94%AF%E6%8C%81ubuntu-20-debian-10-centos9)安装 + +- 使用QQ小号登录,添加反向WS地址: +`ws://localhost:8080/onebot/v11/ws` + +--- + +## 配置文件设置 +### 5️⃣ **配置文件设置,让麦麦Bot正常工作** +- 修改环境配置文件:`.env.prod` +- 修改机器人配置文件:`bot_config.toml` + + +--- + +## 启动机器人 +### 6️⃣ **启动麦麦机器人** +```bash +# 在项目目录下操作 +nb run +# 或 +python3 bot.py +``` + +--- + +## **其他组件(可选)** +- 直接运行 knowledge.py生成知识库 + + +--- + +## 常见问题 +🔧 权限问题:在命令前加`sudo` +🔌 端口占用:使用`sudo lsof -i :8080`查看端口占用 +🛡️ 防火墙:确保8080/27017端口开放 +```bash +sudo ufw allow 8080/tcp +sudo ufw allow 27017/tcp +``` \ No newline at end of file diff --git a/docs/manual_deploy.md b/docs/manual_deploy_windows.md similarity index 98% rename from docs/manual_deploy.md rename to docs/manual_deploy_windows.md index 6d53beb4e..bd9c26f86 100644 --- a/docs/manual_deploy.md +++ b/docs/manual_deploy_windows.md @@ -1,4 +1,4 @@ -# 📦 如何手动部署MaiMbot麦麦? +# 📦 Windows系统如何手动部署MaiMbot麦麦? ## 你需要什么? From 7b4cb101d35d7d1ac6749ecb595c5e95ebaa1872 Mon Sep 17 00:00:00 2001 From: enKl03B <163709829+enKl03B@users.noreply.github.com> Date: Sat, 8 Mar 2025 21:49:10 +0800 Subject: [PATCH 2/7] Update docs/manual_deploy_linux.md Co-authored-by: sourcery-ai[bot] <58596630+sourcery-ai[bot]@users.noreply.github.com> --- docs/manual_deploy_linux.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/manual_deploy_linux.md b/docs/manual_deploy_linux.md index ab69f24ae..09b2cfd0d 100644 --- a/docs/manual_deploy_linux.md +++ b/docs/manual_deploy_linux.md @@ -39,6 +39,9 @@ python3 --version sudo apt update sudo apt install python3.9 # 如执行了这一步,建议在执行时将python3指向python3.9 +# 更新替代方案,设置 python3.9 为默认的 python3 版本: +sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1 +sudo update-alternatives --config python3 ``` ### 2️⃣ **创建虚拟环境** From f0f1b59b5672da3123597325215ca4e3834ef348 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sat, 8 Mar 2025 23:02:08 +0800 Subject: [PATCH 3/7] Update README.md --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 533d38383..04f3c62d7 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,7 @@ **交流群**: 766798517 一群人较多,建议加下面的(开发和建议相关讨论)不一定有空回复,会优先写文档和代码 **交流群**: 571780722 另一个群(开发和建议相关讨论)不一定有空回复,会优先写文档和代码 +**交流群**: 1035228475 另一个群(开发和建议相关讨论)不一定有空回复,会优先写文档和代码 ##
@@ -46,7 +47,7 @@ ### 部署方式 -如果你不知道Docker是什么,建议寻找相关教程或使用手动部署 +如果你不知道Docker是什么,建议寻找相关教程或使用手动部署(现在不建议使用docker,更新慢,可能不适配) - [🐳 Docker部署指南](docs/docker_deploy.md) From 6adb5edf5c48206a30f8cc67d5fff542e737c3c8 Mon Sep 17 00:00:00 2001 From: Yan233_ Date: Sun, 9 Mar 2025 02:53:51 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E8=B0=83=E6=95=B4=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E7=BB=86=E8=8A=82=EF=BC=8Cdocker=E9=83=A8=E7=BD=B2=E6=97=B6?= =?UTF-8?q?=E5=8F=AF=E9=80=89=E6=95=B0=E6=8D=AE=E5=BA=93=E8=B4=A6=E5=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index dd2650b23..cb508954f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: - 3000:3000 - 3001:3001 - 6099:6099 - restart: always + restart: unless-stopped volumes: - napcatQQ:/app/.config/QQ - napcatCONFIG:/app/napcat/config @@ -20,9 +20,11 @@ services: container_name: mongodb environment: - tz=Asia/Shanghai + # - MONGO_INITDB_ROOT_USERNAME=your_username + # - MONGO_INITDB_ROOT_PASSWORD=your_password expose: - "27017" - restart: always + restart: unless-stopped volumes: - mongodb:/data/db - mongodbCONFIG:/data/configdb @@ -34,7 +36,7 @@ services: - tz=Asia/Shanghai expose: - "8080" - restart: always + restart: unless-stopped depends_on: - mongodb - napcat From c5bdc4f5b0f6d0f2725e67e8990cb930df901f1f Mon Sep 17 00:00:00 2001 From: Yan233_ Date: Sun, 9 Mar 2025 03:57:55 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E9=98=B2ipv6=E7=82=B8=EF=BC=8C=E8=99=BD?= =?UTF-8?q?=E7=84=B6=E5=B0=8F=E6=A6=82=E7=8E=87=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/manual_deploy_linux.md | 2 +- docs/manual_deploy_windows.md | 2 +- src/gui/reasoning_gui.py | 2 +- src/plugins/knowledege/knowledge_library.py | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/manual_deploy_linux.md b/docs/manual_deploy_linux.md index 09b2cfd0d..d310ffc59 100644 --- a/docs/manual_deploy_linux.md +++ b/docs/manual_deploy_linux.md @@ -77,7 +77,7 @@ pip install -r requirements.txt - 参考[NapCat官方文档](https://www.napcat.wiki/guide/boot/Shell#napcat-installer-linux%E4%B8%80%E9%94%AE%E4%BD%BF%E7%94%A8%E8%84%9A%E6%9C%AC-%E6%94%AF%E6%8C%81ubuntu-20-debian-10-centos9)安装 - 使用QQ小号登录,添加反向WS地址: -`ws://localhost:8080/onebot/v11/ws` +`ws://127.0.0.1:8080/onebot/v11/ws` --- diff --git a/docs/manual_deploy_windows.md b/docs/manual_deploy_windows.md index bd9c26f86..86238bcd4 100644 --- a/docs/manual_deploy_windows.md +++ b/docs/manual_deploy_windows.md @@ -79,7 +79,7 @@ pip install -r requirements.txt ### 3️⃣ **配置NapCat,让麦麦bot与qq取得联系** - 安装并登录NapCat(用你的qq小号) -- 添加反向WS:`ws://localhost:8080/onebot/v11/ws` +- 添加反向WS:`ws://127.0.0.1:8080/onebot/v11/ws` ### 4️⃣ **配置文件设置,让麦麦Bot正常工作** - 修改环境配置文件:`.env.prod` diff --git a/src/gui/reasoning_gui.py b/src/gui/reasoning_gui.py index 340791ee3..572e4ece9 100644 --- a/src/gui/reasoning_gui.py +++ b/src/gui/reasoning_gui.py @@ -83,7 +83,7 @@ class ReasoningGUI: except RuntimeError: print("数据库未初始化,正在尝试初始化...") try: - Database.initialize("localhost", 27017, "maimai_bot") + Database.initialize("127.0.0.1", 27017, "maimai_bot") self.db = Database.get_instance().db print("数据库初始化成功") except Exception as e: diff --git a/src/plugins/knowledege/knowledge_library.py b/src/plugins/knowledege/knowledge_library.py index d2408e24f..481076961 100644 --- a/src/plugins/knowledege/knowledge_library.py +++ b/src/plugins/knowledege/knowledge_library.py @@ -19,7 +19,7 @@ from src.common.database import Database # 从环境变量获取配置 Database.initialize( - host=os.getenv("MONGODB_HOST", "localhost"), + host=os.getenv("MONGODB_HOST", "127.0.0.1"), port=int(os.getenv("MONGODB_PORT", "27017")), db_name=os.getenv("DATABASE_NAME", "maimai"), username=os.getenv("MONGODB_USERNAME"), From 1e971208be2ad67b2ecb79aa3eed08257785bd02 Mon Sep 17 00:00:00 2001 From: Yan233_ Date: Sun, 9 Mar 2025 04:50:01 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E8=A1=A5=E5=85=85Docker=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/docker_deploy.md | 39 +++++++++++++++++++++++++++++++---- docs/installation_cute.md | 4 ++-- docs/installation_standard.md | 4 ++-- 3 files changed, 39 insertions(+), 8 deletions(-) diff --git a/docs/docker_deploy.md b/docs/docker_deploy.md index c9b069309..59f4c6e11 100644 --- a/docs/docker_deploy.md +++ b/docs/docker_deploy.md @@ -2,20 +2,51 @@ ## 部署步骤(推荐,但不一定是最新) -1. 获取配置文件: +1. 获取Docker配置文件: ```bash -wget https://raw.githubusercontent.com/SengokuCola/MaiMBot/main/docker-compose.yml +wget https://raw.githubusercontent.com/SengokuCola/MaiMBot/main/docker-compose.yml -O docker-compose.yml ``` -2. 启动服务: +### 1. 启动服务: + +- **!!! 请在第一次启动前确保当前工作目录下`.env.prod`与`bot_config.toml`文件存在 !!!**\ +由于Docker文件映射行为的特殊性,若宿主机的映射路径不存在,可能导致意外的目录创建,而不会创建文件,由于此处需要文件映射到文件,需提前确保文件存在且路径正确,可使用如下命令: +```bash +touch .env.prod +touch bot_config.toml +``` + +- 启动Docker容器: ```bash NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose up -d ``` +旧版Docker中可能找不到docker compose,请使用docker-compose工具替代 -3. 修改配置后重启: +### 2. 修改配置并重启Docker: + +- 请前往 [🎀 新手配置指南](docs/installation_cute.md) 或 [⚙️ 标准配置指南](docs/installation_standard.md) 完成`.env.prod`与`bot_config.toml`配置文件的编写\ +**需要注意`.env.prod`中HOST处IP的填写,Docker中部署和系统中直接安装的配置会有所不同** + +- 重启Docker容器: +```bash +docker restart maimbot # 若修改过容器名称则替换maimbot为你自定的名臣 +``` + +- 下方命令可以但不推荐,只是同时重启NapCat、MongoDB、MaiMBot三个服务 ```bash NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose restart ``` +旧版Docker中可能找不到docker compose,请使用docker-compose工具替代 + +### 3. 登入NapCat管理页添加反向WebSocket + +- 在浏览器地址栏输入`http://<宿主机IP>:6099/`进入NapCat的管理Web页,添加一个Websocket客户端 +> 网络配置 -> 新建 -> Websocket客户端 + +- Websocket客户端的名称自定,URL栏填入`ws://maimbot:8080/onebot/v11/ws`,启用并保存即可\ +(若修改过容器名称则替换maimbot为你自定的名称) + +### 4. 愉快地和麦麦对话吧! ## ⚠️ 注意事项 diff --git a/docs/installation_cute.md b/docs/installation_cute.md index 278cbfe20..e7541f7d3 100644 --- a/docs/installation_cute.md +++ b/docs/installation_cute.md @@ -88,11 +88,11 @@ CHAT_ANY_WHERE_KEY=your_key CHAT_ANY_WHERE_BASE_URL=https://api.chatanywhere.tech/v1 # 如果你不知道这是什么,那么下面这些不用改,保持原样就好啦 -HOST=127.0.0.1 +HOST=127.0.0.1 # 如果使用Docker部署,需要改成0.0.0.0喵,不然听不见群友讲话了喵 PORT=8080 # 这些是数据库设置,一般也不用改呢 -MONGODB_HOST=127.0.0.1 +MONGODB_HOST=127.0.0.1 # 如果使用Docker部署,需要改成数据库容器的名字喵,默认是mongodb喵 MONGODB_PORT=27017 DATABASE_NAME=MegBot MONGODB_USERNAME = "" # 如果数据库需要用户名,就在这里填写喵 diff --git a/docs/installation_standard.md b/docs/installation_standard.md index 6e4920220..5f52676d1 100644 --- a/docs/installation_standard.md +++ b/docs/installation_standard.md @@ -52,11 +52,11 @@ CHAT_ANY_WHERE_KEY=your_key CHAT_ANY_WHERE_BASE_URL=https://api.chatanywhere.tech/v1 # 服务配置 -HOST=127.0.0.1 +HOST=127.0.0.1 # 如果使用Docker部署,需要改成0.0.0.0,否则QQ消息无法传入 PORT=8080 # 数据库配置 -MONGODB_HOST=127.0.0.1 +MONGODB_HOST=127.0.0.1 # 如果使用Docker部署,需要改成数据库容器的名字,默认是mongodb MONGODB_PORT=27017 DATABASE_NAME=MegBot MONGODB_USERNAME = "" # 数据库用户名 From ca929d55dc95ecea117c13db6c390a8830cb9bbc Mon Sep 17 00:00:00 2001 From: Yan233_ Date: Sun, 9 Mar 2025 04:59:14 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E8=A1=A5=E5=85=85Docker=E9=83=A8=E7=BD=B2?= =?UTF-8?q?=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/docker_deploy.md | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/docs/docker_deploy.md b/docs/docker_deploy.md index 59f4c6e11..3958d2fc4 100644 --- a/docs/docker_deploy.md +++ b/docs/docker_deploy.md @@ -2,12 +2,18 @@ ## 部署步骤(推荐,但不一定是最新) -1. 获取Docker配置文件: + +### 1. 获取Docker配置文件: + ```bash wget https://raw.githubusercontent.com/SengokuCola/MaiMBot/main/docker-compose.yml -O docker-compose.yml ``` -### 1. 启动服务: +- 若需要启用MongoDB数据库的用户名和密码,可进入docker-compose.yml,取消MongoDB处的注释并修改变量`=`后方的值为你的用户名和密码\ +修改后请注意在之后配置`.env.prod`文件时指定MongoDB数据库的用户名密码 + + +### 2. 启动服务: - **!!! 请在第一次启动前确保当前工作目录下`.env.prod`与`bot_config.toml`文件存在 !!!**\ 由于Docker文件映射行为的特殊性,若宿主机的映射路径不存在,可能导致意外的目录创建,而不会创建文件,由于此处需要文件映射到文件,需提前确保文件存在且路径正确,可使用如下命令: @@ -20,9 +26,11 @@ touch bot_config.toml ```bash NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose up -d ``` -旧版Docker中可能找不到docker compose,请使用docker-compose工具替代 -### 2. 修改配置并重启Docker: +- 旧版Docker中可能找不到docker compose,请使用docker-compose工具替代 + + +### 3. 修改配置并重启Docker: - 请前往 [🎀 新手配置指南](docs/installation_cute.md) 或 [⚙️ 标准配置指南](docs/installation_standard.md) 完成`.env.prod`与`bot_config.toml`配置文件的编写\ **需要注意`.env.prod`中HOST处IP的填写,Docker中部署和系统中直接安装的配置会有所不同** @@ -36,9 +44,11 @@ docker restart maimbot # 若修改过容器名称则替换maimbot为你自定 ```bash NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose restart ``` -旧版Docker中可能找不到docker compose,请使用docker-compose工具替代 -### 3. 登入NapCat管理页添加反向WebSocket +- 旧版Docker中可能找不到docker compose,请使用docker-compose工具替代 + + +### 4. 登入NapCat管理页添加反向WebSocket - 在浏览器地址栏输入`http://<宿主机IP>:6099/`进入NapCat的管理Web页,添加一个Websocket客户端 > 网络配置 -> 新建 -> Websocket客户端 @@ -46,7 +56,9 @@ NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose restart - Websocket客户端的名称自定,URL栏填入`ws://maimbot:8080/onebot/v11/ws`,启用并保存即可\ (若修改过容器名称则替换maimbot为你自定的名称) -### 4. 愉快地和麦麦对话吧! + +### 5. 愉快地和麦麦对话吧! + ## ⚠️ 注意事项