2026-09-28 12:10:49 +08:00
2026-09-25 12:20:31 +08:00
2026-07-12 13:27:05 +08:00
2026-09-25 11:16:06 +08:00
2026-09-25 11:16:06 +08:00
2026-07-12 13:27:05 +08:00

BlogFlare

Build Status

BlogFlare 是一个基于 SvelteKit 和 Cloudflare D1 构建的现代化、轻量级博客系统。它的设计灵感来源于 Typecho 的经典主题 VOID,旨在提供极速的访问体验和极低的托管成本。

✨ 特性

  • ⚡️ 极速体验: 采用 SvelteKit 框架,提供极致的页面加载速度和流畅的交互体验。
  • ☁️ 边缘计算架构: 完全依托于 Cloudflare 强大的全球网络。使用 Cloudflare Pages 进行前端托管,D1 数据库进行数据存储,实现真正的零运维与超低成本。
  • 📝 强大的 Markdown 支持: 内置 Markdown 渲染引擎(结合了 marked 和 highlight.js 等),并支持代码高亮与 DoIt 风格的提示块(Admonition)。
  • 🎨 优雅的设计: 界面灵感源自广受好评的 VOID 主题,排版舒适,注重纯粹的阅读体验。
  • 🏷️ 完善的内容管理: 包含文章发布、标签系统及用户认证的基础数据结构支持。

🚀 快速开始

Important

本项目强制使用 pnpm 作为包管理器,请勿使用 npm 或 yarn。

1. 克隆项目与安装依赖

git clone git@git.seahi.me:seahi/blogflare.git
cd blogflare
pnpm install

2. 初始化与同步数据库迁移

本项目全面采用 Cloudflare D1 规范化迁移链体系。不管是初次安装还是升级扩展,只需应用增量迁移(0000_initial.sql、0001_add_series.sql 等)即可自动实现幂等同步:

0000_initial.sql 同时兼容空数据库和旧版 schema.sql 已初始化的数据库。生产升级前仍应先创建 D1 备份;不要再对生产库执行已移除的破坏性 schema.sql。

本地开发环境同步:

pnpm run db:migrate:local
# 或直接运行 wrangler: pnpm exec wrangler d1 migrations apply blogflare-db --local

如果需要强制清空本地开发数据库并重新从初始状态加载迁移数据,可以运行:

pnpm run db:reset:local

部署与生产远端库同步:

部署更新或正式发布之前,请将完整的迁移链条应用到云端 D1 远端数据库中:

pnpm run db:migrate:remote
# 或直接运行 wrangler: pnpm exec wrangler d1 migrations apply blogflare-db --remote

3. 启动本地开发服务器

pnpm run dev

# 或者启动服务器并在浏览器中自动打开
pnpm run dev -- --open

4. 配置后台认证

生产环境的 /admin 路由强制验证 Cloudflare Access JWT。以下两个值已作为普通环境变量保存在 wrangler.jsonc,并在 Pages 部署时自动同步;它们是 Access 登录跳转和 JWT 中公开的校验标识,不是账号密码或访问凭证:

  • CF_ACCESS_TEAM_DOMAIN:https://hisland.cloudflareaccess.com
  • CF_ACCESS_AUD:保护 manual.seahi.me 的 Access Application Audience (AUD) Tag

本地生产预览也会读取 wrangler.jsonc 中的值;开发服务器保留仅限 dev 模式的本地认证旁路。Gitea 不再需要配置同名 Secrets。

📦 构建与部署

构建项目

pnpm run build

你可以使用 pnpm run preview 来预览生成的生产版本构建。

部署到 Cloudflare

项目已经配置了 @sveltejs/adapter-cloudflare,可以通过连接 GitHub/GitLab 仓库到 Cloudflare Pages 实现自动构建部署,或者使用 Wrangler CLI 进行手动发布:

pnpm exec wrangler pages deploy .svelte-kit/cloudflare

(注意:正式部署前请确保在 Cloudflare 仪表盘中创建了对应的 D1 数据库,并绑定到项目中)

🛠️ 核心技术栈

S
Description
一个基于 SvelteKit 和 Cloudflare D1 构建的现代化、轻量级博客系统
Readme
2.5 MiB
0 Stars 1 Watchers 0 Forks
Languages
Svelte 47%
TypeScript 41.7%
CSS 5.9%
Shell 4.4%
JavaScript 0.9%
Other 0.1%