# Boardware Genius 前后端分离启动指南(单用户直连) 本指南对应当前仓库: `/home/ivan/xuan/steven_project/nanobot` ## 1. 环境准备 - Python: `>=3.11` - Node.js: `>=18` - 包管理工具: `uv`、`npm` 在项目根目录执行: ```bash cd /home/ivan/xuan/steven_project/nanobot uv sync ``` 如果你第一次使用 Boardware Genius,需要先初始化: ```bash ./.venv/bin/python -m nanobot onboard ``` 然后编辑配置文件(至少配置一个可用模型): - `~/.nanobot/config.json` ## 2. 启动后端(Web API) 在项目根目录执行: ```bash cd /home/ivan/xuan/steven_project/nanobot ./.venv/bin/python -m nanobot web --host 127.0.0.1 --port 10000 ``` 启动成功后会看到类似日志: - `Uvicorn running on http://127.0.0.1:10000` 可用接口示例: - `GET http://127.0.0.1:10000/api/status` ### 2.1 准备登录账号 JSON(必需) Web 登录会读取本地账号文件,默认路径: - `/home/ivan/xuan/steven_project/nanobot/web_auth_users.json` 示例内容(任选一种格式): ```json { "users": [ { "username": "admin", "password": "123456" } ] } ``` ```json { "admin": "123456", "alice": "alice_pwd" } ``` 也可通过环境变量指定自定义路径: ```bash export NANOBOT_AUTH_FILE=/your/path/users.json ``` ## 3. 启动前端(Next.js) 新开一个终端,执行: ```bash cd /home/ivan/xuan/steven_project/nanobot/frontend cp env_template .env.local npm install npm run dev ``` 前端默认地址: - `http://127.0.0.1:3080` 前端默认会请求: - `NEXT_PUBLIC_API_URL=http://127.0.0.1:10000` 注意:如果你之前已经有 `frontend/.env.local`,请确认里面不是旧地址(例如 `localhost:8080`)。 如果你要改后端地址,修改: - `frontend/.env.local` ## 4. 访问与验证 1. 打开 `http://127.0.0.1:3080` 2. 首屏应进入登录页 3. 使用 `web_auth_users.json` 中正确的账号密码登录 4. 登录成功后进入对话页并可正常收发消息 ## 5. 常见问题 ### 5.1 前端显示“未连接/服务离线” 按顺序检查: 1. 后端是否在运行(终端是否有 `Uvicorn running ...`) 2. 前端 `NEXT_PUBLIC_API_URL` 是否指向正确地址 3. 端口是否被占用(`10000` / `3080`) ### 5.2 后端启动报 `No module named fastapi` 在项目根目录重新执行: ### 5.3 反向代理下登录后跳错前端域名 如果 API 域名和主前端域名不同,启动 backend 前显式设置主前端公开地址: ```bash export NANOBOT_FRONTEND_PUBLIC_BASE_URL=https://nanobot.bwgdi.com ``` 这样登录/注册成功后,backend 返回的 `frontend_base_url` 会固定为这个公开域名,而不是按 API 域名去拼 `:3080`。 ```bash uv sync ``` ### 5.3 需要开发测试工具(pytest/ruff) ```bash uv sync --extra dev ``` ## 6. 停止服务 - 在各自终端按 `Ctrl + C` 即可停止。