← 返回首页

Cloudflare Workers 博客系统部署备忘录

# Cloudflare Workers 博客系统部署备忘录
本文档记录了基于 Cloudflare Workers、D1 数据库 和 KV 存储构建的轻量级博客系统的完整部署流程与配置说明。

一、 系统架构概览


* 运行环境:Cloudflare Workers (Edge Runtime)
* 数据库:Cloudflare D1 (SQLite)
* 配置存储:Cloudflare KV
* 前端样式:浅蓝色科技风三栏布局
* 主要功能:文章发布、分类管理、"随心说"(微动态)、评论系统、全站搜索、Turnstile 人机验证。
---

二、 数据库配置 (D1)


首先需要在 Cloudflare 控制台创建 D1 数据库并执行初始化 SQL。

1. 创建数据库


1. 登录 Cloudflare Dashboard。
2. 进入 Workers & Pages -> D1 SQL Database
3. 点击 Create database,输入数据库名称(例如:blog_db)。
4. 记录下生成的 Database ID,稍后绑定需要用到。

2. 执行 SQL 建表语句


点击进入创建好的数据库,选择 Console 标签页,依次执行以下 SQL 语句:
创建文章表
`sql
CREATE TABLE IF NOT EXISTS posts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
content TEXT,
cover_image TEXT,
category_id INTEGER,
password TEXT,
type TEXT DEFAULT 'post',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
`
创建分类表
`sql
CREATE TABLE IF NOT EXISTS categories (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT,
slug TEXT
);
`
创建评论表
`sql
CREATE TABLE IF NOT EXISTS comments (
id INTEGER PRIMARY KEY AUTOINCREMENT,
post_id INTEGER NOT NULL,
author_name TEXT NOT NULL,
content TEXT NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
status TEXT DEFAULT 'approved'
);
`
---

三、 KV 存储配置


KV 用于存储博客的基础配置信息(如站点名称、管理员密码等)。

1. 创建 KV 命名空间


1. 进入 Workers & Pages -> KV
2. 点击 Create a namespace,输入名称(例如:blog_config)。
3. 记录下生成的 Namespace ID

2. 绑定变量


1. 进入 Workers & Pages -> Overview
2. 点击 Create Worker(如果已创建则点击进入编辑)。
3. 点击 Settings -> Variables
4. 在 KV Namespace Bindings 区域添加绑定:
* Variable name: CONFIG (必须完全一致)
* KV namespace: 选择刚才创建的 blog_config
5. 在 D1 Database Bindings 区域添加绑定:
* Variable name: DB (必须完全一致)
* D1 database: 选择刚才创建的 blog_db
---

四、 系统参数设置 (KV 键值对)


进入 Cloudflare KV 页面,选择你的命名空间,手动添加以下键值对。
| Key (键) | Value (值) | 说明 |
| :--- | :--- | :--- |
| site_name | 你的博客名称 | 显示在左上角和浏览器标题 |
| site_desc | 你的博客介绍 | 显示在名称下方 |
| footer_text | Copyright © 2024... | 页脚版权信息 |
| admin_user | admin | 后台管理员账号 |
| admin_pass | yourpassword | 后台管理员密码 (建议设置复杂密码) |
| page_size | 10 | 首页每页显示文章数量 |
| turnstile_site_key | Your_Site_Key | Cloudflare Turnstile 站点密钥 (可选) |
| turnstile_secret_key | Your_Secret_Key | Cloudflare Turnstile 密钥 (可选) |
> 注意:如果暂时不想使用评论验证码,可以暂时不添加 turnstile_ 开头的两个键,或者留空。代码会自动处理。
---

五、 功能配置说明


1. Turnstile 人机验证配置 (推荐)


为了防止垃圾评论,建议开启此项。
1. 访问 [Cloudflare Turnstile](https://dash.cloudflare.com/?to=/:account/turnstile)。
2. 点击 Add site,域名填写你的博客域名。
3. 获取 Site KeySecret Key
4. 将其填入 KV 的 turnstile_site_keyturnstile_secret_key 中。

2. 后台管理


* 访问地址你的域名/admin
* 登录:使用 KV 中设置的 admin_useradmin_pass 登录。
* 功能
* 发布文章/随心说。
* 管理分类(支持删除,删除后文章归入“其他”)。
* 修改文章分类。
* 删除评论。

3. "随心说"功能


* 后台发布内容时,选择类型为 "随心说"
* 该内容会出现在右侧边栏流中,且不会显示在首页文章列表。
* 支持直接展示 Markdown 格式。

4. 文章加密


* 发布文章时填写“密码”字段。
* 访问该文章时需要输入密码才能查看。
---

六、 常见问题排查


1. 发布文章后提示乱码
* 确保代码中所有 Response 返回头部都包含 charset=utf-8。最新版代码已修复此问题。
2. 评论提示“人机验证失败”
* 检查 KV 中是否正确配置了 Turnstile 密钥。
* 如果不需要验证,删除 KV 中的 turnstile_secret_key 即可关闭验证。
3. 首页只显示几篇文章,没有翻页
* 检查 KV 中的 page_size 设置。
* 确保文章总数超过了 page_size,否则不会显示分页按钮。
4. 左侧分类栏“其他”是什么
* 用于展示所有未设置分类的文章。
* 当你删除某个分类时,该分类下的文章也会自动归入“其他”。

评论 (0)

暂无评论,快来抢沙发吧!

发表评论