Linux内网搭建FastGpt+配置ollama私有化的deepseek-r1:7b模型

环境

我的内网服务器:Linux 且有docker 和 docker-compose

我本机Windows有docker 有外网

准备

Windows拉取需要的镜像

复制代码
docker pull redis:7.2-alpine
docker pull mongo:5.0.18
docker pull pgvector/pgvector:0.8.0-pg15
docker pull minio/minio:RELEASE.2025-09-07T16-13-09Z
docker pull ghcr.io/labring/fastgpt-sandbox:v4.13.2
docker pull ghcr.io/labring/fastgpt-mcp_server:v4.13.2
docker pull ghcr.io/labring/fastgpt-plugin:v0.2.4
docker pull ghcr.io/labring/aiproxy:v0.3.2
docker pull ghcr.io/labring/fastgpt:v4.13.2

把所有镜像打包成单个 tar 包

复制代码
docker save -o fastgpt-all.tar \
redis:7.2-alpine \
mongo:5.0.18 \
pgvector/pgvector:0.8.0-pg15 \
minio/minio:RELEASE.2025-09-07T16-13-09Z \
ghcr.io/labring/fastgpt-sandbox:v4.13.2 \
ghcr.io/labring/fastgpt-mcp_server:v4.13.2 \
ghcr.io/labring/fastgpt-plugin:v0.2.4 \
ghcr.io/labring/aiproxy:v0.3.2 \
ghcr.io/labring/fastgpt:v4.13.2

(备用)Windows下可直接复制的一行命令格式(与上面的名区别只有换行)

复制代码
docker save -o fastgpt-all.tar redis:7.2-alpine mongo:5.0.18 pgvector/pgvector:0.8.0-pg15 minio/minio:RELEASE.2025-09-07T16-13-09Z  ghcr.io/labring/fastgpt-sandbox:v4.13.2  ghcr.io/labring/fastgpt-mcp_server:v4.13.2 ghcr.io/labring/fastgpt-plugin:v0.2.4 ghcr.io/labring/aiproxy:v0.3.2 ghcr.io/labring/fastgpt:v4.13.2

部署

上传

把fastgpt-all.tar文件传到Linux服务器

导入

复制代码
docker load -i fastgpt-all.tar

创建 docker-compose.yml

复制代码
services:
  pg:
    image: pgvector/pgvector:0.8.0-pg15
    container_name: pg
    restart: always
    ports:
      - "5432:5432"
    networks:
      - fastgpt
    environment:
      POSTGRES_USER: root
      POSTGRES_PASSWORD: FastGPT2025
      POSTGRES_DB: postgres
    volumes:
      - ./data/pg:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "root", "-d", "postgres"]
      interval: 5s
      timeout: 5s
      retries: 10

  mongo:
    image: mongo:5.0.18
    container_name: mongo
    restart: always
    ports:
      - "27017:27017"
    networks:
      - fastgpt
    command: mongod --keyFile /data/mongodb.key --replSet rs0
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: FastGPT2025
    volumes:
      - ./data/mongo:/data/db
    healthcheck:
      test: |
        mongo -u root -p FastGPT2025 --authenticationDatabase admin --eval "db.adminCommand('ping')"
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s
    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
        exec docker-entrypoint.sh "$$@" &
        until mongo -u root -p FastGPT2025 --authenticationDatabase admin --eval "print('waited for connection')"; do
          echo "Waiting for MongoDB to start..."
          sleep 2
        done
        mongo -u root -p FastGPT2025 --authenticationDatabase admin /data/initReplicaSet.js
        wait $$!

  redis:
    image: redis:7.2-alpine
    container_name: redis
    ports:
      - "6380:6379"
    networks:
      - fastgpt
    restart: always
    command: redis-server --loglevel warning --maxclients 10000 --appendonly yes --save 60 10 --maxmemory 4gb --maxmemory-policy noeviction
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 3s
      retries: 3
      start_period: 30s
    volumes:
      - ./data/redis:/data

  fastgpt-minio:
    image: minio/minio:RELEASE.2025-09-07T16-13-09Z
    container_name: fastgpt-minio
    restart: always
    networks:
      - fastgpt
    ports:
      - "9002:9000"
      - "9003:9001"
    environment:
      MINIO_ROOT_USER: admin
      MINIO_ROOT_PASSWORD: FastGPT2025
    volumes:
      - ./data/fastgpt-minio:/data
    command: server /data --console-address ":9001"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
      interval: 30s
      timeout: 20s
      retries: 3

  sandbox:
    container_name: sandbox
    image: ghcr.io/labring/fastgpt-sandbox:v4.13.2
    ports:
      - "3002:3000"
    networks:
      - fastgpt
    restart: always

  fastgpt-mcp-server:
    container_name: fastgpt-mcp-server
    image: ghcr.io/labring/fastgpt-mcp_server:v4.13.2
    ports:
      - "3005:3000"
    networks:
      - fastgpt
    restart: always
    environment:
      FASTGPT_ENDPOINT: http://fastgpt-app:3000
    depends_on:
      - fastgpt-app

  fastgpt-plugin:
    image: ghcr.io/labring/fastgpt-plugin:v0.2.4
    container_name: fastgpt-plugin
    restart: always
    ports:
      - "3003:3000"
    networks:
      - fastgpt
    environment:
      AUTH_TOKEN: token
      S3_ENDPOINT: fastgpt-minio
      S3_PORT: 9000
      S3_USE_SSL: "false"
      S3_ACCESS_KEY: admin
      S3_SECRET_KEY: FastGPT2025
      S3_BUCKET: fastgpt-plugins
      S3_PUBLIC_BUCKET: fastgpt-public
      S3_PRIVATE_BUCKET: fastgpt-private
      MONGODB_URI: mongodb://root:FastGPT2025@mongo:27017/fastgpt?authSource=admin&directConnection=true
      REDIS_URL: redis://default:@redis:6379
    depends_on:
      fastgpt-minio:
        condition: service_healthy

  aiproxy:
    image: ghcr.io/labring/aiproxy:v0.3.2
    container_name: aiproxy
    restart: unless-stopped
    ports:
      - "3010:3000"
    depends_on:
      aiproxy_pg:
        condition: service_healthy
    networks:
      - fastgpt
      - aiproxy
    environment:
      ADMIN_KEY: aiproxy
      LOG_DETAIL_STORAGE_HOURS: 1
      SQL_DSN: postgres://root:FastGPT2025@aiproxy_pg:5432/aiproxy
      RETRY_TIMES: 3
      BILLING_ENABLED: "false"
      DISABLE_MODEL_CONFIG: "true"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/api/status"]
      interval: 5s
      timeout: 5s
      retries: 10

  aiproxy_pg:
    image: pgvector/pgvector:0.8.0-pg15
    restart: unless-stopped
    container_name: aiproxy_pg
    volumes:
      - ./data/aiproxy_pg:/var/lib/postgresql/data
    networks:
      - aiproxy
    environment:
      TZ: Asia/Shanghai
      POSTGRES_USER: root
      POSTGRES_DB: aiproxy
      POSTGRES_PASSWORD: FastGPT2025
    healthcheck:
      test: ["CMD", "pg_isready", "-U", "root", "-d", "aiproxy"]
      interval: 5s
      timeout: 5s
      retries: 10

  fastgpt-app:
    image: ghcr.io/labring/fastgpt:v4.13.2
    container_name: fastgpt-app
    restart: always
    ports:
      - "3000:3000"
    networks:
      - fastgpt
    environment:
      LOG_DEPTH: 3
      DEFAULT_ROOT_PSW: 123456
      DB_MAX_LINK: 5
      TOKEN_KEY: fastgpt
      FILE_TOKEN_KEY: filetokenkey
      AES256_SECRET_KEY: fastgptsecret
      ROOT_KEY: fdafasd
      MULTIPLE_DATA_TO_BASE64: "true"
      EMBEDDING_CHUNK_SIZE: 10
      PLUGIN_BASE_URL: http://fastgpt-plugin:3000
      PLUGIN_TOKEN: token
      SANDBOX_URL: http://sandbox:3000
      AIPROXY_API_ENDPOINT: http://aiproxy:3000
      AIPROXY_API_TOKEN: aiproxy
      OPENAI_BASE_URL: ""
      CHAT_API_KEY: ""
      S3_ENDPOINT: fastgpt-minio
      S3_PORT: 9000
      S3_USE_SSL: "false"
      S3_ACCESS_KEY_ID: admin
      S3_SECRET_ACCESS_KEY: FastGPT2025
      S3_BUCKET_PRIVATE: fastgpt-private
      S3_BUCKET_PUBLIC: fastgpt-public
      REDIS_URL: redis://default:@redis:6379
      MONGODB_URI: mongodb://root:FastGPT2025@mongo:27017/fastgpt?authSource=admin&directConnection=true
      MONGODB_LOG_URI: mongodb://root:FastGPT2025@mongo:27017/fastgpt?authSource=admin&directConnection=true
      PG_URL: postgresql://root:FastGPT2025@pg:5432/postgres
      FE_DOMAIN: http://localhost:3000
      FILE_DOMAIN: http://localhost:3000
      LOG_LEVEL: info
      STORE_LOG_LEVEL: warn
      CHAT_FILE_EXPIRE_TIME: 7
      USE_IP_LIMIT: "false"
      WORKFLOW_MAX_RUN_TIMES: 500
      WORKFLOW_MAX_LOOP_TIMES: 50
      SERVICE_REQUEST_MAX_CONTENT_LENGTH: 10
      CHECK_INTERNAL_IP: "false"
      SHOW_COUPON: "false"
    volumes:
      - ./data/files:/app/data/files
    depends_on:
      mongo: { condition: service_healthy }
      pg: { condition: service_healthy }
      redis: { condition: service_healthy }
      fastgpt-minio: { condition: service_healthy }
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/api/health"]
      interval: 30s
      timeout: 10s
      retries: 3
      start_period: 60s

networks:
  fastgpt:
  aiproxy:

创建data文件夹

复制代码
mkdir -p data/{pg,mongo,redis,fastgpt-minio,aiproxy_pg,files}

启动

复制代码
docker compose up -d

访问

复制代码
地址:http://服务器IP:3000
账号:root
密码:123456

配置ollama模型

Linux安装docker+ollama+deepseekhttps://blog.csdn.net/YXWik/article/details/149497501

新增语言模型

复制代码
http://ollama:11434

如果网络不通就查询ollama所在的网络

复制代码
docker inspect ollama | grep -A 10 "Networks"

然后将fastgpt-appaiproxy 都加上ollama对应的网络

最底部声明下

重启

复制代码
docker compose up -d aiproxy
docker compose up -d fastgpt-app

发现还没生效,给 Ollama 多 "插一根网线" 到 FastGPT 网络!

复制代码
docker network connect fastgpt_fastgpt ollama

再次测试发现成功了

ollama拉取模型部署内容

在Windows上拉取索引embeddings模型

复制代码
ollama pull all-minilm

在Linux上找到ollma模型的位置

复制代码
docker inspect ollama | grep Mounts -A 10


把Windows上这两个文件夹中的内容上传到Linux上

然后重启ollama

复制代码
docker restart ollama

验证

复制代码
docker exec -it ollama ollama list

FastGpt中配置

这里不需要配置地址

相关推荐
子游i2 小时前
HappyHorse 1.0 创作指南
人工智能·ai·happyhorse
GJGCY2 小时前
从技术路径看金融AI智能体规模化落地:三大风险与可靠架构选择
ai·金融·智能体
jiayong232 小时前
国内外视频/图像大模型与智能体工具平台竞品对比
ai·音视频·agent
GEO索引未来2 小时前
国内首部GEO可信传播标准立项通过/DeepSeek-V4 正式上线并开源/Open AI、Google继续推进AI广告标准化
大数据·人工智能·gpt·ai·chatgpt·开源
维元码簿2 小时前
Claude Code 深度拆解:Agent 执行内核 3 — 从 API 调用到安全退出
ai·agent·claude code·ai coding
marsh02063 小时前
39 openclaw持续集成实践:自动化构建与部署流程
运维·ci/cd·ai·自动化·编程·技术
活跃的煤矿打工人3 小时前
【星海出品】防止大模型强依赖(二)
ai·gpu算力
AI刀刀3 小时前
手机AI怎么导出pdf
人工智能·ai·智能手机·pdf·deepseek·ds随心转