From 3ef6d3fe63cba267d877d444506efcfea4d9f934 Mon Sep 17 00:00:00 2001
From: archer <545436317@qq.com>
Date: Mon, 8 May 2023 10:25:17 +0800
Subject: [PATCH] deploy docs
---
README.md | 89 +++++++++++++++++++++--------------
deploy/docker-compose/init.sh | 1 +
src/pages/chat/index.tsx | 30 ++++++------
3 files changed, 71 insertions(+), 49 deletions(-)
diff --git a/README.md b/README.md
index 6b043b01d..9950e34b4 100644
--- a/README.md
+++ b/README.md
@@ -8,6 +8,8 @@ Fast GPT 允许你使用自己的 openai API KEY 来快速的调用 openai 接
## 开发
+**第一次开发,请先看下方部署,需要部署数据库.开发的环境变量和部署的环境变量几乎相同,仅 IP 地址不一样.所以部署好后,直接把部署文件的环境变量复制过来,改下 Ip 就 OK 了。**
+
**配置环境变量**
复制.env.template 文件,生成一个.env.local 环境变量文件夹,修改.env.local 内容,参考下方:
@@ -18,31 +20,24 @@ AXIOS_PROXY_PORT=7890
# 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
-# 发送邮箱验证码配置。参考 nodeMail 获取参数,自行百度。
MY_MAIL=xxx@qq.com
MAILE_CODE=xxx
-# 阿里短信服务(邮箱和短信至少二选一)
aliAccessKeyId=xxx
aliAccessKeySecret=xxx
aliSignName=xxx
aliTemplateCode=SMS_xxx
-# token(随便填,作为登录凭证)
TOKEN_KEY=xxx
-# openai key
OPENAIKEY=sk-xxx
-# mongo连接地址
-MONGODB_URI=mongodb://username:password@0.0.0.0:27017/test?authSource=admin
-# mongo数据库名称
+# 和mongo镜像的username,password对应
+MONGODB_URI=mongodb://username:password@服务器IP:27017/test?authSource=admin
MONGODB_NAME=xxx
-# pg 数据库相关内容,和 docker-compose pg 部分对上
-PG_HOST=0.0.0.0
-PG_PORT=8102
-PG_USER=fastgpt
-PG_PASSWORD=1234
-PG_DB_NAME=fastgpt
+PG_HOST=服务器IP
+PG_PORT=8100
+PG_USER=fastgpt # POSTGRES_USER
+PG_PASSWORD=1234 # POSTGRES_PASSWORD
+PG_DB_NAME=fastgpt # POSTGRES_DB
```
**运行**
@@ -55,13 +50,21 @@ pnpm dev
### 代理环境(国外服务器可忽略)
+选择一个即可。
+
1. [clash 方案](./docs/proxy/clash.md) - 仅需一台服务器(需要有 clash)
2. [nginx 方案](./docs/proxy/nginx.md) - 需要一台国外服务器
3. [cloudflare 方案](./docs/proxy/cloudflare.md) - 需要有域名(每日免费 10w 次代理请求)
### 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-compose -v
+# 如果docker-compose运行不了,可以把 deploy/docker-compose 文件复制到服务器,然后在 docker-compose 文件夹里执行 sh init.sh。会把docker-compose文件复制到对应目录。
```
#### 2. 创建 3 个初始化文件
手动创建或者直接把 deploy 里内容复制过去
-**/root/fast-gpt/pg/init.sql**
+**/root/fastgpt/pg/init.sql PG 数据库初始化**
```sql
set -e
@@ -105,7 +109,7 @@ CREATE INDEX modelData_modelId_index ON modelData USING HASH (model_id);
EOSQL
```
-**/root/fast-gpt/nginx/nginx.conf**
+**/root/fastgpt/nginx/nginx.conf Nginx 配置**
```conf
user nginx;
@@ -147,6 +151,7 @@ http {
server {
listen 443 ssl;
+ # 改成自己的域名和证书
server_name docgpt.ahapocket.cn;
ssl_certificate /ssl/docgpt.pem;
ssl_certificate_key /ssl/docgpt.key;
@@ -167,7 +172,7 @@ http {
}
```
-**/root/fast-gpt/docker-compose.yml**
+**/root/fastgpt/docker-compose.yml 核心部署文件**
```yml
version: '3.3'
@@ -178,26 +183,35 @@ services:
restart: always
container_name: fast-gpt
environment:
- # - AXIOS_PROXY_HOST=127.0.0.1
- # - AXIOS_PROXY_PORT=7890
- # - OPENAI_BASE_URL=https://api.openai.com/v1
- # - OPENAI_BASE_URL_AUTH=可选的安全凭证
+ # proxy(可选)
+ - AXIOS_PROXY_HOST=127.0.0.1
+ - AXIOS_PROXY_PORT=7890
+ # 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
- MAILE_CODE=xxxx
+ # 阿里短信服务(邮箱和短信至少二选一)
- aliAccessKeyId=xxxx
- aliAccessKeySecret=xxxx
- aliSignName=xxxxx
- aliTemplateCode=SMS_xxxx
+ # token加密凭证(随便填,作为登录凭证)
- TOKEN_KEY=xxxx
- - queueTask=1
- - parentUrl=https://hostname/api/openapi/startEvents
+ # 和下方mongo镜像的username,password对应
- MONGODB_URI=mongodb://username:passsword@0.0.0.0:27017/?authSource=admin
- MONGODB_NAME=xxx
- PG_HOST=0.0.0.0
- PG_PORT=8100
- - PG_USER=fastgpt
- - PG_PASSWORD=1234
- - PG_DB_NAME=fastgpt
+ # 和下方PG镜像对应.
+ - PG_USER=fastgpt # POSTGRES_USER
+ - PG_PASSWORD=1234 # POSTGRES_PASSWORD
+ - PG_DB_NAME=fastgpt # POSTGRES_DB
+ # openai api key
- OPENAIKEY=sk-xxxxx
nginx:
image: nginx:alpine3.17
@@ -205,10 +219,12 @@ services:
restart: always
network_mode: host
volumes:
- - /root/fast-gpt/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- - /root/fast-gpt/nginx/logs:/var/log/nginx
- - /root/fast-gpt/nginx/ssl/docgpt.key:/ssl/docgpt.key
- - /root/fast-gpt/nginx/ssl/docgpt.pem:/ssl/docgpt.pem
+ # 刚创建的文件
+ - /root/fastgpt/nginx/nginx.conf:/etc/nginx/nginx.conf:ro
+ - /root/fastgpt/nginx/logs:/var/log/nginx
+ # https证书,没有的话不填,对应的nginx.conf也要修改
+ - /root/fastgpt/nginx/ssl/docgpt.key:/ssl/docgpt.key
+ - /root/fastgpt/nginx/ssl/docgpt.pem:/ssl/docgpt.pem
pg:
image: ankane/pgvector
container_name: pg
@@ -216,12 +232,14 @@ services:
ports:
- 8100:5432
environment:
+ # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
- POSTGRES_USER=fastgpt
- POSTGRES_PASSWORD=1234
- POSTGRES_DB=fastgpt
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
mongodb:
image: mongo:6.0.4
@@ -230,11 +248,12 @@ services:
ports:
- 27017:27017
environment:
+ # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
- MONGO_INITDB_ROOT_USERNAME=username
- MONGO_INITDB_ROOT_PASSWORD=password
volumes:
- - /root/fast-gpt/mongo/data:/data/db
- - /root/fast-gpt/mongo/logs:/var/log/mongodb
+ - /root/fastgpt/mongo/data:/data/db
+ - /root/fastgpt/mongo/logs:/var/log/mongodb
- /etc/localtime:/etc/localtime:ro
```
diff --git a/deploy/docker-compose/init.sh b/deploy/docker-compose/init.sh
index 6894fe388..d3111257b 100644
--- a/deploy/docker-compose/init.sh
+++ b/deploy/docker-compose/init.sh
@@ -1 +1,2 @@
+cp ./docker-compose /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
\ No newline at end of file
diff --git a/src/pages/chat/index.tsx b/src/pages/chat/index.tsx
index 6790116d8..203d9f5bf 100644
--- a/src/pages/chat/index.tsx
+++ b/src/pages/chat/index.tsx
@@ -563,20 +563,22 @@ const Chat = ({
-
+ {chatId && (
+
+ )}