EmDash 是 Cloudflare 于 2026 年 4 月发布的开源内容管理系统(CMS),被称为 WordPress 的”精神继承者”。它完全使用 TypeScript 编写,基于 Astro 6 框架构建,专为 serverless 架构设计。
本文将指导你使用官方推荐的方式创建 EmDash 项目并部署到 Cloudflare Workers。
EmDash 核心特性
- 完全 TypeScript:端到端类型安全
- 基于 Astro 6:现代化的内容驱动网站框架
- 插件沙箱隔离:每个插件运行在独立的 Worker Isolate 中,解决了 WordPress 插件安全问题
- Serverless 架构:自动扩缩容,按实际使用付费
- 内置 x402 支付:原生支持 AI 时代的内容付费
- MIT 许可证:完全开源,可自由使用和修改
前置条件
- Node.js >= 18.x(推荐 20.x 或更高版本)
- pnpm (推荐) 或 npm
- Cloudflare 账户(免费账户即可,无需信用卡)
- Git(可选,用于版本控制)
一、创建项目
方式 1: 使用 CLI 创建(推荐)
这是最简单快捷的方式:
# 创建新项目(交互式)
npm create emdash@latest
# 或直接指定项目名称
npm create emdash@latest my-blog
CLI 会引导你完成以下步骤:
- 选择模板类型(blog、marketing、portfolio 或 starter)
- 配置项目名称和基本设置
- 自动安装依赖
可用模板:
blog- 经典博客模板(推荐个人博客使用)marketing- 营销落地页模板portfolio- 作品集展示模板starter- 空白起点(适合完全自定义)
方式 2: 从 Cloudflare Dashboard 创建
- 登录 Cloudflare Dashboard
- 进入 Workers & Pages 页面
- 点击 Create Application
- 选择 EmDash 模板
- 按照向导完成配置和部署
二、本地开发
EmDash 支持完全离线的本地开发,使用 SQLite 数据库,无需连接 Cloudflare。
# 进入项目目录
cd my-blog
# 安装依赖
pnpm install
# (可选)填充示例数据
pnpm seed
# 启动开发服务器
pnpm dev
本地开发环境特点:
- 使用 SQLite 数据库(无需配置)
- 图片存储在本地磁盘
- 支持热重载(Hot Module Replacement)
- 无需 Cloudflare 账户即可开发
访问地址:
默认管理员账户:
- 首次访问后台时,系统会引导你创建管理员账户
- 使用 Passkey 认证(无需密码,更安全)
三、部署到 Cloudflare Workers
方式 A: 一键部署(最简单)
通过 Cloudflare Dashboard:
- 将代码推送到 GitHub 或 GitLab
- 登录 Cloudflare Dashboard
- 进入 Workers & Pages → Create Application
- 选择 Connect to Git
- 授权并选择你的 EmDash 仓库
- Cloudflare 会自动检测 EmDash 项目并配置构建设置
- 点击 Save and Deploy
自动配置内容:
- D1 数据库(用于存储内容)
- R2 存储桶(用于媒体文件)
- KV 命名空间(用于会话管理)
- 环境变量绑定
方式 B: 使用 Wrangler CLI(推荐开发者)
1. 安装 Wrangler
# 全局安装
npm install -g wrangler
# 或使用 pnpm
pnpm add -g wrangler
2. 登录 Cloudflare
wrangler login
这会打开浏览器窗口,要求你授权 CLI 访问你的 Cloudflare 账户。
3. 创建 Cloudflare 资源
EmDash 需要三种 Cloudflare 资源:
# 1. 创建 D1 数据库(用于存储内容)
wrangler d1 create emdash-db
# 2. 创建 R2 存储桶(用于媒体文件)
wrangler r2 bucket create emdash-media
# 3. 创建 KV 命名空间(用于会话管理)
wrangler kv:namespace create SESSIONS
记录每个命令输出的 ID,后面配置时需要用到。
4. 配置 wrangler.toml
在项目根目录创建或编辑 wrangler.toml:
name = "my-blog"
main = "./dist/_worker.js"
compatibility_date = "2026-04-01"
# D1 数据库绑定
[[d1_databases]]
binding = "DB"
database_name = "emdash-db"
database_id = "你的数据库ID"
# R2 存储桶绑定
[[r2_buckets]]
binding = "MEDIA"
bucket_name = "emdash-media"
# KV 命名空间绑定
[[kv_namespaces]]
binding = "SESSIONS"
id = "你的KV命名空间ID"
5. 构建并部署
# 构建项目
pnpm build
# 部署到 Cloudflare Workers
wrangler deploy
部署成功后会显示你的网站 URL!
四、配置自定义域名
通过 Cloudflare Dashboard(推荐)
- 确保你的域名已添加到 Cloudflare(免费)
- 进入 Workers & Pages → 选择你的项目
- Settings → Custom domains → Add custom domain
- 输入域名(如
blog.example.com) - Cloudflare 自动配置 DNS 和 SSL 证书
SSL/TLS:
- Cloudflare 自动提供免费 SSL 证书
- 自动续期,无需手动配置
- 支持 HTTPS 自动重定向
五、从 WordPress 迁移
EmDash 提供两种 WordPress 迁移方式:
方式 1:WXR 文件导入
- 在 WordPress 后台:工具 → 导出 → 选择”所有内容”
- 下载 WXR 文件
- 在 EmDash 后台
/admin→ 导入 → 上传 WXR 文件 - 系统会自动导入文章、页面和媒体文件
方式 2:EmDash Exporter 插件(推荐)
- 在 WordPress 安装 EmDash Exporter 插件
- 插件会创建一个安全的导出端点
- 在 EmDash 后台输入 WordPress 站点 URL 和应用密码
- 直接拉取所有内容(适合大型网站)
总结
恭喜!你已经学会了如何使用 EmDash 搭建博客。主要步骤回顾:
- ✅ 使用
npm create emdash@latest创建项目 - ✅ 本地运行
pnpm dev开发和测试 - ✅ 使用
wrangler deploy部署到 Cloudflare - ✅ 配置自定义域名(可选)
下一步:
- 在管理后台创建更多内容
- 自定义主题样式
- 开发自定义插件
- 配置 CI/CD 自动部署(可选)
相关文章: