Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
赵月辉
/
fastgpt-migrated
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Unverified
Commit
71f58b79
authored
Apr 26, 2023
by
archer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
docs
parent
4b1cc687
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
149 additions
and
47 deletions
+149
-47
README.md
+33
-47
docs/proxy/clash.md
+69
-0
docs/proxy/cloudflare.md
+46
-0
docs/proxy/nginx.md
+1
-0
No files found.
README.md
View file @
71f58b79
...
...
@@ -6,8 +6,7 @@ Fast GPT 允许你使用自己的 openai API KEY 来快速的调用 openai 接

## 开发
复制 .env.template 成 .env.local ,填写核心参数。可选内容不需要可留空或去掉。
**配置环境变量**
```
bash
# proxy(可选)
AXIOS_PROXY_HOST
=
127.0.0.1
...
...
@@ -15,24 +14,25 @@ AXIOS_PROXY_PORT=7890
# openai 中转连接(可选)
OPENAI_BASE_URL
=
https://api.openai.com/v1
OPENAI_BASE_URL_AUTH
=
可选的安全凭证
# 是否开启队列任务。 1-开启,0-关闭(请求
parentUrl
去执行任务,单机时直接填1)
# 是否开启队列任务。 1-开启,0-关闭(请求
parentUrl
去执行任务,单机时直接填1)
queueTask
=
1
parentUrl
=
https://hostname/api/openapi/startEvents
#
email,参考 nodeMail 获取参数
#
发送邮箱验证码配置。参考 nodeMail 获取参数,自行百度。
MY_MAIL
=
xxx@qq.com
MAILE_CODE
=
xxx
# 阿里短信服务
# 阿里短信服务
(邮箱和短信至少二选一)
aliAccessKeyId
=
xxx
aliAccessKeySecret
=
xxx
aliSignName
=
xxx
aliTemplateCode
=
SMS_xxx
# token(随便填,登录凭证)
# token(随便填,
作为
登录凭证)
TOKEN_KEY
=
xxx
# openai key
OPENAIKEY
=
sk-xxx
# mongo连接地址
MONGODB_URI
=
mongodb://username:password@0.0.0.0:27017/test?authSource
=
admin
MONGODB_NAME
=
xxx
# mongo数据库名称
# mongo数据库名称
MONGODB_NAME
=
xxx
# pg 数据库相关内容,和 docker-compose 对上
PG_HOST
=
0.0.0.0
PG_PORT
=
8102
...
...
@@ -40,13 +40,20 @@ PG_USER=xxx
PG_PASSWORD
=
xxx
PG_DB_NAME
=
xxx
```
```
bash
**运行**
```
pnpm dev
```
## docker 部署
## 部署
### 代理环境(国外服务器可忽略)
1.
[
clash 方案
](
./docs/proxy/clash.md
)
- 仅需一台服务器(需要有 clash)
2.
[
nginx 方案
](
./docs/proxy/nginx.md
)
- 需要一台国外服务器
3.
[
cloudflare 方案
](
./docs/proxy/cloudflare.md
)
- 需要有域名(每日免费 10w 次代理请求)
### 安装 docker 和 docker-compose
### docker 部署
#### 1. 安装 docker 和 docker-compose
这个不同系统略有区别,百度安装下。验证安装成功后进行下一步。下面给出一个例子:
```
bash
# 安装docker
...
...
@@ -60,39 +67,10 @@ docker -v
docker-compose
-v
```
### 安装 clash 代理(选)
```
bash
# 下载包
curl https://glados.rocks/tools/clash-linux.zip
-o
clash.zip
# 解压
unzip clash.zip
# 下载终端配置⽂件(改成自己配置文件路径)
curl https://update.glados-config.com/clash/98980/8f30944/70870/glados-terminal.yaml
>
config.yaml
# 赋予运行权限
chmod +x ./clash-linux-amd64-v1.10.0
# 记得配置端口变量:
export
ALL_PROXY
=
socks5://127.0.0.1:7891
export
http_proxy
=
http://127.0.0.1:7890
export
https_proxy
=
http://127.0.0.1:7890
export
HTTP_PROXY
=
http://127.0.0.1:7890
export
HTTPS_PROXY
=
http://127.0.0.1:7890
# 运行脚本: 删除clash - 到 clash 目录 - 删除缓存 - 执行运行. 会生成一个 nohup.out 文件,可以看到 clash 的 logs
OLD_PROCESS
=
$(
pgrep clash
)
if
[
!
-z
"
$OLD_PROCESS
"
]
;
then
echo
"Killing old process:
$OLD_PROCESS
"
kill
$OLD_PROCESS
fi
sleep 2
cd
**
/clash
rm
-f
./nohup.out
||
true
rm
-f
./cache.db
||
true
nohup ./clash-linux-amd64-v1.10.0
-d
./ &
echo
"Restart clash"
```
#### 2. 创建3个初始化文件
手动创建或者直接把 deploy 里内容复制过去
### 准备初始化文件,需要自己创建
可以直接把 deploy 里内容复制过去
**/root/fast-gpt/pg/init.sql**
```
sql
set
-
e
...
...
@@ -115,6 +93,7 @@ CREATE INDEX modelData_userId_index ON modelData USING HASH (user_id);
CREATE
INDEX
modelData_modelId_index
ON
modelData
USING
HASH
(
model_id
);
EOSQL
```
**/root/fast-gpt/nginx/nginx.conf**
```
conf
user
nginx
;
...
...
@@ -167,6 +146,7 @@ http {
}
}
```
**/root/fast-gpt/docker-compose.yml**
```
yml
version
:
"
3.3"
...
...
@@ -236,7 +216,9 @@ services:
-
/root/fast-gpt/mongo/logs:/var/log/mongodb
-
/etc/localtime:/etc/localtime:ro
```
### 辅助运行脚本
#### 3. 运行 docker-compose
下面是一个辅助脚本,也可以直接 docker-compose up -d
**run.sh 运行文件**
```
bash
#!/bin/bash
...
...
@@ -260,10 +242,15 @@ do
done
```
## Mac 可能的问题
> 因为教程有部分镜像不兼容arm64,所以写个文档指导新手如何快速在mac上面搭建fast-gpt[如何在mac上面部署fastgpt](./docs/mac.md)
## Git Action 配置
## 其他优化点
### Git Action 自动打包镜像
.github里拥有一个 git 提交到 main 分支时自动打包 amd64 和 arm64 镜像的 actions。你仅需要提前在 git 配置好 session。
1.
创建账号 session: 头像 -> settings -> 最底部 Developer settings -> Personal access tokens -> tokens(classic) -> 创建新 session,把一些看起来需要的权限勾上。
2.
添加 session 到仓库: 仓库 -> settings -> Secrets and variables -> Actions -> 创建secret
3.
填写 secret: Name-GH_PAT, Secret-第一步的tokens
\ No newline at end of file
3.
填写 secret: Name-GH_PAT, Secret-第一步的tokens
## 其他问题
### Mac 可能的问题
> 因为教程有部分镜像不兼容arm64,所以写个文档指导新手如何快速在mac上面搭建fast-gpt[如何在mac上面部署fastgpt](./docs/mac.md)
docs/proxy/clash.md
0 → 100644
View file @
71f58b79
# 安装 clash
clash 会在本机启动代理。对应的,你需要配置项目的两个环境变量:
```
AXIOS_PROXY_HOST=127.0.0.1
AXIOS_PROXY_PORT=7890
```
需要注的是,在你的 config.yaml 文件中,最好仅指定 api.openai.com 走代理,其他请求都直连。
**安装clash**
```
bash
# 下载包
curl https://glados.rocks/tools/clash-linux.zip
-o
clash.zip
# 解压
unzip clash.zip
# 下载终端配置⽂件(改成自己配置文件路径)
curl https://update.glados-config.com/clash/98980/8f30944/70870/glados-terminal.yaml
>
config.yaml
# 赋予运行权限
chmod +x ./clash-linux-amd64-v1.10.0
```
**runClash.sh**
```
sh
# 记得配置端口变量:
export
ALL_PROXY
=
socks5://127.0.0.1:7891
export
http_proxy
=
http://127.0.0.1:7890
export
https_proxy
=
http://127.0.0.1:7890
export
HTTP_PROXY
=
http://127.0.0.1:7890
export
HTTPS_PROXY
=
http://127.0.0.1:7890
# 运行脚本: 删除clash - 到 clash 目录 - 删除缓存 - 执行运行. 会生成一个 nohup.out 文件,可以看到 clash 的 logs
OLD_PROCESS
=
$(
pgrep clash
)
if
[
!
-z
"
$OLD_PROCESS
"
]
;
then
echo
"Killing old process:
$OLD_PROCESS
"
kill
$OLD_PROCESS
fi
sleep 2
cd
**
/clash
rm
-f
./nohup.out
||
true
rm
-f
./cache.db
||
true
nohup ./clash-linux-amd64-v1.10.0
-d
./ &
echo
"Restart clash"
```
**config.yaml配置例子**
```
yaml
mixed-port
:
7890
allow-lan
:
false
bind-address
:
'
*'
mode
:
rule
log-level
:
warning
dns
:
enable
:
true
ipv6
:
false
nameserver
:
-
8.8.8.8
-
8.8.4.4
cache-size
:
400
proxies
:
-
proxy-groups
:
-
{
name
:
'
♻️
自动选择'
,
type
:
url-test
,
proxies
:
[
香港V01×1.5
],
url
:
'
https://api.openai.com'
,
interval
:
3600
}
rules
:
-
'
DOMAIN-SUFFIX,api.openai.com,♻️
自动选择'
-
'
MATCH,DIRECT'
```
\ No newline at end of file
docs/proxy/cloudflare.md
0 → 100644
View file @
71f58b79
# cloudflare 代理配置
[
来自 "不做了睡觉" 教程
](
https://gravel-twister-d32.notion.site/FastGPT-API-ba7bb261d5fd4fd9bbb2f0607dacdc9e
)
**workers 配置文件**
```
js
const
TELEGRAPH_URL
=
'https://api.openai.com'
;
addEventListener
(
'fetch'
,
(
event
)
=>
{
event
.
respondWith
(
handleRequest
(
event
.
request
));
});
async
function
handleRequest
(
request
)
{
// 安全校验
if
(
request
.
headers
.
get
(
'auth'
)
!==
'auth_code'
)
{
return
new
Response
(
'UnAuthorization'
,
{
status
:
403
});
}
const
url
=
new
URL
(
request
.
url
);
url
.
host
=
TELEGRAPH_URL
.
replace
(
/^https
?
:
\/\/
/
,
''
);
const
modifiedRequest
=
new
Request
(
url
.
toString
(),
{
headers
:
request
.
headers
,
method
:
request
.
method
,
body
:
request
.
body
,
redirect
:
'follow'
});
const
response
=
await
fetch
(
modifiedRequest
);
const
modifiedResponse
=
new
Response
(
response
.
body
,
response
);
// 添加允许跨域访问的响应头
modifiedResponse
.
headers
.
set
(
'Access-Control-Allow-Origin'
,
'*'
);
return
modifiedResponse
;
}
```
**对应的环境变量**
务必别忘了填 v1
```
OPENAI_BASE_URL=https://xxxxxx/v1
OPENAI_BASE_URL_AUTH=auth_code
```
docs/
nginxProxy
.md
→
docs/
proxy/nginx
.md
View file @
71f58b79
# nginx 反向代理 openai 接口
如果你有国外的服务器,可以通过配置 nginx 反向代理,转发 openai 相关的请求,从而让国内的服务器可以通过访问该 nginx 去访问 openai 接口。
```
conf
user
nginx
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment