当经典博客遇见边缘计算:在 Cloudflare 上重生 Typecho

前言 在博客圈子里,Typecho 一直以轻量、高效、对中文用户友好而著称。很多人的第一个独立博客就是基于 Typecho 搭建的——PHP + MySQL 的组合,小巧精致,运行在虚拟主机上,一用就是好多年。

但时代在变。PHP 依然强大,可“无服务器”(Serverless)和“边缘计算”(Edge Computing)的浪潮已经席卷而来。速度更快、成本更低、几乎无需运维,这些诱惑让人很难不心动。

那么问题来了:有没有一种可能,让经典的 Typecho 博客,运行在 Cloudflare 的 Workers 边缘网络上?

答案是:有。 这就是今天要介绍的项目——typecho-cf。

什么是 typecho-cf? typecho-cf 是一个基于 Typecho 完整重写的现代博客系统。但它不再运行在传统的 PHP 环境中,而是跑在 Astro + Cloudflare Workers + D1 之上。

简单来说,它保留了 Typecho 的数据库表结构,让你可以从 PHP 版的 Typecho 直接迁移数据,但整个系统已经变成了一个部署在 Cloudflare 边缘网络上的现代化应用。

你可能会问:这跟原来的 Typecho 有什么区别?区别很大。原来的 Typecho 是一个 PHP 程序,需要 PHP 运行环境和 MySQL 数据库;而 typecho-cf 是一个跑在 Cloudflare Workers 上的 JavaScript/TypeScript 应用,数据库用的是 Cloudflare 的 D1(基于 SQLite 的分布式数据库),附件存储用的是 Cloudflare R2。

本质上,它是用 Cloudflare 的全套基础设施,重新实现了 Typecho 的核心功能。

功能特性一览 typecho-cf 几乎实现了原版 Typecho 的所有核心功能,甚至还做了一些增强。

前台方面:

文章列表、分类、标签、作者归档

FTS5 全文检索,短词自动回退 LIKE 查询

嵌套评论,支持 Gravatar 头像

RSS 2.0 / Atom 1.0 / RSS 1.0 三种 feed 格式

文章密码保护

响应式默认主题

管理后台方面:

文章和页面编辑管理

评论审核

媒体管理(支持拖拽上传到 R2)

用户管理(5 种角色)

主题切换与插件管理

全站设置与安装向导

系统层面:

主题系统(通过 npm 包分发)

插件系统(30+ 已接入 Hook,支持懒加载)

PHP 版 Typecho 数据迁移工具

PBKDF2-SHA256 认证、CSRF 防护、安全响应头

R2 上传类型校验

可以说,你在原版 Typecho 上能用到的功能,这里基本都有。而且因为是跑在 Cloudflare Workers 上,天然享受边缘网络的加速效果。

如何部署? 部署方式非常“Cloudflare”——一键搞定。

项目提供了 Deploy to Cloudflare 按钮。点击后,Cloudflare 会把仓库复制到你的 GitHub 或 GitLab 账号,自动创建 D1 数据库(typecho-cf-db)和 R2 存储桶(typecho-cf-uploads),并绑定到 Worker。之后每次推送到生产分支,都会自动构建部署。

部署向导会提示填写 INSTALL_TOKEN(推荐用 openssl rand -hex 32 生成)。设置后,访问 Worker URL 的 /install 完成站点与管理员初始化时需要填写同一令牌。注意:如果未设置 INSTALL_TOKEN,任何先访问 /install 的人都能成为首位管理员。

对于喜欢命令行操作的朋友,项目也提供了完整的本地开发和部署流程:

bash git clone https://github.com/eslizn/typecho-cf.git cd typecho-cf pnpm install pnpm run dev 本地开发时,打开 http://localhost:4321 就会自动跳转到安装向导。填写站点名称、描述、管理员用户名、密码(至少 12 位)、邮箱等信息后提交即可。

部署到生产环境也很简单:

bash pnpm exec wrangler login pnpm run deploy 首次 wrangler deploy 会自动创建 D1 数据库和 R2 存储桶。然后访问 Worker URL 的 /install 完成初始化即可。

从 PHP 版 Typecho 迁移 如果你已经有一个运行中的 PHP 版 Typecho 博客,迁移数据到 typecho-cf 非常方便:

bash pnpm run db:migrate:cloudflare
--source /path/to/typecho.db
--uploads /path/to/usr/uploads 这条命令会把你的 SQLite 数据库和上传目录一起迁移到 Cloudflare D1 和 R2。还支持预览模式(--dry-run),可以先看看迁移效果再决定是否写入。

一个真实的案例:hbw.me 说了这么多,有没有真实跑起来的例子?有。hbw.me 就是一个基于 typecho-cf 搭建的博客网站。

打开 hbw.me,你能看到一个干净、简洁的博客页面。关于页面上写着:

“Typecho 是一个基于 Astro + Cloudflare Workers + D1 构建的现代博客系统。”

特点包括:

极速响应:基于 Cloudflare 边缘网络

Markdown 支持:使用 Markdown 撰写文章

简洁高效:保持博客系统的简约之道

站长还在 hbw.me 上分享了自己的技术实践——比如一篇关于“免费高速图床搭建”的完整指南。这篇文章详细记录了如何基于 Cloudflare Pages + R2 + KV 部署一个名为 CloudFlare-ImgBed 的图床项目,最终在 img.huw.me 上成功运行。从成本(R2 每月 10GB 免费额度)到全球加速,再到部署步骤,写得非常详尽。

这说明 typecho-cf 不仅仅是一个博客系统,它背后依托的 Cloudflare 生态还能轻松扩展出图床、文件存储等各种能力。

写在最后 从 PHP 到 Cloudflare Workers,从 MySQL 到 D1,从传统主机到边缘网络——typecho-cf 是一次很有意思的技术尝试。它让经典的 Typecho 博客系统焕发出了新的生命力。

对于想尝试 Serverless 博客、又舍不得 Typecho 操作习惯的朋友来说,这是一个值得关注的项目。而对于已经拥有 PHP 版 Typecho 博客的老用户,数据迁移工具也让切换变得几乎无痛。

如果你也想体验一下“跑在边缘网络上的 Typecho”,不妨去 GitHub 上看看 eslizn/typecho-cf,跟着文档部署一个试试。毕竟,自己的数据还是握在自己手里最放心,而自己的博客,跑在边缘网络上最快。

标签: CloudFlare

添加新评论