我的个人技术博客搭建记录文章封面

博客建设 / ARTICLE

我的个人技术博客搭建记录

简单记录这个博客从页面开发、文章管理到服务器部署的搭建过程,以及目前使用的主要工具。

我搭建这个博客,主要是为了记录学习过程和技术实践。相比使用功能很多的现成博客系统,我更希望它结构简单、访问稳定,并且能够让我理解一个网站从源码到上线的大致过程。

这篇文章只记录整体思路和当前配置,不涉及服务器地址、账号、目录结构和其他敏感运维信息。

当前配置

目前博客使用的主要配置如下:

项目 当前选择
前端框架 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、域名解析和网站运维。后续遇到值得记录的问题,我会继续整理成新的手记。