由于我自己在部署FastGPT的时候,遇到了较多问题,导致花了比较长的时间才搞定。因此,打算将我成功部署的案例分享给大家,也为大家避避坑。

1.Docker下载

直接在官网下载,官网地址:https://www.docker.com/
下载的时候要注意自己电脑适配的版本。
下载完了安装即可。

2.windows功能配置

win+r:appwiz.cpl ,启动或关闭windows功能,要把下面的勾上
在这里插入图片描述在这里插入图片描述
部分操作系统没有Hyper-V,这个可以查资料解决。

3.Windows商店下载Ubuntu

下载如下的:
在这里插入图片描述

4.拷贝配置文件

进入cmd,输入mkdir fastgpt,并进入该文件夹中,将配置文件config.json与docker-compose.yml拷贝到该目录下。这两个文件可以从github fastgpt里面去找到。也可以直接用下面的,内容已全部奉上。
配置文件需要更改,更改的配置文件内容如下:
config.json:

// 已使用 json5 进行解析,会自动去掉注释,无需手动去除
{
  "feConfigs": {
    "lafEnv": "https://laf.dev" // laf环境。 https://laf.run (杭州阿里云) ,或者私有化的laf环境。如果使用 Laf openapi 功能,需要最新版的 laf 。
  },
  "systemEnv": {
    "vectorMaxProcess": 15, // 向量处理线程数量
    "qaMaxProcess": 15, // 问答拆分线程数量
    "tokenWorkers": 50, // Token 计算线程保持数,会持续占用内存,不能设置太大。
    "pgHNSWEfSearch": 100 // 向量搜索参数。越大,搜索越精确,但是速度越慢。设置为100,有99%+精度。
  },
  "llmModels": [
    {
      "provider": "Ollama",
      "model": "deepseek-r1:32b",
      "name": "deepseek-r1:32b",
      "maxContext": 125000,
      "maxResponse": 4000,
      "quoteMaxToken": 120000,
      "maxTemperature": 1.2,
      "charsPointsPrice": 0,
      "censor": false,
      "vision": true,
      "datasetProcess": true,
      "usedInClassify": true,
      "usedInExtractFields": true,
      "usedInToolCall": true,
      "usedInQueryExtension": true,
      "toolChoice": true,
      "functionCall": false,
      "customCQPrompt": "",
      "customExtractPrompt": "",
      "defaultSystemChatPrompt": "",
      "defaultConfig": {},
      "fieldMap": {}
    }
  ],
  "vectorModels": [
    {
      "provider": "Ollama",
      "model": "nomic-embed-text:latest",
      "name": "nomic-embed-text:latest",
      "charsPointsPrice": 0,
      "defaultToken": 512,
      "maxToken": 3000,
      "weight": 100
    }
  ],
  "reRankModels": [],
  "audioSpeechModels": [
    {
      "model": "tts-1",
      "name": "OpenAI TTS1",
      "charsPointsPrice": 0,
      "voices": [
        { "label": "Alloy", "value": "alloy", "bufferId": "openai-Alloy" },
        { "label": "Echo", "value": "echo", "bufferId": "openai-Echo" },
        { "label": "Fable", "value": "fable", "bufferId": "openai-Fable" },
        { "label": "Onyx", "value": "onyx", "bufferId": "openai-Onyx" },
        { "label": "Nova", "value": "nova", "bufferId": "openai-Nova" },
        { "label": "Shimmer", "value": "shimmer", "bufferId": "openai-Shimmer" }
      ]
    }
  ],
  "whisperModel": {
    "model": "whisper-1",
    "name": "Whisper1",
    "charsPointsPrice": 0
  }
}

docker-compose.yml:

# 数据库的默认账号和密码仅首次运行时设置有效
# 如果修改了账号密码,记得改数据库和项目连接参数,别只改一处~
# 该配置文件只是给快速启动,测试使用。正式使用,记得务必修改账号密码,以及调整合适的知识库参数,共享内存等。
# 如何无法访问 dockerhub 和 git,可以用阿里云(阿里云没有arm包)

version: '3.3'
services:
  # db
  pg:
    image: pgvector/pgvector:0.7.0-pg15 # docker hub
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.7.0 # 阿里云
    container_name: pg
    restart: always
    ports: # 生产环境建议不要暴露
      - 5432:5432
    networks:
      - fastgpt
    environment:
      # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
      - POSTGRES_USER=username
      - POSTGRES_PASSWORD=password
      - POSTGRES_DB=postgres
    volumes:
      - ./pg/data:/var/lib/postgresql/data
  mongo:
    image: mongo:5.0.18 # dockerhub
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
    # image: mongo:4.4.29 # cpu不支持AVX时候使用
    container_name: mongo
    restart: always
    ports:
      - 27017:27017
    networks:
      - fastgpt
    command: mongod --keyFile /data/mongodb.key --replSet rs0
    environment:
      - MONGO_INITDB_ROOT_USERNAME=myusername
      - MONGO_INITDB_ROOT_PASSWORD=mypassword
    volumes:
      - ./mongo/data:/data/db
    entrypoint:
      - bash
      - -c
      - |
        openssl rand -base64 128 > /data/mongodb.key
        chmod 400 /data/mongodb.key
        chown 999:999 /data/mongodb.key
        echo 'const isInited = rs.status().ok === 1
        if(!isInited){
          rs.initiate({
              _id: "rs0",
              members: [
                  { _id: 0, host: "mongo:27017" }
              ]
          })
        }' > /data/initReplicaSet.js
        # 启动MongoDB服务
        exec docker-entrypoint.sh "$$@" &

        # 等待MongoDB服务启动
        until mongo -u myusername -p mypassword --authenticationDatabase admin --eval "print('waited for connection')" > /dev/null 2>&1; do
          echo "Waiting for MongoDB to start..."
          sleep 2
        done

        # 执行初始化副本集的脚本
        mongo -u myusername -p mypassword --authenticationDatabase admin /data/initReplicaSet.js

        # 等待docker-entrypoint.sh脚本执行的MongoDB服务进程
        wait $$!

  # fastgpt
  sandbox:
    container_name: sandbox
    image: ghcr.io/labring/fastgpt-sandbox:v4.8.16 # git
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-sandbox:v4.8.16 # 阿里云
    networks:
      - fastgpt
    restart: always
  fastgpt:
    container_name: fastgpt
    image: ghcr.io/labring/fastgpt:v4.8.16 # git
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:v4.8.16 # 阿里云
    ports:
      - 3000:3000
    networks:
      - fastgpt
    depends_on:
      - mongo
      - pg
      - sandbox
    restart: always
    environment:
      # 前端访问地址: http://localhost:3000
      - FE_DOMAIN=http://localhost:3000
      # root 密码,用户名为: root。如果需要修改 root 密码,直接修改这个环境变量,并重启即可。
      - DEFAULT_ROOT_PSW=1234
      # AI模型的API地址哦。务必加 /v1。这里默认填写了OneApi的访问地址。
      - OPENAI_BASE_URL=http://host.docker.internal:3001/v1
      # AI模型的API Key。(这里默认填写了OneAPI的快速默认key,测试通后,务必及时修改)
      - CHAT_API_KEY=sk-8LAJFolsESaA6cwq8f0635646c3248C9B1E6200eEaBb8eE3
      # 数据库最大连接数
      - DB_MAX_LINK=30
      # 登录凭证密钥
      - TOKEN_KEY=any
      # root的密钥,常用于升级时候的初始化请求
      - ROOT_KEY=root_key
      # 文件阅读加密
      - FILE_TOKEN_KEY=filetoken
      # MongoDB 连接参数. 用户名myusername,密码mypassword。
      - MONGODB_URI=mongodb://myusername:mypassword@mongo:27017/fastgpt?authSource=admin
      # pg 连接参数
      - PG_URL=postgresql://username:password@pg:5432/postgres
      # sandbox 地址
      - SANDBOX_URL=http://sandbox:3000
      # 日志等级: debug, info, warn, error
      - LOG_LEVEL=info
      - STORE_LOG_LEVEL=warn
    volumes:
      - ./config.json:/app/data/config.json

  # oneapi
  mysql:
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mysql:8.0.36 # 阿里云
    image: mysql:8.0.36
    container_name: mysql
    restart: always
    ports:
      - 3306:3306
    networks:
      - fastgpt
    command: --default-authentication-plugin=mysql_native_password
    environment:
      # 默认root密码,仅首次运行有效
      MYSQL_ROOT_PASSWORD: oneapimmysql
      MYSQL_DATABASE: oneapi
    volumes:
      - ./mysql:/var/lib/mysql
  oneapi:
    container_name: oneapi
    image: ghcr.io/songquanpeng/one-api:v0.6.7
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/one-api:v0.6.6 # 阿里云
    ports:
      - 3001:3000
    depends_on:
      - mysql
    networks:
      - fastgpt
    restart: always
    environment:
      # mysql 连接参数
      - SQL_DSN=root:oneapimmysql@tcp(mysql:3306)/oneapi
      # 登录凭证加密密钥
      - SESSION_SECRET=oneapikey
      # 内存缓存
      - MEMORY_CACHE_ENABLED=true
      # 启动聚合更新,减少数据交互频率
      - BATCH_UPDATE_ENABLED=true
      # 聚合更新时长
      - BATCH_UPDATE_INTERVAL=10
      # 初始化的 root 密钥(建议部署完后更改,否则容易泄露)
      - INITIAL_ROOT_TOKEN=fastgpt
    volumes:
      - ./oneapi:/data
networks:
  fastgpt:

配置文件拷贝完了之后,进入cmd

cd fastgpt

然后再

docker-compose up -d

等待安装完成即可,这里可能需要魔法。
安装完了,启动docker就可以看到如下内容:
在这里插入图片描述

5.下载模型

把ollama的模型下载完毕,这里我不作详细阐述,下载教程网上比较多,我这里下载的如下:
在这里插入图片描述
注意:一定要下载文本嵌入模型。

6.配置渠道

下载完成后,点击如下进入。第一次进入要登录,账号选择root,密码为123456。
在这里插入图片描述
在这里插入图片描述
添加渠道,渠道类型选择Ollama,模型名称即为下载的模型,模型栏选择清除所有模型,并将下载的模型名称填入即可。密钥随便写,代理内容如下:

http://host.docker.internal:11434

在这里插入图片描述
配置完了,再配置文本嵌入模型的渠道。
配置完毕后,点击测试,如果成功会有提示,如下所示:
在这里插入图片描述
在这里插入图片描述

7.配置令牌

令牌名称随便填写,模型范围要将渠道的所有模型填入,过期时间选择永不过期,然后设置为无限额度,点击提交即可。
在这里插入图片描述
复制令牌key,并将该key填写到docker-compose.yml配置文件中CHAT_API_KEY中。
在这里插入图片描述
在这里插入图片描述

8.配置config.json文件

要更改配置文件,填写模型的名称和提供商即可,名称一定要与渠道的名称一致。
要填写大语言模型和向量模型,如下所示:
注意:如果有多模型,就多写几个{},内容拷贝即可
在这里插入图片描述
在这里插入图片描述

9.重启docker

cmd下输入以下命令:

docker-compose down
docker-compose up -d

10.使用FastGPT
点击如下进入fastGpt,第一次进入要输账号密码,账号为root,密码为1234
在这里插入图片描述
创建知识库,选用通用知识库即可:
在这里插入图片描述
创建工作台,使用简易模型即可:
在这里插入图片描述

附录

由于我在安装mysql的时候出现端口冲突,可以采用如下办法解决:
cmd输入如下,查看该端口被哪些应用占用了:

netstat -ano | findstr :3306

在这里插入图片描述
红色方框的为PID,可在任务管理器中的详细信息栏中,找到该PID的进程,杀掉后就可以正常安装了。

写的比较略,有疑问,评论区留言或者私。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐