Skip to content

Docker本地部署小智服务器

参考和鸣谢

感谢虾哥开源小智后端

感谢xinnan-tech提供本地部署教程

前置条件

  1. 一台内存>=8G的服务器
  2. 预装docker

步骤

  1. 下载本文件夹解压到本地
  2. 下载model.pt存放到第一步下载的文件夹中的models/SenseVoiceSmall
  3. 检查文件夹结构,xiaozhi-server的结构应为
    xiaozhi-server
      ├─ docker-compose_all.yml
      ├─ data
        ├─ .config.yaml
      ├─ models
         ├─ SenseVoiceSmall
           ├─ model.pt
    
  4. 使用docker清除之前构建的历史镜像以及容器(初次部署此步可跳过)

    docker compose -f docker-compose_all.yml down
    
    docker stop xiaozhi-esp32-server
    docker rm xiaozhi-esp32-server
    
    docker stop xiaozhi-esp32-server-web
    docker rm xiaozhi-esp32-server-web
    
    docker stop xiaozhi-esp32-server-db
    docker rm xiaozhi-esp32-server-db
    
    docker stop xiaozhi-esp32-server-redis
    docker rm xiaozhi-esp32-server-redis
    
    docker rmi ghcr.nju.edu.cn/xinnan-tech/xiaozhi-esp32-server:server_latest
    docker rmi ghcr.nju.edu.cn/xinnan-tech/xiaozhi-esp32-server:web_latest
    

  5. 启动新容器 执行docker compose -f docker-compose_all.yml up -d启动新容器

  6. 访问控制台 使用docker logs -f xiaozhi-esp32-server-web命令查看日志,如果出现如下日志则说明智控台启动成功

    2025-xx-xx 22:11:12.445 [main] INFO  c.a.d.s.b.a.DruidDataSourceAutoConfigure - Init DruidDataSource
    2025-xx-xx 21:28:53.873 [main] INFO  xiaozhi.AdminApplication - Started AdminApplication in 16.057 seconds (process running for 17.941)
    http://localhost:8002/xiaozhi/doc.html
    
    此时使用http://你的服务器ip:8002就可以访问智控台

  7. 注册账号 初次登录智控台需要进行账号注册

  8. 将智控台的密钥复制到.config.yaml,进入【参数字典】>【参数管理】,复制server.secret字段的值 alt text alt text 粘贴到.config.yaml文件的这里 alt text

  9. 配置大语言模型 alt text alt text

  10. 重启智控台 使用如下指令:

    docker restart xiaozhi-esp32-server
    docker logs -f xiaozhi-esp32-server
    
    进行重启和查看日志,如果出现类似于
    25-02-23 12:01:09[core.websocket_server] - INFO - Websocket地址是      ws://xxx.xx.xx.xx:8000/xiaozhi/v1/
    25-02-23 12:01:09[core.websocket_server] - INFO - =======上面的地址是websocket协议地址,请勿用浏览器访问=======
    25-02-23 12:01:09[core.websocket_server] - INFO - 如想测试websocket请用谷歌浏览器打开test目录下的test_page.html
    25-02-23 12:01:09[core.websocket_server] - INFO - =======================================================
    
    就表示server启动成功

  11. 配置OTA和websocket地址 打开cmd使用ipconfig(win)或者ifconfig(linux)查看到自己的ip,假设ip为192.168.19.1,那么你的OTA接口和websocket接口就是

接口 地址
OTA接口 http://192.168.19.1:8002/xiaozhi/ota/
Websocket接口 ws://192.168.19.1:8000/xiaozhi/v1/

其他IP对应替换就可以 alt text

FAQ

1. 使用docker启动小智服务器之后服务器宕机卡死

检查服务器内存是否>=8G,如果不满足条件请加装内存

2. docker无法拉取镜像

使用docker国内镜像仓库或者魔法

3. windows进行docker部署产生错误

如果是Docker Desktop请先打开,然后进行部署

4. 服务器外部无法访问8002端口

请在服务器的防火墙打开对应端口

5. 小智一直显示检查新版本失败

alt text 请确保选择的是正确的IP,有时候本机部署会有一些虚拟IP,比如 alt text 且请检查.config.yaml中的url是否配置为http://xiaozhi-esp32-server-web:8002/xiaozhi

6. POST /config/server-base 请求失败

使用docker logs -f xiaozhi-esp32-server指令查看日志出现POST /config/server-base 请求失败