mirror of
https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web.git
synced 2025-10-04 17:16:39 +08:00
Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
commit
ec143c355e
50
.github/workflows/dockerToHub-dev.yml
vendored
50
.github/workflows/dockerToHub-dev.yml
vendored
@ -1,4 +1,4 @@
|
||||
name: DEV DEPLOY TO TX
|
||||
name: DEV DEPLOY
|
||||
on:
|
||||
workflow_dispatch:
|
||||
# push:
|
||||
@ -16,7 +16,7 @@ jobs:
|
||||
with:
|
||||
ref: 'dev'
|
||||
clean: false
|
||||
github-server-url: 'https://gh.siji.ci'
|
||||
#github-server-url: 'https://gh.siji.ci'
|
||||
- name: build and deploy to Docker Hub
|
||||
run: |
|
||||
echo ${{ secrets.ALY_DOCKER_PASSWORD }} | docker login registry.cn-hangzhou.aliyuncs.com -u ${{ secrets.ALY_DOCKER_USERNAME }} --password-stdin
|
||||
@ -31,7 +31,7 @@ jobs:
|
||||
yes | docker system prune --filter "until=168h"
|
||||
deploy:
|
||||
name: 部署到dev服务器
|
||||
runs-on: self
|
||||
runs-on: ubuntu-latest
|
||||
needs: build
|
||||
steps:
|
||||
- name: Check out the repo
|
||||
@ -44,22 +44,23 @@ jobs:
|
||||
uses: webfactory/ssh-agent@v0.9.0
|
||||
with:
|
||||
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||
- name: Sync repository to tx
|
||||
- name: Sync repository to test server
|
||||
run: |
|
||||
yes | docker image prune
|
||||
ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }} root@${{ secrets.TX_SSH_IP }} 'mkdir -p /data/test/ChatGPT-Next-Web'
|
||||
rsync -az -e 'ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }}' --delete $GITHUB_WORKSPACE/ root@tx.xiaosi.cc:/data/test/ChatGPT-Next-Web
|
||||
sudo apt-get update && sudo apt-get install -y rsync
|
||||
ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }} root@${{ secrets.UIYJ_SSH_IP }} 'mkdir -p /data/test/ChatGPT-Next-Web'
|
||||
rsync -az -e 'ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }}' --delete $GITHUB_WORKSPACE/ root@${{ secrets.UIYJ_SSH_IP }}:/data/test/ChatGPT-Next-Web
|
||||
- name: deploy-to-tx
|
||||
uses: appleboy/ssh-action@master
|
||||
env:
|
||||
SERVER_WORKDIR: ${{ secrets.SERVER_WORKDIR }} #传递工作目录变量
|
||||
with:
|
||||
host: ${{ secrets.TX_SSH_IP }} #服务器地址
|
||||
host: ${{ secrets.UIYJ_SSH_IP }} #服务器地址
|
||||
username: root #用户名
|
||||
port: ${{ secrets.SSH_PORT }}
|
||||
key: ${{ secrets.SSH_PRIVATE_KEY }} #私钥 安全问题一定都以变量的方式传递!!!
|
||||
envs: SERVER_WORKDIR,ALY_DOCKER_PASSWORD,ALY_DOCKER_USERNAME,DOCKER_ENV #使用工作目录变量
|
||||
script: |
|
||||
mkdir -p /data/test/ChatGPT-Next-Web
|
||||
cd /data/test/ChatGPT-Next-Web
|
||||
echo "${{ secrets.DOCKER_ENV }}" > .env
|
||||
# 测试分支,
|
||||
@ -73,36 +74,3 @@ jobs:
|
||||
yes | docker image prune
|
||||
rm -rf /www/server/nginx/proxy_cache_dir/* || true
|
||||
rm -rf /www/server/nginx/proxy_temp_dir/* || true
|
||||
|
||||
|
||||
- name: Sync repository to xy-nm
|
||||
run: |
|
||||
yes | docker image prune
|
||||
ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }} root@${{ secrets.NM_SSH_IP }} 'mkdir -p /data/test/ChatGPT-Next-Web'
|
||||
rsync -az -e 'ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }}' --delete $GITHUB_WORKSPACE/ root@xy-nm.xiaosi.cc:/data/test/ChatGPT-Next-Web
|
||||
- name: deploy-to-xy-nm
|
||||
uses: appleboy/ssh-action@master
|
||||
env:
|
||||
SERVER_WORKDIR: ${{ secrets.SERVER_WORKDIR }} #传递工作目录变量
|
||||
with:
|
||||
host: ${{ secrets.NM_SSH_IP }} #服务器地址
|
||||
username: root #用户名
|
||||
port: ${{ secrets.SSH_PORT }}
|
||||
key: ${{ secrets.SSH_PRIVATE_KEY }} #私钥 安全问题一定都以变量的方式传递!!!
|
||||
envs: SERVER_WORKDIR,ALY_DOCKER_PASSWORD,ALY_DOCKER_USERNAME,DOCKER_ENV #使用工作目录变量
|
||||
script: |
|
||||
cd /data/test/ChatGPT-Next-Web
|
||||
echo "${{ secrets.DOCKER_ENV }}" > .env
|
||||
# 测试分支,
|
||||
echo "COMPOSE_PROJECT_NAME=test-chatgpt-web" >> .env
|
||||
sed -i 's@image: registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web@image: registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web:test@g' docker-compose.yml
|
||||
echo ${{ secrets.ALY_DOCKER_PASSWORD }} | docker login registry.cn-hangzhou.aliyuncs.com -u ${{ secrets.ALY_DOCKER_USERNAME }} --password-stdin
|
||||
sed -i 's|23000:|23001:|g' docker-compose.yml
|
||||
sed -i 's|container_name:|#container_name:|g' docker-compose.yml
|
||||
docker network ls | grep -qw chatgpt-ns || docker network create chatgpt-ns
|
||||
docker-compose pull && docker-compose up -d
|
||||
yes | docker image prune
|
||||
rm -rf /www/server/nginx/proxy_cache_dir/* || true
|
||||
rm -rf /www/server/nginx/proxy_temp_dir/* || true
|
||||
|
||||
|
||||
|
41
.github/workflows/dockerToHub.yml
vendored
41
.github/workflows/dockerToHub.yml
vendored
@ -23,7 +23,7 @@ jobs:
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
clean: false
|
||||
clean: true
|
||||
github-server-url: 'https://gh.siji.ci'
|
||||
- name: build and deploy to Docker Hub
|
||||
run: |
|
||||
@ -36,7 +36,7 @@ jobs:
|
||||
download-repo:
|
||||
name: 下载仓库
|
||||
needs: build
|
||||
runs-on: self
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v4
|
||||
@ -46,7 +46,7 @@ jobs:
|
||||
deploy-nm:
|
||||
name: 部署到内蒙服务器
|
||||
needs: download-repo
|
||||
runs-on: self
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Set up SSH key
|
||||
uses: webfactory/ssh-agent@v0.9.0
|
||||
@ -77,3 +77,38 @@ jobs:
|
||||
rm -rf /www/server/nginx/proxy_temp_dir/* || true
|
||||
sleep 2
|
||||
#tccli cdn PurgePathCache --cli-unfold-argument --Paths '${{ secrets.WEB_URL }}' --FlushType delete
|
||||
|
||||
deploy-bk-uiyj:
|
||||
name: 部署到十堰服务器
|
||||
needs: download-repo
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Set up SSH key
|
||||
uses: webfactory/ssh-agent@v0.9.0
|
||||
with:
|
||||
ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }}
|
||||
- name: Sync repository to uiyj
|
||||
run: |
|
||||
ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }} root@${{ secrets.UIYJ_SSH_IP }} 'mkdir -p /data/ChatGPT-Next-Web'
|
||||
rsync -az -e 'ssh -o StrictHostKeyChecking=no -p${{ secrets.SSH_PORT }}' --delete $GITHUB_WORKSPACE/ root@${{ secrets.UIYJ_SSH_IP }}:/data/ChatGPT-Next-Web/
|
||||
- name: deploy-to-uiyj
|
||||
uses: appleboy/ssh-action@master
|
||||
env:
|
||||
SERVER_WORKDIR: ${{ secrets.SERVER_WORKDIR }} #传递工作目录变量
|
||||
with:
|
||||
host: ${{ secrets.UIYJ_SSH_IP }} #服务器地址
|
||||
username: root #用户名
|
||||
port: ${{ secrets.SSH_PORT }}
|
||||
key: ${{ secrets.SSH_PRIVATE_KEY }} #私钥 安全问题一定都以变量的方式传递!!!
|
||||
envs: SERVER_WORKDIR,ALY_DOCKER_PASSWORD,ALY_DOCKER_USERNAME,DOCKER_ENV #使用工作目录变量
|
||||
script: |
|
||||
cd $SERVER_WORKDIR #进入到工作目录
|
||||
echo "${{ secrets.DOCKER_ENV }}" > .env
|
||||
echo ${{ secrets.ALY_DOCKER_PASSWORD }} | docker login registry.cn-hangzhou.aliyuncs.com -u ${{ secrets.ALY_DOCKER_USERNAME }} --password-stdin
|
||||
docker network ls | grep -qw chatgpt-ns || docker network create chatgpt-ns
|
||||
docker-compose pull && docker-compose up -d
|
||||
yes | docker image prune
|
||||
rm -rf /www/server/nginx/proxy_cache_dir/* || true
|
||||
rm -rf /www/server/nginx/proxy_temp_dir/* || true
|
||||
sleep 2
|
||||
#tccli cdn PurgePathCache --cli-unfold-argument --Paths '${{ secrets.WEB_URL }}' --FlushType delete
|
||||
|
@ -14,7 +14,8 @@ export function getEmojiUrl(unified: string, style: EmojiStyle) {
|
||||
// Old CDN broken, so I had to switch to this one
|
||||
// Author: https://github.com/H0llyW00dzZ
|
||||
// return `https://fastly.jsdelivr.net/npm/emoji-datasource-apple/img/${style}/64/${unified}.png`;
|
||||
return `https://cdn.bootcdn.net/ajax/libs/emoji-datasource-apple/15.1.2/img/${style}/64/${unified}.png`;
|
||||
// return `https://cdn.bootcdn.net/ajax/libs/emoji-datasource-apple/15.1.2/img/${style}/64/${unified}.png`;
|
||||
return `https://cdn.staticfile.net/emoji-datasource-apple/15.0.1/img/${style}/64/${unified}.png`;
|
||||
}
|
||||
|
||||
export function AvatarPicker(props: {
|
||||
|
@ -27,7 +27,7 @@ export function RewardPage() {
|
||||
style={{ position: "absolute", top: 0, left: 0, right: 0, bottom: 0 }}
|
||||
>
|
||||
<Image
|
||||
src="https://cos.xiaosi.cc/img/zanshang.jpeg"
|
||||
src="https://oss.xiaosi.cc/web_img/zanshang.jpeg!webp"
|
||||
alt="打赏"
|
||||
layout="fill"
|
||||
objectFit="cover" // Optional: you can use this if you want the image to cover the entire area without stretching
|
||||
|
@ -285,9 +285,9 @@ export const DEFAULT_MODELS = [
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "gemini-pro",
|
||||
name: "gemini-1.5-pro-latest",
|
||||
available: true,
|
||||
describe: "谷歌的,不要钱,但质量一般",
|
||||
describe: "谷歌的,不要钱,质量还不错",
|
||||
provider: {
|
||||
id: "google",
|
||||
providerName: "Google",
|
||||
|
@ -39,8 +39,19 @@ export default function RootLayout({
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta name="config" content={JSON.stringify(getClientConfig())} />
|
||||
<link rel="manifest" href="/site.webmanifest"></link>
|
||||
<script src="/serviceWorkerRegister.js" defer></script>
|
||||
<link
|
||||
rel="icon"
|
||||
type="image/x-icon"
|
||||
href="https://oss.xiaosi.cc/chat/public/favicon.ico"
|
||||
/>
|
||||
<link
|
||||
rel="manifest"
|
||||
href="https://oss.xiaosi.cc/chat/public/site.webmanifest"
|
||||
></link>
|
||||
<script
|
||||
src="https://oss.xiaosi.cc/chat/public/serviceWorkerRegister.js"
|
||||
defer
|
||||
></script>
|
||||
</head>
|
||||
<body>
|
||||
<Providers>{children}</Providers>
|
||||
|
@ -159,8 +159,9 @@ export const usePromptStore = createPersistStore(
|
||||
|
||||
onRehydrateStorage(state) {
|
||||
// const PROMPT_URL = "https://cos.xiaosi.cc/next/public/prompts.json";
|
||||
const PROMPT_URL = "./prompts.json";
|
||||
const GPT_PROMPT_URL = "./prompt_library.json";
|
||||
const PROMPT_URL = "https://oss.xiaosi.cc/chat/public/prompts.json";
|
||||
const GPT_PROMPT_URL =
|
||||
"https://oss.xiaosi.cc/chat/public/prompt_library.json";
|
||||
|
||||
type PromptList = Array<[string, string]>;
|
||||
|
||||
|
@ -381,17 +381,17 @@ pre {
|
||||
// url('//lib.baomitu.com/fonts/noto-sans/noto-sans-regular.svg#NotoSans') format('svg'); /* Legacy iOS */
|
||||
//}
|
||||
|
||||
/* https://cos.xiaosi.cc/fonts/noto-sans/noto-sans-regular.svg */
|
||||
/* https://oss.xiaosi.cc/fonts/noto-sans/noto-sans-regular.svg */
|
||||
|
||||
@font-face {
|
||||
font-family: 'Noto Sans';
|
||||
font-style: normal;
|
||||
font-weight: normal; /* regular; */
|
||||
src: url('https://cos.xiaosi.cc/fonts/noto-sans/noto-sans-regular.eot'); /* IE9 Compat Modes */
|
||||
src: url('https://oss.xiaosi.cc/fonts/noto-sans/noto-sans-regular.eot'); /* IE9 Compat Modes */
|
||||
src: local('Noto Sans'), local('NotoSans-Normal'),
|
||||
url('https://cos.xiaosi.cc/fonts/noto-sans/noto-sans-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||
url('https://cos.xiaosi.cc/fonts/noto-sans/noto-sans-regular.woff2') format('woff2'), /* Super Modern Browsers */
|
||||
url('https://cos.xiaosi.cc/fonts/noto-sans/noto-sans-regular.woff') format('woff'), /* Modern Browsers */
|
||||
url('https://cos.xiaosi.cc/fonts/noto-sans/noto-sans-regular.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||
url('https://cos.xiaosi.cc/fonts/noto-sans/noto-sans-regular.svg#NotoSans') format('svg'); /* Legacy iOS */
|
||||
url('https://oss.xiaosi.cc/fonts/noto-sans/noto-sans-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
|
||||
url('https://oss.xiaosi.cc/fonts/noto-sans/noto-sans-regular.woff2') format('woff2'), /* Super Modern Browsers */
|
||||
url('https://oss.xiaosi.cc/fonts/noto-sans/noto-sans-regular.woff') format('woff'), /* Modern Browsers */
|
||||
url('https://oss.xiaosi.cc/fonts/noto-sans/noto-sans-regular.ttf') format('truetype'), /* Safari, Android, iOS */
|
||||
url('https://oss.xiaosi.cc/fonts/noto-sans/noto-sans-regular.svg#NotoSans') format('svg'); /* Legacy iOS */
|
||||
}
|
||||
|
@ -3,12 +3,12 @@
|
||||
"short_name": "NextChat",
|
||||
"icons": [
|
||||
{
|
||||
"src": "https://cos.xiaosi.cc/next/public/android-chrome-192x192.png",
|
||||
"src": "https://oss.xiaosi.cc/chat/public/android-chrome-192x192.png!webp",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "https://cos.xiaosi.cc/next/public/android-chrome-512x512.png",
|
||||
"src": "https://oss.xiaosi.cc/chat/public/android-chrome-512x512.png!webp",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
@ -17,4 +17,4 @@
|
||||
"theme_color": "#ffffff",
|
||||
"background_color": "#ffffff",
|
||||
"display": "standalone"
|
||||
}
|
||||
}
|
||||
|
59
start.sh
59
start.sh
@ -1,37 +1,30 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
# 加速
|
||||
yarn config set registry 'https://registry.npmmirror.com/'
|
||||
yarn config set sharp_binary_host "https://npm.taobao.org/mirrors/sharp"
|
||||
yarn config set sharp_libvips_binary_host "https://npm.taobao.org/mirrors/sharp-libvips"
|
||||
# 官方
|
||||
#yarn config delete registry
|
||||
#yarn config delete sharp_binary_host
|
||||
#yarn config delete sharp_libvips_binary_host
|
||||
|
||||
yarn cache clean
|
||||
yarn install
|
||||
#if command -v cnpm &> /dev/null
|
||||
#then
|
||||
# echo "cnpm 已安装"
|
||||
#else
|
||||
# npm i cnpm
|
||||
#fi
|
||||
## 加速
|
||||
#yarn config set registry 'https://registry.npmmirror.com/'
|
||||
#yarn config set sharp_binary_host "https://npm.taobao.org/mirrors/sharp"
|
||||
#yarn config set sharp_libvips_binary_host "https://npm.taobao.org/mirrors/sharp-libvips"
|
||||
## 官方
|
||||
##yarn config delete registry
|
||||
##yarn config delete sharp_binary_host
|
||||
##yarn config delete sharp_libvips_binary_host
|
||||
#
|
||||
#cnpm i
|
||||
yarn run build
|
||||
|
||||
mkdir -p "./node_modules/tiktoken"
|
||||
export OUT_DIR="out"
|
||||
|
||||
mkdir -p ${OUT_DIR}
|
||||
|
||||
rsync -az --delete ./.next/standalone/ ${OUT_DIR}
|
||||
rsync -az --delete ./public/ ${OUT_DIR}/public
|
||||
rsync -az --delete ./.next/static/ ${OUT_DIR}/.next/static
|
||||
rsync -az --delete ./.next/server/ ${OUT_DIR}/.next/server
|
||||
rsync -az --delete ./.next/server/ ${OUT_DIR}/.next/server
|
||||
rsync -az --delete "./node_modules/tiktoken/" ${OUT_DIR}/node_modules/tiktoken
|
||||
#yarn cache clean
|
||||
#yarn install
|
||||
#
|
||||
#yarn run build
|
||||
#
|
||||
#mkdir -p "./node_modules/tiktoken"
|
||||
#export OUT_DIR="out"
|
||||
#
|
||||
#mkdir -p ${OUT_DIR}
|
||||
#
|
||||
#rsync -az --delete ./.next/standalone/ ${OUT_DIR}
|
||||
#rsync -az --delete ./public/ ${OUT_DIR}/public
|
||||
#rsync -az --delete ./.next/static/ ${OUT_DIR}/.next/static
|
||||
#rsync -az --delete ./.next/server/ ${OUT_DIR}/.next/server
|
||||
#rsync -az --delete ./.next/server/ ${OUT_DIR}/.next/server
|
||||
#rsync -az --delete "./node_modules/tiktoken/" ${OUT_DIR}/node_modules/tiktoken
|
||||
|
||||
docker network ls | grep -qw chatgpt-ns || docker network create chatgpt-ns
|
||||
|
||||
@ -39,8 +32,8 @@ docker network ls | grep -qw chatgpt-ns || docker network create chatgpt-ns
|
||||
if ! docker buildx inspect mybuilder &> /dev/null; then
|
||||
docker buildx create --use --name=mybuilder
|
||||
fi
|
||||
#docker build -t registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web:temp -f Dockerfile.linux-build .
|
||||
docker buildx build --platform linux/amd64 -t registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web:temp -f Dockerfile.linux-build --load .
|
||||
#docker buildx build --platform linux/amd64 -t registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web:temp -f Dockerfile.linux-build --load .
|
||||
docker buildx build --platform linux/amd64 -t registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web:temp -f Dockerfile --load .
|
||||
|
||||
docker tag registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web:temp registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web:latest
|
||||
docker tag registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web:temp registry.cn-hangzhou.aliyuncs.com/si-private/chatgpt-next-web:test
|
||||
|
Loading…
Reference in New Issue
Block a user