跳至主要內容

Docker部署

五六零网校大约 4 分钟

提示

教程所用的环境,为宝塔面板

Docker部署FastGPT简单、快速,是一个不错的部署方式

环境准备

  1. 在主机上安装宝塔面板,并且安装Docker和Docker compose
  2. 创建站点目录,并且将域名解析到站点目录
  3. 为站点域名申请SSL证书(可选)

安装教程

  1. 在站点根目录下,创建FastGPT项目文件夹

    说明:使用一个文件夹管理fastgpt的数据,方便以后备份数据 Alt text

  2. 在FastGPT项目目录下,新建Docker部署文件:docker-compose.yml

  3. 获取Docker Compose部署内容

获取方式

① 从官方Github项目获取:
https://github.com/labring/FastGPT/tree/main/files/deploy/fastgpt

② 下载Github项目,从文件夹中获取:
文件路径为:\files\deploy\fastgpt Alt text

  1. 修改docker-compose.yml文件配置

注意

当前的配置文件作为演示讲解,版本为v4.4.5,实际部署请用最新版本

修改说明:

  • DEFAULT_ROOT_PSW=1234 :此处修改为你想设置的管理员密码,示例为1234
  • OPENAI_BASE_URL=https://api.openai.com/v1 :此处默认为openai的官方地址,如主机无法访问openai的,需要改为代理地址,或者使用one api地址
  • CHAT_API_KEY=sk-xxxxxxxxxx :此处修改为你的openai秘钥或one api的令牌
  • ROOT_KEY=xxxxxx ;此处在升级版本的时候需要用到,可以随便填写,建议填写20位以上随机字符
  • 端口修改: pg和Mongo端口不需要修改,因为不会开放外网,只需要修改fastGPT的映射端口即可,默认为3000,建议修改为其他端口。 例如:将fastgpt的外网端口修改为56103 Alt text

(可选修改)

  • 配置文件每个镜像都提供了Docker和阿里云镜像的下载源。
  • 根据主机的实际位置,修改镜像的下载源,可使部署速度更快
  • 国内主机推荐使用阿里云源;国外主机推荐使用Docker源
  • 修改方式:在image前使用#注释不需要的源即可 例如:注释了阿里云的源,使用Docker镜像源 Alt text

完整修改的配置如下:

# 非 host 版本, 不使用本机代理
version: '3.3'
services:
  pg:
    image: ankane/pgvector:v0.4.2 # 使用 Docker 镜像
    #image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.4.2 # 使用阿里云镜像
    container_name: pg # 容器名称
    restart: always # 总是重新启动容器
    ports: # 暴露端口(生产环境建议不要暴露)
      - 5432:5432
    networks:
      - fastgpt
    environment:
      # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
      - POSTGRES_USER=username # PostgreSQL 用户名
      - POSTGRES_PASSWORD=password # PostgreSQL 密码
      - POSTGRES_DB=postgres # PostgreSQL 数据库名称
    volumes:
      - ./pg/data:/var/lib/postgresql/data # 持久化数据存储路径
  mongo:
    image: mongo:5.0.18
    #image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 使用阿里云镜像
    container_name: mongo # 容器名称
    restart: always # 总是重新启动容器
    ports: # 暴露端口(生产环境建议不要暴露)
      - 27018:27017
    networks:
      - fastgpt
    environment:
      # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
      - MONGO_INITDB_ROOT_USERNAME=username # MongoDB 初始用户名
      - MONGO_INITDB_ROOT_PASSWORD=password # MongoDB 初始密码
    volumes:
      - ./mongo/data:/data/db # 持久化数据存储路径
  fastgpt:
    container_name: fastgpt # 容器名称
    #image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:latest # 使用阿里云镜像
    image: ghcr.io/labring/fastgpt:latest # 使用 GitHub 镜像
    ports:
      - 56103:3000
    networks:
      - fastgpt
    depends_on:
      - mongo
      - pg
    restart: always # 总是重新启动容器
    environment:
      # root 密码,用户名为: root
      - DEFAULT_ROOT_PSW=1234  #此处修改为你想设置的管理员密码
      # 中转地址,如果是用官方号,不需要管
      - OPENAI_BASE_URL=https://api.openai.com/v1  #此处修改你的openai代理地址或oneapi地址
      - CHAT_API_KEY=sk-xxxxxxxxxx  #此处修改为你的openai秘钥或oneapi的KEY
      - DB_MAX_LINK=50 # 数据库最大连接数
      - TOKEN_KEY=any
      - ROOT_KEY=xxxxxx  #ROOT_KEY有时候升级的时候需要用到
      - FILE_TOKEN_KEY=filetokenkey
      # mongo 配置,不需要改. 如果连不上,可能需要去掉 ?authSource=admin
      - MONGODB_URI=mongodb://username:password@mongo:27017/fastgpt?authSource=admin
      # pg配置. 不需要改
      - PG_URL=postgresql://username:password@pg:5432/postgres
    volumes:
      - ./config.json:/app/data/config.json # 持久化数据存储路径
networks:
  fastgpt:

  1. docker-compose.yml文件所在的目录,运行终端,输入部署命令
docker-compose up -d

等待镜像下载和部署完成即可通过域名+端口号访问 例如:
https://ai.560.com:56103/

  1. 使用宝塔面板设置反向代理,将配置的fastgpt外网端口进行反向代理,直接用域名访问 Alt text

至此,教程部署完毕,你可以直接通过域名访问FastGPT!