Files
NeoBot/docs/getting-started.md
K2Cr2O1 dec1a43f28 feat(bot): 实现 BotManager 并完善机器人注销逻辑
添加全局 BotManager 单例用于统一管理所有 Bot 实例
在 WS 关闭和 ReverseWSManager 清理时调用注销逻辑
修改广播插件使用 BotManager 获取所有活跃 Bot 实例
移除 echo 插件的权限限制并更新文档配置
2026-03-08 12:25:13 +08:00

110 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 快速上手
## 1. 你需要准备
* **Python 3.14**必须是这个版本JIT编译需要
* **Git**:拉取代码
* **Redis**:缓存和权限管理,需要单独安装
* **Docker** (可选)用于代码沙箱执行code_py插件
* **OneBot v11 客户端**:机器人本体,推荐用 [NapCatQQ](https://github.com/NapNeko/NapCatQQ)
## 2. 搭环境
### a. 克隆代码
```bash
git clone https://github.com/Fairy-Oracle-Sanctuary/NeoBot.git
cd NeoBot
```
### b. 创建虚拟环境
```bash
# Windows
python -m venv venv
.\venv\Scripts\activate
# Linux / macOS
python3.14 -m venv venv
source venv/bin/activate
```
看到命令行前面多了个 `(venv)`,就说明你进来了。
### c. 安装依赖
```bash
pip install -r requirements.txt
```
### d. 安装 Playwright 依赖
```bash
playwright install chromium
```
### e. 编译核心 (可选,但强烈建议)
想让你的代码更快?把它的核心代码编译成 C。
```bash
python setup_mypyc.py build_ext --inplace
```
*Windows 上可能需要装个 Visual Studio Build ToolsLinux 上需要 GCC。编译失败也别慌跳过就行JIT 也能保证不错的速度*
## 3. 第一次
### a. 修改配置
去根目录找 `config.toml`
```toml
[napcat_ws]
# 你的 OneBot 地址
# 我们用的是正向连接,也就是 Bot 主动去连 OneBot
uri = "ws://127.0.0.1:3001"
token = ""
#当然你也可以配置逆向连接
[reverse_ws]
enabled = true # 是否启用
host = "0.0.0.0" # 监听地址
port = 3002 # 监听端口
token = ""
[redis]
host = "127.0.0.1"
port = 6379
db = 0
# MySQL 配置
[mysql]
# MySQL 主机地址
host = "114.66.61.199"
# MySQL 端口
port = 42398
# MySQL 用户名
user = "neobot"
# MySQL 密码
password = "neobot"
# MySQL 数据库名称
db = "neobot"
```
`uri` 改成你自己的 OneBot 地址。
### b. 启动!
一切就绪
```bash
# 推荐开启 JIT + GIL-free 模式启动Python 3.14
python -X jit -X gil=0 main.py
```
**模式说明**
- `-X jit`:启用 JIT 编译提升运行时性能2-5 倍)
- `-X gil=0`:启用无全局锁模式,多线程真正并行执行(+300% CPU 密集型任务性能)
如果你看到日志刷出来,最后显示 "连接成功!",恭喜,你成功了!
现在,试着给你的机器人发个 `/help`看看会返回什么东西