ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

ChatGPT-Shortcut(AI Short)部署指南:三种部署形态的选型与 Vercel / Cloudflare / Docker 落地实践

ChatGPT-Shortcut(AI Short)部署指南:三种部署形态的选型与 Vercel / Cloudflare / Docker 落地实践 AI 应用提示工程人工智能前端【免费下载链接】ChatGPT-ShortcutStop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor · Русский 한국어 العربية हिन्दी ไทย 别再从头写提示词现成的拿来就用好用的收进自己的库项目地址https://gitcode.com/gh_mirrors/ch/ChatGPT-Shortcut点击查看免费下载本文基于仓库中的部署文档中文版 docs/deploy.md即德语版 i18n/de/docusaurus-plugin-content-docs/current/deploy.md 的翻译源展开系统讲解 ChatGPT-Shortcut产品名 AI Short自部署时的三种形态选型、四种落地方式本地构建、Vercel、Cloudflare Pages、Docker、离线版数据架构以及如何自定义提示词与保持 Fork 同步更新。读完后你可以独立完成一个可自托管的 18 语言提示词库站点的部署并理解其构建与运行时配置背后的源码实现。一、先选部署形态标准版、离线版与完整自部署部署文档开篇就把目标读者界定清楚想自部署或定制 AI Short 的开发者普通用户直接使用官方在线版即可无需阅读本文档。按需求选择一种部署形态下表完整继承自部署文档形态后端说明标准部署默认复用官方共享后端Fork 后可自定义网站名称、描述、提示词等见配置与自定义登录、收藏、社区、同步开箱即用离线部署版无后端数据存浏览器本地企业内网、政务等无外网环境无需账户带后端的完整自部署自建独立后端需要独立的账户体系、数据自主可控、私有社区前两种形态可以照文档操作完成部署第三种形态因后端服务并未开源文档建议邮件联系开发者并说明使用场景与规模以获取部署方案与支持。这一约束直接决定了后续章节的范围后文所有可复现的步骤都只覆盖标准部署与离线部署两条路径。部署文档按流程拆分为四篇子文档按需查阅标准部署 —— 复用官方共享后端支持本地构建、Vercel、Cloudflare Pages、Docker 四种方式离线部署版 —— 企业内网、政务网络等无外网环境的离线方案无需后端与账户配置与自定义 —— 修改网站标题、描述、提示词以及对接自定义后端开启同步更新 —— 让 Fork 跟随上游自动更新避免功能落后。二、标准部署复用官方共享后端开箱即用标准部署的定位是「复用官方共享后端」登录、收藏、社区、评论、跨设备同步全部依赖官方共享后端你只需要托管静态前端。环境要求为Node.js 20.0 或更高版本支持 macOS、Windows含 WSL和 Linux——这一点在 package.json 的engines字段中有硬性声明node: 20.0package.json。2.1 本地构建与单语言构建基础命令为# 安装依赖 yarn # 本地开发 yarn start # 构建默认按 scripts/i18nLocales.mjs 的 defaultLocale 生成静态产物到 build 目录 yarn build要理解这些命令的实际行为需要看 package.json 中的脚本定义start依赖prestart钩子会先执行node scripts/genCommunitySnapshot.mjs --ensure-only确保社区快照数据存在build依赖prebuild钩子先执行node scripts/genCommunitySnapshot.mjs生成社区提示词快照再交给node scripts/buildPhased.mjs完成真正的构建。多语言如何不爆内存是本项目构建链路的一个核心设计。站点共支持18 种语言语言清单由 scripts/i18nLocales.mjs 单一数据源提供export const defaultLocale zh-Hans; export const locales [zh-Hans, en, zh-Hant, ja, ko, es, pt, hi, ind, vi, th, fr, de, it, ru, ar, tr, bn];该文件同时被docusaurus.config.js与构建脚本读取保证「配置里的 locales」和「分段构建实际要 build 的 locales」永远一致。而无参yarn build走的 scripts/buildPhased.mjs 采用分段构建策略一次性docusaurus build全部 18 个 locale 会在单进程里把内存撑爆OOM因此脚本把语言切成小块每块单独跑一个docusaurus build进程进程退出即释放内存每块语言数由环境变量BUILD_CHUNK控制默认 3、下限 2scripts/buildPhased.mjs内存吃紧时可设BUILD_CHUNK2进程更多更慢但峰值内存更低默认语言zh-Hans固定在第一块负责写build/根目录其余语言写build/locale/脚本还专门防了一个坑——末块若只剩 1 个非默认 localeDocusaurus 会把它当成站点根写进build/覆盖默认语言分块逻辑会自动把它并入前一块scripts/buildPhased.mjs全部构建完成后mergeSitemaps()把各 locale 的url去重合并进根build/sitemap.xml保证 robots 指向的 sitemap 覆盖全部 18 种语言scripts/buildPhased.mjs。只构建部分语言是部署平台的常用姿势buildPhased.mjs实现了透传模式——只要显式带参如yarn build --locale pt就直接转交单次docusaurus build不再分段scripts/buildPhased.mjs。多语言可串联yarn build --locale zh-Hans yarn build --locale en。完整 locale 取值即上文i18nLocales.mjs中的 18 个代码。2.2 Vercel 部署按文档流程Fork 本项目后在 Vercel 新建项目并选择刚 Fork 的仓库使用默认构建配置yarn build部署即可。注意Vercel 免费版可能因内存不足报错。解法是按单语言部署——进入项目Settings → Build Deployment → Build Command点Override把构建命令改为单语言命令例如中文yarn build --locale zh-Hans、葡萄牙语yarn build --locale pt其他语言类推。这条建议正好对应上文源码层面的透传机制单语言构建走单次docusaurus build不再经历 18 语言全量构建内存占用大幅下降。2.3 Cloudflare Pages 部署先 Fork 本项目然后登录 Cloudflare Pages选Create a project绑定刚 Fork 的仓库配置构建Build commandyarn build --locale zh-Hans按要部署的语言换 locale葡萄牙语用yarn build --locale ptOutput directorybuild点击部署等待构建完成。之后每次推新代码会自动触发构建和部署。注意构建产物目录固定为build/这是 Docusaurus 的默认输出位置与分段构建脚本写入的目录一致。2.4 Docker 部署一行命令部署两个镜像源任选# ghcr.io docker run -d -p 3000:3000 --name chatgpt-shortcut ghcr.io/rockbenben/chatgpt-shortcut:latest # docker hub docker run -d -p 3000:3000 --name chatgpt-shortcut rockben/chatgpt-shortcut:latest或使用docker-compose仓库根目录已提供 docker-compose.ymlservices: chatgpt-shortcut: container_name: chatgpt-shortcut image: ghcr.io/rockbenben/chatgpt-shortcut:latest ports: - 3000:3000 restart: unless-stopped镜像的构建方式可以直接从 Dockerfile 看到它采用两阶段构建构建阶段基于node:24-alpine固定--platform$BUILDPLATFORM在原生架构amd64下只构建一次静态产物避免多架构构建时 arm64 在 QEMU 模拟下重复跑yarn build导致双倍内存 OOMSKIP_GIT_INFOtrue让 Docusaurus 不依赖 git 信息从而把.git排除出构建上下文构建上下文从约 1.2GB 大幅缩小DockerfileRUN yarn build走的正是上述分段构建流程构建全量 18 语言Dockerfile。运行阶段基于nginx:stable-alpine删除默认 Nginx 配置拷入自定义配置 nginx.conf将第一阶段的build产物复制到/usr/share/nginx/html暴露3000端口Dockerfile。nginx.conf 的关键是 SPA 路由回退try_files $uri $uri/ /index.html;保证前端路由如提示词详情页、/prompt/id页面在直接刷新时不会被 404同时把404页面映射到构建产物中的404.html。这也解释了为什么任何「构建产物目录 build/」的静态托管方案Nginx、Apache、Caddy 等都能直接承载本站点。三、离线部署版无后端、无账户的企业内网方案离线版面向企业内网、政务网络、保密环境、校园网等无法或不便访问外网的环境。它与标准版的本质区别是无后端、无需注册——所有个人数据存在浏览器本地部署后内网团队打开浏览器即可使用。3.1 团队使用方式与数据架构离线版是纯静态网站。部署到内网服务器如http://192.168.1.100:3000后管理员将离线版部署到内网服务器团队成员用浏览器打开该地址即可浏览、搜索、复制提示词每个人的收藏和自建提示词保存在自己的浏览器中互不影响无需注册账户无需安装任何软件打开即用。其中提示词库精选提示词是构建时打包的静态数据所有用户看到的内容一致每个用户的收藏、自建提示词、排序和标签保存在各自浏览器的 localStorage彼此独立。个人数据在浏览器中的存储键如下表继承自离线部署文档数据存储键说明收藏列表local_favorites收藏的提示词 ID 数组自建提示词local_user_prompts用户创建的提示词数据排列顺序local_myspace_order「我的收藏」中的卡片排序自定义标签local_custom_tags标签定义和分配关系需要注意的限制浏览器本地存储约5MB 容量上限日常使用够用清除浏览器数据会丢失个人数据建议定期通过「我的账户 → 数据管理 → 导出数据」备份为 JSON更换电脑或浏览器后需重新导入。3.2 与在线版的功能差异功能在线版离线版提示词浏览/搜索/筛选✅✅提示词复制✅✅收藏管理服务器存储浏览器本地存储自定义提示词服务器存储浏览器本地存储我的收藏拖拽排序、标签✅✅多语言支持18种✅✅数据导入/导出✅✅格式互通提示词详情页✅✅静态数据无评论用户注册/登录✅❌无需账户社区提示词列表/投票✅❌评论反馈✅❌也就是说离线版牺牲了「账户、社区、评论」三类依赖后端的协作能力完整保留了提示词库本身的浏览、搜索、收藏与个人化能力且数据格式与在线版互通。3.3 离线版的部署方式离线版基于offline分支管理员完成一次部署后团队成员无需任何操作。Docker 部署推荐——使用预构建的离线版镜像注意 tag 是offline而非latest# 使用预构建的离线版镜像 docker run -d -p 3000:3000 --name aishort-offline ghcr.io/rockbenben/chatgpt-shortcut:offline # 或使用 Docker Hub docker run -d -p 3000:3000 --name aishort-offline rockben/chatgpt-shortcut:offline部署后团队成员访问http://服务器IP:3000即可使用。docker-compose写法services: aishort-offline: container_name: aishort-offline image: ghcr.io/rockbenben/chatgpt-shortcut:offline ports: - 3000:3000 restart: unless-stopped源码构建——如需自定义提示词内容或修改配置# 克隆离线版分支 git clone -b offline https://github.com/rockbenben/ChatGPT-Shortcut.git cd ChatGPT-Shortcut # 安装依赖 yarn # 本地开发 yarn start # 构建单语言版本中文 yarn build --locale zh-Hans # 构建全部语言 yarn build构建产物在build/目录可部署到任意静态文件服务器。文档给出的 Nginx 配置示例server { listen 3000; server_name _; root /path/to/build; index index.html; location / { try_files $uri $uri/ /index.html; } }这与容器内使用的 nginx.conf 是同构的同一个try_filesSPA 回退规则验证了离线版「任意静态服务器均可托管」的通用性。Vercel、Cloudflare Pages 等平台部署时选择offline分支即可其他步骤与在线版一致。3.4 数据导入导出与从在线版迁移导出进入「我的账户 → 数据管理 → 导出数据」将个人收藏和自建提示词导出为 JSON 文件。导入支持以下格式离线版导出的文件完整恢复收藏、提示词、排序和标签在线版导出的文件自动兼容处理——用户提示词合并到本地按标题去重、精选收藏card合并到本地收藏、社区收藏community自动转为本地自建提示词、MySpace 排序恢复到本地、自定义标签追加合并不覆盖已有。从在线版迁移只需三步在在线版的「我的账户」页面导出数据 → 在离线版「我的账户 → 数据管理」导入该 JSON → 社区收藏自动转为本地提示词精选收藏正常同步。两个版本的 ID 体系不同在线版用服务器 ID离线版用时间戳 ID但导入按标题去重不会冲突。常见问题要点团队共享自建提示词可通过一人导出、他人导入实现自动去重提示词库更新则需管理员拉取最新offline分支重新构建部署或拉取最新 Docker 镜像团队成员刷新浏览器即可看到新内容个人数据不受影响。四、配置与自定义改标题、加提示词、对接后端标准部署与离线部署部署完成后通常还需要按品牌与内容需求做自定义。配置文档给出了四个可自定义的层面。4.1 网站标题、描述与说明文档网站标题和描述编辑 docusaurus.config.js使用说明和介绍改 docs/ 目录下的对应 Markdown 文件本项目自身就是 Docusaurus 站点文档即源码。4.2 主页提示词数据主页精选提示词的源数据在 src/data/prompt.json——一个数组每个对象按zh/en/ja等语言代码键存放所有语言的版本。新增提示词时的格式{ zh: { title: custom prompt, prompt: custom prompt, description: custom description, remark: custom mark }, en: { title: custom prompt, prompt: custom prompt, description: custom description, remark: custom mark }, website: null, tags: [music], id: 500, weight: 1 }编辑后运行python CodeUpdateHandler.py脚本见 CodeUpdateHandler.py它会按预设规则拆分prompt.json生成各语言的prompt_locale.json与 src/data/ 目录下已有的prompt_ar.json、prompt_ja.json、prompt_zh-Hans.json等文件对应并同步更新各语言的主页面和精选提示词页面。注意建议将id设为500 以上避免与现有提示词或社区内容的 ID 冲突。运行脚本会自动为每条提示词含新增的生成卡片数据和详情页无需手动创建页面文件自定义提示词默认没有精选元描述和评论数据。4.3 对接自定义后端项目默认连接一个共享后端登录、收藏、社区、评论、跨设备同步都依赖它src/api/ 提供了完整的接口契约可供参考。后端服务本身并未开源如需带后端的完整自部署只能走「邮件联系开发者」路径。API 模块结构src/api/ ├── index.ts # 统一导出入口 ├── config.ts # API URL 配置 ├── client.ts # Axios 客户端含认证拦截器 ├── auth.ts # 认证 API登录/注册/OAuth ├── prompts.ts # 提示词 CRUD 搜索 投票 ├── favorites.ts # 收藏操作 ├── myspace.ts # 我的空间数据核心数据源 ├── comments.ts # 评论系统 └── user.ts # 用户信息从源码可以看到接入点非常集中src/api/config.ts 把主 API 地址当前指向官方的 Strapi 后端与 Google OAuth 登录入口服务集中定义为API_URL、GAUTH_API_BASE两个常量注释中明确「所有接口地址集中在此便于后期修改」且要求该文件不导入其他 API 模块以避免循环依赖。此外API 数据通过lscache结合 ETag 实现智能缓存——服务器返回 304 Not Modified 时直接复用本地缓存减少数据传输lscache也在 package.json 的依赖列表中。五、保持 Fork 同步更新标准部署通常基于 Fork 进行这就引出同步更新文档解决的问题Vercel 一键部署的项目可能一直提示存在更新——因为 Vercel 默认新建项目而非 fork无法检测上游更新。解决方法删除原仓库用项目页右上角的Fork按钮 Fork 本项目在 Vercel 新建项目页面重新选择刚 Fork 的项目并部署。Fork 后需手动在 Actions 页面启用 Workflows并跑一次 Upstream Sync Action若遇到 Upstream Sync 执行错误先手动执行一次 Sync Fork启用后项目每天自动同步上游。想立即手动更新时可按 GitHub 官方「Sync a fork」流程拉取上游分支合并。六、部署要点速查决策点推荐做法依据无外网的企业/政务环境离线版offline分支或:offline镜像纯静态 浏览器本地存储docs/deploy/offline.md一般自托管 / PaaS 部署标准版单语言yarn build --locale locale降低内存占用docs/deploy/standard.md平台免费构建资源紧张覆盖 Build Command 为单语言构建自建镜像可设BUILD_CHUNK2进一步压低峰值scripts/buildPhased.mjsDocker 端口固定 3000Nginx 容器内监听 3000nginx.conf、Dockerfile构建产物目录build/根目录为zh-Hans其余语言在build/locale/scripts/buildPhased.mjs新增提示词后运行python CodeUpdateHandler.pyid取 500 以上CodeUpdateHandler.py更换后端地址集中修改 src/api/config.tsdocs/deploy/configuration.mdFork 落后上游用 Fork 而非 Import启用 Upstream Sync 每日自动同步docs/deploy/sync-updates.md适用前提小结本文所有步骤以当前仓库版本chatgpt-shortcut4.4.2Docusaurus 3.10.1Node ≥ 20为准标准版依赖官方共享后端离线版功能不含账户/社区/评论完整独立后端尚未开源需要时只能联系开发者获取方案。赞分享AI 应用提示工程人工智能前端【免费下载链接】ChatGPT-ShortcutStop writing prompts from scratch — a searchable prompt library for ChatGPT, Claude, Gemini and Cursor · Русский 한국어 العربية हिन्दी ไทย 别再从头写提示词现成的拿来就用好用的收进自己的库项目地址https://gitcode.com/gh_mirrors/ch/ChatGPT-Shortcut点击查看免费下载相关推荐语音识别中的噪声分类silero-models环境适应技术语音识别中的噪声分类silero models环境适应技术 在当今语音交互技术快速发展的时代背景噪声成为影响语音识别准确率的关键因素。silero mode人工智能语音音频AnyDoor部署指南零基础掌握本地、云端和Docker三种高效部署方案AnyDoor部署指南零基础掌握本地、云端和Docker三种高效部署方案 AnyDoor是一款基于零样本对象级图像定制技术的创新工具能够帮助用户实现目标对象Cloudflare Pages 前端部署指南cloudflare_temp_email 三种部署方式详解Cloudflare Pages 前端部署指南cloudflare_temp_email 三种部署方式详解 本文基于开源项目 cloudflare_temp_后端前端上一篇推荐使用强大的Schema.NET——结构化数据的C实现下一篇【亲测免费】 探索Go蓝牙跨平台的BLE开发新境界创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表