From 164627004251e6cfd64b3fb8d494b07cb7d5e317 Mon Sep 17 00:00:00 2001 From: wanghe Date: Thu, 7 Dec 2023 16:10:55 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=83=A8=E5=88=86=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E4=BC=98=E5=8C=96=20(#686)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2.9.12/docker-compose.yml | 6 +- apps/chatgpt-next-web/README.md | 203 ++---------------- apps/chatgpt-next-web/data.yml | 4 +- apps/filecodebox.zip | Bin 32562 -> 0 bytes apps/filecodebox/2.0/data.yml | 10 - apps/filecodebox/2.0/docker-compose.yml | 10 - apps/filecodebox/README.md | 16 +- apps/filecodebox/beta/data.yml | 10 + apps/filecodebox/beta/docker-compose.yml | 17 ++ apps/filecodebox/data.yml | 31 +-- apps/koishi/1.12.2/data.yml | 9 +- apps/koishi/1.12.2/docker-compose.yml | 8 +- apps/koishi/README.md | 35 +-- apps/koishi/data.yml | 33 +-- apps/prometheus/README.md | 2 +- apps/prometheus/data.yml | 1 + apps/prometheus/v2.48.0/scripts/init.sh | 2 + apps/tailchat/README.md | 53 ++--- 18 files changed, 129 insertions(+), 321 deletions(-) delete mode 100644 apps/filecodebox.zip delete mode 100644 apps/filecodebox/2.0/data.yml delete mode 100644 apps/filecodebox/2.0/docker-compose.yml create mode 100644 apps/filecodebox/beta/data.yml create mode 100644 apps/filecodebox/beta/docker-compose.yml diff --git a/apps/chatgpt-next-web/2.9.12/docker-compose.yml b/apps/chatgpt-next-web/2.9.12/docker-compose.yml index 1702c0ae..544cd85c 100644 --- a/apps/chatgpt-next-web/2.9.12/docker-compose.yml +++ b/apps/chatgpt-next-web/2.9.12/docker-compose.yml @@ -13,9 +13,9 @@ services: - "PROXY_URL=${PROXY}" - "BASE_URL=${API_BASE_URL}" image: yidadaa/chatgpt-next-web:v2.9.12 - labels: + labels: createdBy: "Apps" -networks: - 1panel-network: +networks: + 1panel-network: external: true diff --git a/apps/chatgpt-next-web/README.md b/apps/chatgpt-next-web/README.md index f8d5693e..3feaa4e5 100644 --- a/apps/chatgpt-next-web/README.md +++ b/apps/chatgpt-next-web/README.md @@ -1,186 +1,17 @@ -
-预览 - -

ChatGPT Next Web

- -一键免费部署你的私人 ChatGPT 网页应用。 - -[演示 Demo](https://chat-gpt-next-web.vercel.app/) / [反馈 Issues](https://github.com/Yidadaa/ChatGPT-Next-Web/issues) / [加入 Discord](https://discord.gg/zrhvHCr79N) / [QQ 群](https://user-images.githubusercontent.com/16968934/228190818-7dd00845-e9b9-4363-97e5-44c507ac76da.jpeg) / [打赏开发者](https://user-images.githubusercontent.com/16968934/227772541-5bcd52d8-61b7-488c-a203-0330d8006e2b.jpg) / [Donate](#捐赠-donate-usdt) - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FYidadaa%2FChatGPT-Next-Web&env=OPENAI_API_KEY&env=CODE&project-name=chatgpt-next-web&repository-name=ChatGPT-Next-Web) - -[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/Yidadaa/ChatGPT-Next-Web) - -![主界面](https://github.com/Yidadaa/ChatGPT-Next-Web/raw/main/docs/images/cover.png) - -
- -## 开始使用 - -1. 准备好你的 [OpenAI API Key](https://platform.openai.com/account/api-keys); -2. 点击右侧按钮开始部署: - [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FYidadaa%2FChatGPT-Next-Web&env=OPENAI_API_KEY&env=CODE&project-name=chatgpt-next-web&repository-name=ChatGPT-Next-Web),直接使用 Github 账号登录即可,记得在环境变量页填入 API Key 和[页面访问密码](#配置页面访问密码) CODE; -3. 部署完毕后,即可开始使用; -4. (可选)[绑定自定义域名](https://vercel.com/docs/concepts/projects/domains/add-a-domain):Vercel 分配的域名 DNS 在某些区域被污染了,绑定自定义域名即可直连。 - -## 保持更新 - -如果你按照上述步骤一键部署了自己的项目,可能会发现总是提示“存在更新”的问题,这是由于 Vercel 会默认为你创建一个新项目而不是 fork 本项目,这会导致无法正确地检测更新。 -推荐你按照下列步骤重新部署: - -- 删除掉原先的仓库; -- 使用页面右上角的 fork 按钮,fork 本项目; -- 在 Vercel 重新选择并部署,[请查看详细教程](https://github.com/Yidadaa/ChatGPT-Next-Web/raw/main/docs/vercel-cn.md#如何新建项目)。 - -### 打开自动更新 - -> 如果你遇到了 Upstream Sync 执行错误,请手动 Sync Fork 一次! - -当你 fork 项目之后,由于 Github 的限制,需要手动去你 fork 后的项目的 Actions 页面启用 Workflows,并启用 Upstream Sync Action,启用之后即可开启每小时定时自动更新: - -![自动更新](https://github.com/Yidadaa/ChatGPT-Next-Web/raw/main/docs/images/enable-actions.jpg) - -![启用自动更新](https://github.com/Yidadaa/ChatGPT-Next-Web/raw/main/docs/images/enable-actions-sync.jpg) - -### 手动更新代码 - -如果你想让手动立即更新,可以查看 [Github 的文档](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork) 了解如何让 fork 的项目与上游代码同步。 - -你可以 star/watch 本项目或者 follow 作者来及时获得新功能更新通知。 - -## 配置页面访问密码 - -> 配置密码后,用户需要在设置页手动填写访问码才可以正常聊天,否则会通过消息提示未授权状态。 - -> **警告**:请务必将密码的位数设置得足够长,最好 7 位以上,否则[会被爆破](https://github.com/Yidadaa/ChatGPT-Next-Web/issues/518)。 - -本项目提供有限的权限控制功能,请在 Vercel 项目控制面板的环境变量页增加名为 `CODE` 的环境变量,值为用英文逗号分隔的自定义密码: - -``` -code1,code2,code3 -``` - -增加或修改该环境变量后,请**重新部署**项目使改动生效。 - -## 环境变量 - -> 本项目大多数配置项都通过环境变量来设置,教程:[如何修改 Vercel 环境变量](https://github.com/Yidadaa/ChatGPT-Next-Web/raw/main/docs/vercel-cn.md)。 - -### `OPENAI_API_KEY` (必填项) - -OpanAI 密钥,你在 openai 账户页面申请的 api key。 - -### `CODE` (可选) - -访问密码,可选,可以使用逗号隔开多个密码。 - -**警告**:如果不填写此项,则任何人都可以直接使用你部署后的网站,可能会导致你的 token 被急速消耗完毕,建议填写此选项。 - -### `BASE_URL` (可选) - -> Default: `https://api.openai.com` - -> Examples: `http://your-openai-proxy.com` - -OpenAI 接口代理 URL,如果你手动配置了 openai 接口代理,请填写此选项。 - -> 如果遇到 ssl 证书问题,请将 `BASE_URL` 的协议设置为 http。 - -### `OPENAI_ORG_ID` (可选) - -指定 OpenAI 中的组织 ID。 - -### `HIDE_USER_API_KEY` (可选) - -如果你不想让用户自行填入 API Key,将此环境变量设置为 1 即可。 - -### `DISABLE_GPT4` (可选) - -如果你不想让用户使用 GPT-4,将此环境变量设置为 1 即可。 - -### `HIDE_BALANCE_QUERY` (可选) - -如果你不想让用户查询余额,将此环境变量设置为 1 即可。 - -## 开发 - -点击下方按钮,开始二次开发: - -[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/Yidadaa/ChatGPT-Next-Web) - -在开始写代码之前,需要在项目根目录新建一个 `.env.local` 文件,里面填入环境变量: - -``` -OPENAI_API_KEY= - -# 中国大陆用户,可以使用本项目自带的代理进行开发,你也可以自由选择其他代理地址 -BASE_URL=https://chatgpt1.nextweb.fun/api/proxy -``` - -### 本地开发 - -1. 安装 nodejs 18 和 yarn,具体细节请询问 ChatGPT; -2. 执行 `yarn install && yarn dev` 即可。⚠️ 注意:此命令仅用于本地开发,不要用于部署! -3. 如果你想本地部署,请使用 `yarn install && yarn build && yarn start` 命令,你可以配合 pm2 来守护进程,防止被杀死,详情询问 ChatGPT。 - -## 部署 - -### 容器部署 (推荐) - -> Docker 版本需要在 20 及其以上,否则会提示找不到镜像。 - -> ⚠️ 注意:docker 版本在大多数时间都会落后最新的版本 1 到 2 天,所以部署后会持续出现“存在更新”的提示,属于正常现象。 - -```shell -docker pull yidadaa/chatgpt-next-web - -docker run -d -p 3000:3000 \ - -e OPENAI_API_KEY="sk-xxxx" \ - -e CODE="页面访问密码" \ - yidadaa/chatgpt-next-web -``` - -你也可以指定 proxy: - -```shell -docker run -d -p 3000:3000 \ - -e OPENAI_API_KEY="sk-xxxx" \ - -e CODE="页面访问密码" \ - --net=host \ - -e PROXY_URL="http://127.0.0.1:7890" \ - yidadaa/chatgpt-next-web -``` - -如果你的本地代理需要账号密码,可以使用: - -```shell --e PROXY_URL="http://127.0.0.1:7890 user password" -``` - -如果你需要指定其他环境变量,请自行在上述命令中增加 `-e 环境变量=环境变量值` 来指定。 - -### 本地部署 - -在控制台运行下方命令: - -```shell -bash <(curl -s https://raw.githubusercontent.com/Yidadaa/ChatGPT-Next-Web/main/scripts/setup.sh) -``` - -⚠️ 注意:如果你安装过程中遇到了问题,请使用 docker 部署。 - -## 鸣谢 - -### 捐赠者 - -> 见英文版。 - -### 贡献者 - -[见项目贡献者列表](https://github.com/Yidadaa/ChatGPT-Next-Web/graphs/contributors) - -## 开源协议 - -> 反对 996,从我开始。 - -[Anti 996 License](https://github.com/kattgu7/Anti-996-License/blob/master/LICENSE_CN_EN) +# ChatGPT-Next-Web + +一键免费部署你的跨平台私人 ChatGPT 应用。 + +## 特征: + +- 只需在 1 分钟内即可在 Vercel 上一键免费部署 +- Linux/Windows/MacOS 上的紧凑型客户端 (~5MB),立即下载 +- 与自部署llms完全兼容,推荐与RWKV-Runner或LocalAI配合使用 +- 隐私第一,所有数据都存储在浏览器本地 +- Markdown 支持:LaTex、mermaid、代码高亮等。 +- 响应式设计、深色模式和 PWA +- 首屏加载速度快(~100kb),支持流式响应 +- v2 中的新增功能:使用提示模板(掩码)创建、共享和调试您的聊天工具 +- 由Awesome-chatgpt-prompts-zh和Awesome-chatgpt-prompts提供支持的很棒的提示 +- 自动压缩聊天历史记录以支持长时间对话,同时保存您的令牌 +- 国际化:英语、简体中文、繁体中文、日本语、法语、西班牙语、意大利语、土耳其语、德语、Tiếng Việt、Русский、Čeština、한국어、印度尼西亚 \ No newline at end of file diff --git a/apps/chatgpt-next-web/data.yml b/apps/chatgpt-next-web/data.yml index cacde37f..6a3502a5 100644 --- a/apps/chatgpt-next-web/data.yml +++ b/apps/chatgpt-next-web/data.yml @@ -1,8 +1,8 @@ name: ChatGPT-Next-Web tags: - - 工具 + - 实用工具 title: 一键免费部署你的跨平台私人 ChatGPT 应用 -type: 工具 +type: 实用工具 description: 一键免费部署你的跨平台私人 ChatGPT 应用 additionalProperties: key: chatgpt-next-web diff --git a/apps/filecodebox.zip b/apps/filecodebox.zip deleted file mode 100644 index 522b07e177c5e7d15ee4ae7f1e1fb32ea9a96c4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 KcmV+b0RR6000031 literal 32562 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 - - logo - -

Koishi

+# Koishi -[![Codecov](https://img.shields.io/codecov/c/github/koishijs/koishi?style=flat-square)](https://codecov.io/gh/koishijs/koishi) -[![downloads](https://img.shields.io/npm/dm/koishi?style=flat-square)](https://www.npmjs.com/package/koishi) -[![npm](https://img.shields.io/npm/v/koishi?style=flat-square)](https://www.npmjs.com/package/koishi) -[![GitHub](https://img.shields.io/github/license/koishijs/koishi?style=flat-square)](https://github.com/koishijs/koishi/blob/master/LICENSE) - - - -Koishi 是一个跨平台、可扩展、高性能的聊天机器人框架。 - -它的名字和图标设计来源于来源于东方 Project 中的角色古明地恋 (Komeiji Koishi)。古明地恋是一个会做出无意识举动的角色,取这个名字既象征着聊天机器人的主题,也蕴含了开发者为之倾注的热爱。 +**Koishi** 是一个跨平台、可扩展、高性能的聊天机器人框架。 ## 特性 @@ -36,21 +23,3 @@ Koishi 更为开发者准备了众多专业功能,使插件开发者得以在 - 类型支持:Koishi 完全基于 TypeScript 开发,拥有顶级的类型支持,丰富的代码提示让你在编写代码的时候甚至无需查看文档 - 单元测试:所有核心功能均已经通过单元测试,既确保了可靠性,也为开发者提供了一套测试插件和定位问题的最佳实践 - 模块热重载:开发 Koishi 插件时,只需轻点保存即可热重载,无需频繁重启机器人,如同前端开发一样丝滑顺畅 - -## 快速起步 - -[前往文档](https://koishi.chat/manual/starter/) - -## 许可证 - -Koishi 完全使用 [MIT](./LICENSE) 协议开源,维护良好的开源生态从我做起 (*>ω<)φ - -Copyright © 2019-2023, Shigma - -[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fkoishijs%2Fkoishi.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fkoishijs%2Fkoishi?ref=badge_large) - -## 更多 - -- [贡献指南](./CONTRIBUTING.md) -- [参与讨论](https://koishi.chat/about/contact.html) -- [支持作者](https://afdian.net/a/shigma) \ No newline at end of file diff --git a/apps/koishi/data.yml b/apps/koishi/data.yml index 19475b01..b0a017bf 100644 --- a/apps/koishi/data.yml +++ b/apps/koishi/data.yml @@ -1,13 +1,20 @@ -additionalProperties: #固定参数 - key: koishi #应用的 key ,仅限英文,用于在 Linux 创建文件夹 - name: Koishi #应用名称 - tags: - - Tool #应用标签,可以有多个,请参照下方的标签列表 - shortDescZh: 跨平台、可扩展、高性能的聊天机器人框架 #应用中文描述,不要超过30个字 - shortDescEn: Cross-platform, extensive, high-performance chatbot framework #应用英文描述 - type: tool #应用类型,区别于应用分类,只能有一个,请参照下方的类型列表 - crossVersionUpdate: true #是否可以跨大版本升级 - limit: 0 #应用安装数量限制,0 代表无限制 - website: https://koishi.chat #官网地址 - github: https://github.com/koishijs/koishi #github 地址 - document: https://koishi.chat #文档地址 \ No newline at end of file +name: Koishi +tags: + - 实用工具 +title: 跨平台、可扩展、高性能的聊天机器人框架 +type: 实用工具 +description: 跨平台、可扩展、高性能的聊天机器人框架 +additionalProperties: + key: koishi + name: Koishi + tags: + - Tool + shortDescZh: 跨平台、可扩展、高性能的聊天机器人框架 + shortDescEn: Cross-platform, extensive, high-performance chatbot framework + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://koishi.chat + github: https://github.com/koishijs/koishi + document: https://koishi.chat/zh-CN/manual/introduction.html \ No newline at end of file diff --git a/apps/prometheus/README.md b/apps/prometheus/README.md index 345f963f..30074a0c 100644 --- a/apps/prometheus/README.md +++ b/apps/prometheus/README.md @@ -1,6 +1,6 @@ # Prometheus -Prometheus 一个监控系统和时间序列数据库 +**Prometheus** 一个监控系统和时间序列数据库 ## 主要功能: diff --git a/apps/prometheus/data.yml b/apps/prometheus/data.yml index 07c66f1b..106d9f06 100644 --- a/apps/prometheus/data.yml +++ b/apps/prometheus/data.yml @@ -14,6 +14,7 @@ additionalProperties: type: runtime crossVersionUpdate: false limit: 0 + recommend: 0 website: https://prometheus.io github: https://github.com/prometheus/prometheus document: https://prometheus.io/docs/introduction/overview/ \ No newline at end of file diff --git a/apps/prometheus/v2.48.0/scripts/init.sh b/apps/prometheus/v2.48.0/scripts/init.sh index 85005648..93e5dd0c 100644 --- a/apps/prometheus/v2.48.0/scripts/init.sh +++ b/apps/prometheus/v2.48.0/scripts/init.sh @@ -1 +1,3 @@ +#!/bin/bash + chmod -R 777 prometheus \ No newline at end of file diff --git a/apps/tailchat/README.md b/apps/tailchat/README.md index 4bca05ae..02796a32 100644 --- a/apps/tailchat/README.md +++ b/apps/tailchat/README.md @@ -1,41 +1,18 @@ -# Tailchat - -Tailchat 是一款功能强大的聊天工具,旨在提供出色的沟通和协作体验。 - -## 安装演示视频 - -- [在 bilibili 中观看](https://www.bilibili.com/video/BV1hP411v7Gj) - -## 主要功能: - -### 实时聊天 - -Tailchat 提供实时聊天功能,允许用户与他人进行即时沟通。无论是一对一聊天还是群组聊天,您都可以轻松地与同事、朋友和家人保持联系。 - -### 多平台支持 - -Tailchat 可以在多个平台上使用,包括桌面、移动设备和Web浏览器。这意味着您可以随时随地访问您的聊天会话,无需担心设备兼容性问题。 - -### 文件共享 - -用户可以在聊天中轻松共享文件,包括图片、文档和音频文件。这样,您可以与团队成员共享重要文档或娱乐内容,提高工作效率和娱乐乐趣。 - -### 消息历史记录 - -Tailchat 会自动保存聊天消息的历史记录,因此您可以随时查看之前的对话。这对于追踪项目进展、查找之前的信息或进行审计非常有用。 - -### 自定义表情和贴纸 - -为了增加聊天的趣味性,Tailchat 支持自定义表情和贴纸。用户可以发送各种表情符号和有趣的贴纸来表达自己的情感和想法。 - -### 安全和隐私 - -Tailchat 提供了强大的安全性和隐私保护功能,包括端到端加密,以确保您的聊天内容不会被未经授权的访问。 - -## 部署说明 - -### 关于后台 +# 关于后台 访问 `http://:11002/admin/` 进入后台服务 -*11002是后台默认端口,你可以在安装时修改成自己想要的端口* +> 11002是后台默认端口,你可以在安装时修改成自己想要的端口。 + +# Tailchat + +**Tailchat** 是一款功能强大的聊天工具,旨在提供出色的沟通和协作体验。 + +## 主要功能: + +- **实时聊天**:Tailchat 提供实时聊天功能,允许用户与他人进行即时沟通。无论是一对一聊天还是群组聊天,您都可以轻松地与同事、朋友和家人保持联系。 +- **多平台支持**:Tailchat 可以在多个平台上使用,包括桌面、移动设备和Web浏览器。这意味着您可以随时随地访问您的聊天会话,无需担心设备兼容性问题。 +- **文件共享**:用户可以在聊天中轻松共享文件,包括图片、文档和音频文件。这样,您可以与团队成员共享重要文档或娱乐内容,提高工作效率和娱乐乐趣。 +- **消息历史记录**:Tailchat 会自动保存聊天消息的历史记录,因此您可以随时查看之前的对话。这对于追踪项目进展、查找之前的信息或进行审计非常有用。 +- **自定义表情和贴纸**:为了增加聊天的趣味性,Tailchat 支持自定义表情和贴纸。用户可以发送各种表情符号和有趣的贴纸来表达自己的情感和想法。 +- **安全和隐私**:Tailchat 提供了强大的安全性和隐私保护功能,包括端到端加密,以确保您的聊天内容不会被未经授权的访问。