mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-27 08:25:07 +00:00
deploy docs
This commit is contained in:
89
README.md
89
README.md
@@ -8,6 +8,8 @@ Fast GPT 允许你使用自己的 openai API KEY 来快速的调用 openai 接
|
|||||||
|
|
||||||
## 开发
|
## 开发
|
||||||
|
|
||||||
|
**第一次开发,请先看下方部署,需要部署数据库.开发的环境变量和部署的环境变量几乎相同,仅 IP 地址不一样.所以部署好后,直接把部署文件的环境变量复制过来,改下 Ip 就 OK 了。**
|
||||||
|
|
||||||
**配置环境变量**
|
**配置环境变量**
|
||||||
复制.env.template 文件,生成一个.env.local 环境变量文件夹,修改.env.local 内容,参考下方:
|
复制.env.template 文件,生成一个.env.local 环境变量文件夹,修改.env.local 内容,参考下方:
|
||||||
|
|
||||||
@@ -18,31 +20,24 @@ AXIOS_PROXY_PORT=7890
|
|||||||
# openai 中转连接(可选)
|
# openai 中转连接(可选)
|
||||||
OPENAI_BASE_URL=https://api.openai.com/v1
|
OPENAI_BASE_URL=https://api.openai.com/v1
|
||||||
OPENAI_BASE_URL_AUTH=可选的安全凭证
|
OPENAI_BASE_URL_AUTH=可选的安全凭证
|
||||||
# 是否开启队列任务。 1-开启,0-关闭(请求 parentUrl 去执行任务,单机时直接填1)
|
|
||||||
queueTask=1
|
queueTask=1
|
||||||
parentUrl=https://hostname/api/openapi/startEvents
|
parentUrl=https://hostname/api/openapi/startEvents
|
||||||
# 发送邮箱验证码配置。参考 nodeMail 获取参数,自行百度。
|
|
||||||
MY_MAIL=xxx@qq.com
|
MY_MAIL=xxx@qq.com
|
||||||
MAILE_CODE=xxx
|
MAILE_CODE=xxx
|
||||||
# 阿里短信服务(邮箱和短信至少二选一)
|
|
||||||
aliAccessKeyId=xxx
|
aliAccessKeyId=xxx
|
||||||
aliAccessKeySecret=xxx
|
aliAccessKeySecret=xxx
|
||||||
aliSignName=xxx
|
aliSignName=xxx
|
||||||
aliTemplateCode=SMS_xxx
|
aliTemplateCode=SMS_xxx
|
||||||
# token(随便填,作为登录凭证)
|
|
||||||
TOKEN_KEY=xxx
|
TOKEN_KEY=xxx
|
||||||
# openai key
|
|
||||||
OPENAIKEY=sk-xxx
|
OPENAIKEY=sk-xxx
|
||||||
# mongo连接地址
|
# 和mongo镜像的username,password对应
|
||||||
MONGODB_URI=mongodb://username:password@0.0.0.0:27017/test?authSource=admin
|
MONGODB_URI=mongodb://username:password@服务器IP:27017/test?authSource=admin
|
||||||
# mongo数据库名称
|
|
||||||
MONGODB_NAME=xxx
|
MONGODB_NAME=xxx
|
||||||
# pg 数据库相关内容,和 docker-compose pg 部分对上
|
PG_HOST=服务器IP
|
||||||
PG_HOST=0.0.0.0
|
PG_PORT=8100
|
||||||
PG_PORT=8102
|
PG_USER=fastgpt # POSTGRES_USER
|
||||||
PG_USER=fastgpt
|
PG_PASSWORD=1234 # POSTGRES_PASSWORD
|
||||||
PG_PASSWORD=1234
|
PG_DB_NAME=fastgpt # POSTGRES_DB
|
||||||
PG_DB_NAME=fastgpt
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**运行**
|
**运行**
|
||||||
@@ -55,13 +50,21 @@ pnpm dev
|
|||||||
|
|
||||||
### 代理环境(国外服务器可忽略)
|
### 代理环境(国外服务器可忽略)
|
||||||
|
|
||||||
|
选择一个即可。
|
||||||
|
|
||||||
1. [clash 方案](./docs/proxy/clash.md) - 仅需一台服务器(需要有 clash)
|
1. [clash 方案](./docs/proxy/clash.md) - 仅需一台服务器(需要有 clash)
|
||||||
2. [nginx 方案](./docs/proxy/nginx.md) - 需要一台国外服务器
|
2. [nginx 方案](./docs/proxy/nginx.md) - 需要一台国外服务器
|
||||||
3. [cloudflare 方案](./docs/proxy/cloudflare.md) - 需要有域名(每日免费 10w 次代理请求)
|
3. [cloudflare 方案](./docs/proxy/cloudflare.md) - 需要有域名(每日免费 10w 次代理请求)
|
||||||
|
|
||||||
### docker 部署
|
### docker 部署
|
||||||
|
|
||||||
#### 1. 安装 docker 和 docker-compose
|
#### 1. 准备
|
||||||
|
|
||||||
|
> 1. 服务器开通 80 端口。用代理的话,对应的代理端口也需要打开。
|
||||||
|
> 2. QQ 邮箱 Code:进入 QQ 邮箱 -> 账号 -> 申请 SMTP 账号
|
||||||
|
> 3. 有域名的准备好 SSL 证书
|
||||||
|
|
||||||
|
#### 2. 安装 docker 和 docker-compose
|
||||||
|
|
||||||
这个不同系统略有区别,百度安装下。验证安装成功后进行下一步。下面给出一个例子:
|
这个不同系统略有区别,百度安装下。验证安装成功后进行下一步。下面给出一个例子:
|
||||||
|
|
||||||
@@ -75,13 +78,14 @@ sudo chmod +x /usr/local/bin/docker-compose
|
|||||||
# 验证安装
|
# 验证安装
|
||||||
docker -v
|
docker -v
|
||||||
docker-compose -v
|
docker-compose -v
|
||||||
|
# 如果docker-compose运行不了,可以把 deploy/docker-compose 文件复制到服务器,然后在 docker-compose 文件夹里执行 sh init.sh。会把docker-compose文件复制到对应目录。
|
||||||
```
|
```
|
||||||
|
|
||||||
#### 2. 创建 3 个初始化文件
|
#### 2. 创建 3 个初始化文件
|
||||||
|
|
||||||
手动创建或者直接把 deploy 里内容复制过去
|
手动创建或者直接把 deploy 里内容复制过去
|
||||||
|
|
||||||
**/root/fast-gpt/pg/init.sql**
|
**/root/fastgpt/pg/init.sql PG 数据库初始化**
|
||||||
|
|
||||||
```sql
|
```sql
|
||||||
set -e
|
set -e
|
||||||
@@ -105,7 +109,7 @@ CREATE INDEX modelData_modelId_index ON modelData USING HASH (model_id);
|
|||||||
EOSQL
|
EOSQL
|
||||||
```
|
```
|
||||||
|
|
||||||
**/root/fast-gpt/nginx/nginx.conf**
|
**/root/fastgpt/nginx/nginx.conf Nginx 配置**
|
||||||
|
|
||||||
```conf
|
```conf
|
||||||
user nginx;
|
user nginx;
|
||||||
@@ -147,6 +151,7 @@ http {
|
|||||||
|
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
|
# 改成自己的域名和证书
|
||||||
server_name docgpt.ahapocket.cn;
|
server_name docgpt.ahapocket.cn;
|
||||||
ssl_certificate /ssl/docgpt.pem;
|
ssl_certificate /ssl/docgpt.pem;
|
||||||
ssl_certificate_key /ssl/docgpt.key;
|
ssl_certificate_key /ssl/docgpt.key;
|
||||||
@@ -167,7 +172,7 @@ http {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
**/root/fast-gpt/docker-compose.yml**
|
**/root/fastgpt/docker-compose.yml 核心部署文件**
|
||||||
|
|
||||||
```yml
|
```yml
|
||||||
version: '3.3'
|
version: '3.3'
|
||||||
@@ -178,26 +183,35 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
container_name: fast-gpt
|
container_name: fast-gpt
|
||||||
environment:
|
environment:
|
||||||
# - AXIOS_PROXY_HOST=127.0.0.1
|
# proxy(可选)
|
||||||
# - AXIOS_PROXY_PORT=7890
|
- AXIOS_PROXY_HOST=127.0.0.1
|
||||||
# - OPENAI_BASE_URL=https://api.openai.com/v1
|
- AXIOS_PROXY_PORT=7890
|
||||||
# - OPENAI_BASE_URL_AUTH=可选的安全凭证
|
# openai 中转连接(可选)
|
||||||
|
- OPENAI_BASE_URL=https://api.openai.com/v1
|
||||||
|
- OPENAI_BASE_URL_AUTH=可选的安全凭证
|
||||||
|
# 是否开启队列任务。 1-开启,0-关闭(请求 parentUrl 去执行任务,单机时直接填1)
|
||||||
|
- queueTask=1
|
||||||
|
- parentUrl=https://hostname/api/openapi/startEvents
|
||||||
|
# 发送邮箱验证码配置。用的是QQ邮箱。参考 nodeMail 获取MAILE_CODE,自行百度。
|
||||||
- MY_MAIL=xxxx@qq.com
|
- MY_MAIL=xxxx@qq.com
|
||||||
- MAILE_CODE=xxxx
|
- MAILE_CODE=xxxx
|
||||||
|
# 阿里短信服务(邮箱和短信至少二选一)
|
||||||
- aliAccessKeyId=xxxx
|
- aliAccessKeyId=xxxx
|
||||||
- aliAccessKeySecret=xxxx
|
- aliAccessKeySecret=xxxx
|
||||||
- aliSignName=xxxxx
|
- aliSignName=xxxxx
|
||||||
- aliTemplateCode=SMS_xxxx
|
- aliTemplateCode=SMS_xxxx
|
||||||
|
# token加密凭证(随便填,作为登录凭证)
|
||||||
- TOKEN_KEY=xxxx
|
- TOKEN_KEY=xxxx
|
||||||
- queueTask=1
|
# 和下方mongo镜像的username,password对应
|
||||||
- parentUrl=https://hostname/api/openapi/startEvents
|
|
||||||
- MONGODB_URI=mongodb://username:passsword@0.0.0.0:27017/?authSource=admin
|
- MONGODB_URI=mongodb://username:passsword@0.0.0.0:27017/?authSource=admin
|
||||||
- MONGODB_NAME=xxx
|
- MONGODB_NAME=xxx
|
||||||
- PG_HOST=0.0.0.0
|
- PG_HOST=0.0.0.0
|
||||||
- PG_PORT=8100
|
- PG_PORT=8100
|
||||||
- PG_USER=fastgpt
|
# 和下方PG镜像对应.
|
||||||
- PG_PASSWORD=1234
|
- PG_USER=fastgpt # POSTGRES_USER
|
||||||
- PG_DB_NAME=fastgpt
|
- PG_PASSWORD=1234 # POSTGRES_PASSWORD
|
||||||
|
- PG_DB_NAME=fastgpt # POSTGRES_DB
|
||||||
|
# openai api key
|
||||||
- OPENAIKEY=sk-xxxxx
|
- OPENAIKEY=sk-xxxxx
|
||||||
nginx:
|
nginx:
|
||||||
image: nginx:alpine3.17
|
image: nginx:alpine3.17
|
||||||
@@ -205,10 +219,12 @@ services:
|
|||||||
restart: always
|
restart: always
|
||||||
network_mode: host
|
network_mode: host
|
||||||
volumes:
|
volumes:
|
||||||
- /root/fast-gpt/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
# 刚创建的文件
|
||||||
- /root/fast-gpt/nginx/logs:/var/log/nginx
|
- /root/fastgpt/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||||
- /root/fast-gpt/nginx/ssl/docgpt.key:/ssl/docgpt.key
|
- /root/fastgpt/nginx/logs:/var/log/nginx
|
||||||
- /root/fast-gpt/nginx/ssl/docgpt.pem:/ssl/docgpt.pem
|
# https证书,没有的话不填,对应的nginx.conf也要修改
|
||||||
|
- /root/fastgpt/nginx/ssl/docgpt.key:/ssl/docgpt.key
|
||||||
|
- /root/fastgpt/nginx/ssl/docgpt.pem:/ssl/docgpt.pem
|
||||||
pg:
|
pg:
|
||||||
image: ankane/pgvector
|
image: ankane/pgvector
|
||||||
container_name: pg
|
container_name: pg
|
||||||
@@ -216,12 +232,14 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- 8100:5432
|
- 8100:5432
|
||||||
environment:
|
environment:
|
||||||
|
# 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
|
||||||
- POSTGRES_USER=fastgpt
|
- POSTGRES_USER=fastgpt
|
||||||
- POSTGRES_PASSWORD=1234
|
- POSTGRES_PASSWORD=1234
|
||||||
- POSTGRES_DB=fastgpt
|
- POSTGRES_DB=fastgpt
|
||||||
volumes:
|
volumes:
|
||||||
- /root/fast-gpt/pg/data:/var/lib/postgresql/data
|
# 刚创建的文件
|
||||||
- /root/fast-gpt/pg/init.sql:/docker-entrypoint-initdb.d/init.sh
|
- /root/fastgpt/pg/init.sql:/docker-entrypoint-initdb.d/init.sh
|
||||||
|
- /root/fastgpt/pg/data:/var/lib/postgresql/data
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
mongodb:
|
mongodb:
|
||||||
image: mongo:6.0.4
|
image: mongo:6.0.4
|
||||||
@@ -230,11 +248,12 @@ services:
|
|||||||
ports:
|
ports:
|
||||||
- 27017:27017
|
- 27017:27017
|
||||||
environment:
|
environment:
|
||||||
|
# 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
|
||||||
- MONGO_INITDB_ROOT_USERNAME=username
|
- MONGO_INITDB_ROOT_USERNAME=username
|
||||||
- MONGO_INITDB_ROOT_PASSWORD=password
|
- MONGO_INITDB_ROOT_PASSWORD=password
|
||||||
volumes:
|
volumes:
|
||||||
- /root/fast-gpt/mongo/data:/data/db
|
- /root/fastgpt/mongo/data:/data/db
|
||||||
- /root/fast-gpt/mongo/logs:/var/log/mongodb
|
- /root/fastgpt/mongo/logs:/var/log/mongodb
|
||||||
- /etc/localtime:/etc/localtime:ro
|
- /etc/localtime:/etc/localtime:ro
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@@ -1 +1,2 @@
|
|||||||
|
cp ./docker-compose /usr/local/bin/docker-compose
|
||||||
sudo chmod +x /usr/local/bin/docker-compose
|
sudo chmod +x /usr/local/bin/docker-compose
|
@@ -563,6 +563,7 @@ const Chat = ({
|
|||||||
<MenuItem onClick={() => router.replace(`/chat?modelId=${modelId}`)}>
|
<MenuItem onClick={() => router.replace(`/chat?modelId=${modelId}`)}>
|
||||||
新对话
|
新对话
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
{chatId && (
|
||||||
<MenuItem
|
<MenuItem
|
||||||
onClick={async () => {
|
onClick={async () => {
|
||||||
try {
|
try {
|
||||||
@@ -577,6 +578,7 @@ const Chat = ({
|
|||||||
>
|
>
|
||||||
删除记录
|
删除记录
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
)}
|
||||||
<MenuItem onClick={() => onclickExportChat('html')}>导出HTML格式</MenuItem>
|
<MenuItem onClick={() => onclickExportChat('html')}>导出HTML格式</MenuItem>
|
||||||
<MenuItem onClick={() => onclickExportChat('pdf')}>导出PDF格式</MenuItem>
|
<MenuItem onClick={() => onclickExportChat('pdf')}>导出PDF格式</MenuItem>
|
||||||
<MenuItem onClick={() => onclickExportChat('md')}>导出Markdown格式</MenuItem>
|
<MenuItem onClick={() => onclickExportChat('md')}>导出Markdown格式</MenuItem>
|
||||||
|
Reference in New Issue
Block a user