我搭建这个博客,主要是为了记录学习过程和技术实践。相比使用功能很多的现成博客系统,我更希望它结构简单、访问稳定,并且能够让我理解一个网站从源码到上线的大致过程。
这篇文章只记录整体思路和当前配置,不涉及服务器地址、账号、目录结构和其他敏感运维信息。
当前配置
目前博客使用的主要配置如下:
| 项目 | 当前选择 |
|---|---|
| 前端框架 | Next.js 16、React 19、TypeScript |
| 文章格式 | Markdown |
| 页面类型 | 静态生成 |
| 原服务器 | 1 核 1G Ubuntu + Nginx,迁移期间保留作回退 |
| 域名与网络 | Cloudflare DNS |
| 版本管理 | GitHub 私有仓库 |
| 内容后台 | Pages CMS |
| 网站托管 | Cloudflare Pages |
| 访问统计 | Cloudflare Web Analytics |
静态生成很适合当前博客。网站发布前会把文章和页面生成 HTML、CSS、JavaScript 等文件,访客访问时不需要实时查询数据库,因此服务器压力较小,也更容易维护。
网站开发
网站前端使用 Next.js 和 React 搭建,目前包括:
- 首页与文章列表;
- 文章详情、归档、分类和标签;
- 站内搜索;
- 明暗模式;
- 手机端响应式布局;
- RSS 和 sitemap;
- Markdown 代码高亮与代码复制。
文章保存在项目的内容目录中,每篇文章使用一个 Markdown 文件。标题、日期、摘要、分类、标签、封面和草稿状态写在文章顶部,正文仍然使用普通 Markdown。
当文章设置为草稿时,它不会出现在首页、搜索、归档、RSS 或 sitemap 中。这样可以先保存内容,确认完成后再公开。
当前部署方式
博客源码保存在 GitHub 私有仓库中,并由 Cloudflare Pages 自动构建和发布。每次提交到主分支后,Cloudflare 都会生成新的静态网站版本;构建失败时不会覆盖当前正常版本。
整体访问过程可以简单理解为:
Pages CMS → GitHub → Cloudflare Pages → 博客页面
正式域名 quming.de5.net 已切换到 Cloudflare Pages,pages.dev 地址继续作为预览和排障入口。迁移完成后仍暂时保留 Ubuntu 与 Nginx,方便必要时回退。
使用到的工具
在开发和维护过程中,我主要使用了以下工具:
- Next.js:生成网站页面和路由;
- React:实现搜索、菜单和主题切换等交互;
- Markdown:编写文章;
- Git:记录网站和文章的修改历史;
- Nginx:在迁移期间保留原静态网站;
- Cloudflare:处理自动构建、静态托管、全球分发和访问统计;
- Pages CMS:作为可视化文章与站点文字编辑后台;
- Codex:协助整理需求、修改代码和检查构建结果。
服务器日常维护
服务器维护以简单、稳定为主,日常主要关注:
- 系统负载、内存和磁盘空间;
- 系统与 Nginx 的运行状态;
- 必要的安全更新;
- 网站访问和错误日志;
- 防火墙与对外服务范围;
- 网站版本备份和故障回滚。
服务器的详细地址、登录方式、内部目录和安全配置不会记录在公开文章中。涉及重大更新时,我会先保留快照或旧版本,再进行修改。
自动发布流程
为了减少重复操作,网站已经接入 GitHub 私有仓库、Cloudflare Pages 和 Pages CMS。
现在的文章发布流程是:
Pages CMS 写文章 → 保存到 GitHub → Cloudflare 自动构建并发布
新增文章和修改首页文字可以直接在可视化后台完成,不再需要每次手动构建、压缩和上传网站。
Cloudflare Pages 将负责静态网站托管,Cloudflare Web Analytics 则用于查看每日访问趋势、热门页面和访问来源。网站前台不会公开访问数据。
GitHub 仓库、Cloudflare Pages 项目、在线内容编辑、访问统计和正式域名均已启用。
小结
目前这个博客已经完成了基本页面、Markdown 文章系统、移动端适配、自动发布和正式域名迁移。下一步主要是继续完善内容,并通过访问统计观察页面使用情况。
对我来说,搭建博客不只是得到一个网站,也是在实际操作中学习前端开发、Linux、Nginx、域名解析和网站运维。后续遇到值得记录的问题,我会继续整理成新的手记。
