HTools 部署教程：零成本搭建自己的开源工具导航站，Cloudflare Pages Functions + D1 保姆级教程

HTools 部署教程：零成本搭建自己的开源工具导航站 之前我一直想做一个真正适合自己用的工具导航站。原因也很简单，在写博客的过程中，我遇到个痛点：网上好玩的工具实在太多了，但并不是每个项目都适合正儿八经地写一篇长博文。有些小工具明明极其优秀，却因为体量小，找不到合适的渠道去展示和分享，最后只能默默躺在我的收藏夹里吃灰。还有些开源项目，我明明在群里分享过，过几天自己需要用到的时候都要翻半天聊天记录。 于是就有了 HTools 。 它不是那种单纯放几个链接的静态导航页，而是一个可以部署在 Cloudflare Pages Functions + D1 上的开源工具库。前台可以展示工具、文章、关于页面，后台可以管理工具、文章、内容流、分类、站点设置，还能导入默认工具源、导出备份、开启 GitHub 登录提交工具。很多地方我都给了，自定义设置，简单部署后，你也可以拥有。 最关键的是： 不用服务器，基本零成本。 HTools 简单介绍 HTools 是我用来收录各种开源、好用互联网项目的工具导航站。它适合拿来做： - 开源项目导航 ：把 GitHub 上那些好项目集中收录起来。 - 在线工具库 ：常用工具、代理工具、图片工具、效率工具都能分类整理。 - 文章页 ：可以直接在后台写文章，支持 Markdown。 - 内容流聚合 ：支持 RSS / Atom 内容源，同步后可以浏览，也可以转为站内文章。 - GitHub 提交入口 ：用户可以通过 GitHub 登录，在 /submit 提交工具，后台可把提交创建成 GitHub Issue。 - 公开工具源 ：可以开启 /api/htools.json，让别人导入你的工具库。 - 备份恢复 ：迁移站点或者大改之前，直接导出完整备份，心里踏实很多。演示地址： HTools：https://htools.zrf.me/ 界面预览： HTools 前台工具库 HTools 后台工具库 HTools 部署前准备 开搞之前，先准备好下面这些东西： - Cloudflare 账号 用来部署 Pages 项目和创建 D1 数据库。 - 建议准备一个已经托管到 Cloudflare 的域名，毕竟默认的 pages.dev 在部分网络环境下体验可能一般。 - GitHub 账号 用来 Fork 或导入 HTools 项目。 - 如果后面要开启用户提交工具功能，还需要创建 GitHub OAuth App。 第一步：Fork HTools 项目 首先打开项目地址： https://github.com/shaoyouvip/htools 来到项目页面后，可以先给项目点个 Star ，然后点击右上角 Fork ，把项目复制到你自己的 GitHub 账号下面。 Fork HTools 项目 第二步：创建 Cloudflare Pages 项目 - 登录 Cloudflare Dashboard。 - 进入 Workers & Pages 。 - 点击 创建应用程序 ，选择 Pages 。 创建 Cloudflare Pages 项目 1 - 选择 导入现有 Git 存储库 ，授权 GitHub 后选择你刚刚 Fork 的 htools 仓库。 创建 Cloudflare Pages 项目 2 - 在构建设置里填写： 创建 Cloudflare Pages 项目 3 确认后点击 保存并部署 。 这里第一次部署大概率可以正常构建，但是因为还没有绑定 D1 和后台密码，后面访问 API 或后台时会报错。不要慌，这是正常的，先把项目跑起来，后面再补配置。 创建 Cloudflare Pages 项目 4 第三步：创建并绑定 D1 数据库 HTools 的数据都存在 Cloudflare D1 里，包括工具、文章、分类、内容源、站点设置等。 3.1 创建 D1 数据库 在 Cloudflare 后台进入： 数据库名称随便写，例如： 创建 D1 数据库 创建完成后，先回到你的 Pages 项目。 3.2 给 Pages Functions 绑定 D1 进入你的 HTools Pages 项目： 填写(特别注意：变量名称必须是 DB。)： 给 Pages Functions 绑定 D1 3.3 表结构会自动初始化 HTools 项目里有 db/schema.sql，但正常部署时并不需要你手动去 D1 控制台复制 SQL。 项目会在首次访问 API 时自动创建表结构，包括： - tools - articles - content sources - content items - app settings - github oauth states - github sessions也就是说，你只要 D1 绑定正确，第一次访