环境
我的内网服务器: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+deepseek:https://blog.csdn.net/YXWik/article/details/149497501

新增语言模型


http://ollama:11434

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

docker inspect ollama | grep -A 10 "Networks"

然后将fastgpt-app、aiproxy 都加上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中配置
这里不需要配置地址
