小智服务端部署步骤(OpenCloudOS 专用精简版)
熊猫老师 发布于 阅读:27
🎯 最稳定可靠的部署步骤(OpenCloudOS 专用精简版)
你只需要严格按照下面流程操作,保证一次成功。
我会把复杂点全部标红、全部避坑。
项目地址:https://github.com/xinnan-tech/xiaozhi-esp32-server
✅ 第一步:创建目录结构
执行:
mkdir -p /root/xiaozhi-server/data
mkdir -p /root/xiaozhi-server/models/SenseVoiceSmall
✅ 第二步:把 model.pt 放到正确目录
上传 model.pt 到:
/root/xiaozhi-server/models/SenseVoiceSmall/model.pt
⚠ 千万不要放错目录,不然 8000 端口永远启动失败。
✅ 第三步:下载 docker-compose_all.yml
进入目录:
cd /root/xiaozhi-server
wget https://raw.githubusercontent.com/xinnan-tech/xiaozhi-esp32-server/refs/heads/main/main/xiaozhi-server/docker-compose_all.yml
下载成功后,保证文件结构如下:
xiaozhi-server
├── docker-compose_all.yml
├── data
├── models/SenseVoiceSmall/model.pt
✅ 第四步:下载 config_from_api.yaml 并改名
cd /root/xiaozhi-server/data
wget https://raw.githubusercontent.com/xinnan-tech/xiaozhi-esp32-server/refs/heads/main/main/xiaozhi-server/config_from_api.yaml
mv config_from_api.yaml .config.yaml
确认:
/root/xiaozhi-server/data/.config.yaml
🚨 第五步(非常重要):完全清理旧容器 + 镜像
进入目录:
cd /root/xiaozhi-server
执行:
docker compose -f docker-compose_all.yml down
强制删除所有旧容器:
docker stop xiaozhi-esp32-server 2>/dev/null
docker rm xiaozhi-esp32-server 2>/dev/null
docker stop xiaozhi-esp32-server-web 2>/dev/null
docker rm xiaozhi-esp32-server-web 2>/dev/null
docker stop xiaozhi-esp32-server-db 2>/dev/null
docker rm xiaozhi-esp32-server-db 2>/dev/null
docker stop xiaozhi-esp32-server-redis 2>/dev/null
docker rm xiaozhi-esp32-server-redis 2>/dev/null
删除旧镜像:
docker rmi ghcr.nju.edu.cn/xinnan-tech/xiaozhi-esp32-server:server_latest 2>/dev/null
docker rmi ghcr.nju.edu.cn/xinnan-tech/xiaozhi-esp32-server:web_latest 2>/dev/null
现在你的系统已经干净了。
🌟 第六步:启动新版本(关键步骤)
cd /root/xiaozhi-server
docker compose -f docker-compose_all.yml up -d
📌 第七步:查看 8002(后台 web)日志
docker logs -f xiaozhi-esp32-server-web
出现:
Started AdminApplication in xx seconds
说明你的后台管理系统 OK 了。
现在访问后台:
http://你的服务器公网IP:8002/
第一次访问要注册超级管理员账号(非常关键)。
🧩 第八步:配置 server.secret(关键)
后台 → 参数管理 → 找到 server.secret
复制值。
然后修改你的 /root/xiaozhi-server/data/.config.yaml:
manager-api:
url: http://xiaozhi-esp32-server-web:8002/xiaozhi
secret: 你的server.secret
⚠ 注意:
docker 环境必须使用容器名 xiaozhi-esp32-server-web
不能使用 127.0.0.1
不能使用主机 IP
🔄 第九步:重启 8000 服务
docker restart xiaozhi-esp32-server
docker logs -f xiaozhi-esp32-server
看到:
Websocket地址是 ws://你的ip:8000/xiaozhi/v1/
说明 语音服务成功启动!
笔者记:在腾讯云上安装了多次这一步始终无法成功,一直卡在反复拉取api配置。重启服务器,防火墙端口开放8000 8003,经过20多个小时的排查,终于发现 xiaozhi-esp32-server 容器并没有读取/root/xiaozhi-server/data/.config.yaml 里的配置文件,而是挂载了/opt/xiaozhi-esp32-server/data/.config.yaml(容器目录下找),这儿是空的,根本没有配置文件,所以反复卡无法读取api配置,把.config.yaml复制到这个目录。
1.删除旧容器
docker rm -f xiaozhi-esp32-server
2.然后再启动:
docker run -d \
--name xiaozhi-esp32-server \
--network xiaozhi-net \
-p 8000:8000 -p 8003:8003 \
-v /root/xiaozhi-server/data/.config.yaml:/opt/xiaozhi-esp32-server/data/.config.yaml \
ghcr.nju.edu.cn/xinnan-tech/xiaozhi-esp32-server:server_latest
这样保证容器干净,能够读取 .config.yaml
3.查看日志
docker logs -f xiaozhi-esp32-server
🏁 第十步:在后台参数管理配置 OTA/Websocket 地址
后台 → 参数管理:
-
server.websocket
填:
ws://你的公网IP:8000/xiaozhi/v1/ -
server.ota
填:
http://你的公网IP:8002/xiaozhi/ota/
保存。
🎉 完成!
你的小智服务器(docker 版)已成功部署并完全干净升级!
