This commit is contained in:
archer
2023-07-26 22:07:00 +08:00
parent 8be1834cfb
commit cd2fd77df1
138 changed files with 12793 additions and 6 deletions

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,22 @@
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: [香港V02×1.5,ABC, 印度01, 台湾03, 新加坡02, 新加坡03, 日本01, 日本02, 新加坡01, 美国01, 美国02, 台湾01, 台湾02], url: 'https://api.openai.com', interval: 3600}
rules:
- 'DOMAIN-SUFFIX,google.com,♻️ 自动选择'
- 'DOMAIN-SUFFIX,ai.fastgpt.run,♻️ 自动选择'
- 'DOMAIN-SUFFIX,openai.com,♻️ 自动选择'
- 'DOMAIN-SUFFIX,api.openai.com,♻️ 自动选择'
- 'MATCH,DIRECT'

View File

@@ -0,0 +1,18 @@
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
OLD_PROCESS=$(pgrep clash)
if [ ! -z "$OLD_PROCESS" ]; then
echo "Killing old process: $OLD_PROCESS"
kill $OLD_PROCESS
fi
sleep 2
cd /root/fastgpt/clash/fast
rm -f ./nohup.out || true
rm -f ./cache.db || true
nohup ./clash-linux-amd64-v3 -d ./ &
echo "Restart clash fast"

View File

@@ -0,0 +1,10 @@
export ALL_PROXY=''
export http_proxy=''
export https_proxy=''
export HTTP_PROXY=''
export HTTPS_PROXY=''
OLD_PROCESS=$(pgrep clash)
if [ ! -z "$OLD_PROCESS" ]; then
echo "Killing old process: $OLD_PROCESS"
kill $OLD_PROCESS
fi

View File

@@ -0,0 +1,256 @@
# 非 host 版本, 不使用本机代理
version: '3.3'
services:
pg:
# image: ankane/pgvector:v0.4.2 # dockerhub
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.4.2 # 阿里云
container_name: pg
restart: always
ports: # 生产环境建议不要暴露
- 8100:5432
networks:
- fastgpt
environment:
# 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
- POSTGRES_USER=fastgpt
- POSTGRES_PASSWORD=1234
- POSTGRES_DB=fastgpt
volumes:
# 刚创建的文件
- ./pg/init.sql:/docker-entrypoint-initdb.d/init.sh
- ./pg/data:/var/lib/postgresql/data
mongo:
# image: mongo:5.0.18
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
container_name: mongo
restart: always
ports: # 生产环境建议不要暴露
- 27017:27017
networks:
- fastgpt
environment:
# 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
- MONGO_INITDB_ROOT_USERNAME=username
- MONGO_INITDB_ROOT_PASSWORD=password
volumes:
- ./mongo/data:/data/db
- ./mongo/logs:/var/log/mongodb
fastgpt:
container_name: fastgpt
# image: c121914yu/fast-gpt:latest # docker hub
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:latest # 阿里云
# network_mode: host #
ports:
- 3000:3000
networks:
- fastgpt
depends_on:
- mongo
- pg
restart: always
environment: # 可选的变量,不需要的话需要去掉
- PORT=3000 # 运行的端口地址,如果不是 3000需要修改成实际地址。
- DB_MAX_LINK=5 # database max link
# proxy可选
- AXIOS_PROXY_HOST=127.0.0.1
- AXIOS_PROXY_PORT=7890
# 发送邮箱验证码配置。用的是QQ邮箱。参考 nodeMail 获取MAILE_CODE自行百度。
- MY_MAIL=54545@qq.com
- MAILE_CODE=1234
# 阿里短信服务(邮箱和短信至少二选一)
- aliAccessKeyId=xxxx
- aliAccessKeySecret=xxxx
- aliSignName=xxxxx
- aliTemplateCode=SMS_xxxx
# google V3 安全校验(可选)
- CLIENT_GOOGLE_VER_TOKEN=xxx
- SERVICE_GOOGLE_VER_TOKEN=xx
# token加密凭证随便填作为登录凭证
- TOKEN_KEY=any
# root key, 最高权限,可以内部接口互相调用
- ROOT_KEY=root_key
# 和上方mongo镜像的username,password对应
- MONGODB_URI=mongodb://username:password@mongo:27017/?authSource=admin
- MONGODB_NAME=fastgpt
- PG_HOST=pg
- PG_PORT=5432
# 和上方PG镜像对应.
- PG_USER=fastgpt
- PG_PASSWORD=1234
- PG_DB_NAME=fastgpt
# oneapi 配置 推荐使用 one-api 管理key
- ONEAPI_URL=https://xxxxx.cloud.sealos.io/v1
- ONEAPI_KEY=sk-xxxxxx
# openai 相关配置:使用了 oneapi 后,下面只需要填下 OPENAI_BASE_URL (国外可全忽略)
- OPENAIKEY=sk-xxxxx
- OPENAI_BASE_URL=https://api.openai.com/v1
- OPENAI_BASE_URL_AUTH=可选的安全凭证,会放到 header.auth 里
fastgpt-admin:
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-admin:latest
container_name: fastgpt-admin
restart: always
ports:
- 3001:3001
networks:
- fastgpt
depends_on:
- mongo
- fastgpt
environment:
- MONGODB_URI=mongodb://username:password@mongo:27017/?authSource=admin
- MONGODB_NAME=fastgpt
- ADMIN_USER=username
- ADMIN_PASS=password
- ADMIN_SECRET=any
- PARENT_URL=http://fastgpt:3000
- PARENT_ROOT_KEY=root_key
keyadmin:
container_name: keyadmin
image: justsong/one-api
restart: always
ports:
- 3002:3000
environment:
- TZ=Asia/Shanghai
volumes:
- /keyadmin:/data
nginx: # 宝塔不需要额外装 nginx
image: registry.cn-hangzhou.aliyuncs.com/fastgpt/nginx:alpine3.17
# image: nginx:alpine3.17
container_name: nginx
restart: always
network_mode: host
volumes:
# 刚创建的文件
- ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
- ./nginx/logs:/var/log/nginx
# https证书没有的话不填对应的nginx.conf也要修改
- ./nginx/ssl/docgpt.key:/ssl/docgpt.key
- ./nginx/ssl/docgpt.pem:/ssl/docgpt.pem
networks:
fastgpt:
# host 版本, 不推荐,推荐直接用上面的,用个 BASE_URL 中转
# version: '3.3'
# services:
# pg:
# # image: ankane/pgvector:v0.4.2 # dockerhub
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.4.2 # 阿里云
# container_name: pg
# restart: always
# ports: # 生产环境建议不要暴露
# - 8100:5432
# networks:
# - fastgpt
# environment:
# # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
# - POSTGRES_USER=fastgpt
# - POSTGRES_PASSWORD=1234
# - POSTGRES_DB=fastgpt
# volumes:
# # 刚创建的文件
# - ./pg/init.sql:/docker-entrypoint-initdb.d/init.sh
# - ./pg/data:/var/lib/postgresql/data
# mongo:
# # image: mongo:5.0.18
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/mongo:5.0.18 # 阿里云
# container_name: mongo
# restart: always
# ports: # 生产环境建议不要暴露
# - 27017:27017
# networks:
# - fastgpt
# environment:
# # 这里的配置只有首次运行生效。修改后,重启镜像是不会生效的。需要把持久化数据删除再重启,才有效果
# - MONGO_INITDB_ROOT_USERNAME=username
# - MONGO_INITDB_ROOT_PASSWORD=password
# volumes:
# - ./mongo/data:/data/db
# - ./mongo/logs:/var/log/mongodb
# fastgpt:
# # image: ghcr.io/c121914yu/fastgpt:latest # github
# # image: c121914yu/fast-gpt:latest # docker hub
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt:latest # 阿里云
# network_mode: host
# restart: always
# container_name: fastgpt
# environment: # 可选的变量,不需要的话需要去掉
# - PORT=3000 # 运行的端口地址,如果不是 3000需要修改成实际地址。
# - DB_MAX_LINK=15 # database max link
# # proxy可选
# - AXIOS_PROXY_HOST=127.0.0.1
# - AXIOS_PROXY_PORT=7890
# # 发送邮箱验证码配置。用的是QQ邮箱。参考 nodeMail 获取MAILE_CODE自行百度。
# - MY_MAIL=54545@qq.com
# - MAILE_CODE=1234
# # 阿里短信服务(邮箱和短信至少二选一)
# - aliAccessKeyId=xxxx
# - aliAccessKeySecret=xxxx
# - aliSignName=xxxxx
# - aliTemplateCode=SMS_xxxx
# # google V3 安全校验(可选)
# - CLIENT_GOOGLE_VER_TOKEN=xxx
# - SERVICE_GOOGLE_VER_TOKEN=xx
# # token加密凭证随便填作为登录凭证
# - TOKEN_KEY=xxxx
# # root key, 最高权限,可以内部接口互相调用
# - ROOT_KEY=xxx
# # 和上方mongo镜像的username,password对应
# - MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin
# - MONGODB_NAME=fastgpt
# - PG_HOST=0.0.0.0
# - PG_PORT=8100
# # 和上方PG镜像对应.
# - PG_USER=fastgpt
# - PG_PASSWORD=1234
# - PG_DB_NAME=fastgpt
# # oneapi 配置 推荐使用 one-api 管理key
# - ONEAPI_URL=https://xxxxx.cloud.sealos.io/v1
# - ONEAPI_KEY=sk-xxxxx
# # openai 相关配置:使用了 oneapi 后,下面只需要填下 OPENAI_BASE_URL (国外可全忽略)
# - OPENAIKEY=sk-xxxxx
# - OPENAI_BASE_URL=https://api.openai.com/v1
# - OPENAI_BASE_URL_AUTH=可选的安全凭证,会放到 header.auth 里
# fastgpt-admin:
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/fastgpt-admin:latest
# container_name: fastgpt-admin
# restart: always
# ports:
# - 3001:3001
# networks:
# - fastgpt
# depends_on:
# - mongo
# - fastgpt
# environment:
# - MONGODB_URI=mongodb://username:password@mongo:27017/?authSource=admin
# - MONGODB_NAME=fastgpt
# - ADMIN_USER=username
# - ADMIN_PASS=password
# - ADMIN_SECRET=any
# - PARENT_URL=http://fastgpt:3000
# - PARENT_ROOT_KEY=root_key
# key-admin:
# container_name: key-admin
# image: justsong/one-api
# restart: always
# ports:
# - 3002:3000
# environment:
# - TZ=Asia/Shanghai
# volumes:
# - /home/ubuntu/data/one-api:/data
# nginx: # 宝塔不需要额外装 nginx
# image: registry.cn-hangzhou.aliyuncs.com/fastgpt/nginx:alpine3.17
# # image: nginx:alpine3.17
# container_name: nginx
# restart: always
# network_mode: host
# volumes:
# # 刚创建的文件
# - ./nginx/nginx.conf:/etc/nginx/nginx.conf:ro
# - ./nginx/logs:/var/log/nginx
# # https证书没有的话不填对应的nginx.conf也要修改
# - ./nginx/ssl/docgpt.key:/ssl/docgpt.key
# - ./nginx/ssl/docgpt.pem:/ssl/docgpt.pem
# networks:
# fastgpt:

Binary file not shown.

View File

@@ -0,0 +1,2 @@
cp ./docker-compose /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

View File

@@ -0,0 +1,69 @@
user nginx;
worker_processes auto;
worker_rlimit_nofile 51200;
events {
worker_connections 1024;
}
http {
resolver 8.8.8.8;
proxy_ssl_server_name on;
access_log off;
server_names_hash_bucket_size 512;
client_header_buffer_size 64k;
large_client_header_buffers 4 64k;
client_max_body_size 50M;
proxy_connect_timeout 240s;
proxy_read_timeout 240s;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 8k;
gzip_http_version 1.1;
gzip_comp_level 6;
gzip_vary on;
gzip_types text/plain application/x-javascript text/css application/javascript application/json application/xml;
gzip_disable "MSIE [1-6]\.";
open_file_cache max=1000 inactive=1d;
open_file_cache_valid 30s;
open_file_cache_min_uses 8;
open_file_cache_errors off;
server {
listen 443 ssl;
server_name docgpt.ahapocket.cn;
ssl_certificate /ssl/docgpt.pem;
ssl_certificate_key /ssl/docgpt.key;
ssl_session_timeout 5m;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
server {
listen 80;
server_name docgpt.ahapocket.cn;
rewrite ^(.*) https://$server_name$1 permanent;
}
server {
listen 3000;
server_name 120.0.0.0;
location / {
proxy_pass http://localhost:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}

View File

@@ -0,0 +1,21 @@
set -e
psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" --dbname "$POSTGRES_DB" <<-EOSQL
CREATE EXTENSION IF NOT EXISTS vector;
-- init table
CREATE TABLE IF NOT EXISTS modeldata (
id BIGSERIAL PRIMARY KEY,
vector VECTOR(1536) NOT NULL,
user_id VARCHAR(50) NOT NULL,
kb_id VARCHAR(50) NOT NULL,
source VARCHAR(100),
q TEXT NOT NULL,
a TEXT NOT NULL
);
-- 索引设置,按需取
-- CREATE INDEX IF NOT EXISTS modeldata_userId_index ON modeldata USING HASH (user_id);
-- CREATE INDEX IF NOT EXISTS modeldata_kbId_index ON modeldata USING HASH (kb_id);
-- CREATE INDEX IF NOT EXISTS idx_model_data_md5_q_a_user_id_kb_id ON modeldata (md5(q), md5(a), user_id, kb_id);
-- CREATE INDEX modeldata_id_desc_idx ON modeldata (id DESC);
-- vector 索引,可以参考 [pg vector](https://github.com/pgvector/pgvector) 去配置,根据数据量去配置
EOSQL

View File

@@ -0,0 +1,19 @@
#!/bin/bash
docker-compose pull
docker-compose up -d
echo "Docker Compose 重新拉取镜像完成!"
# 删除本地旧镜像
images=$(docker images --format "{{.ID}} {{.Repository}}" | grep fastgpt)
# 将镜像 ID 和名称放入数组中
IFS=$'\n' read -rd '' -a image_array <<<"$images"
# 遍历数组并删除所有旧的镜像
for ((i=1; i<${#image_array[@]}; i++))
do
image=${image_array[$i]}
image_id=${image%% *}
docker rmi $image_id
done