项目迁移记录:从 Vercel 到 GitHub + Cloudflare
背景
之前我的项目(个人主页、博客、ARG 游戏以及模拟 OS 页面)主要部署在 Vercel,并配合一台自有服务器使用。随着项目逐渐增多,这种方式开始显得有些混乱:静态资源和后端逻辑混在一起,服务器也没有被很好地利用。
这次我对整体架构做了一次整理,把“该放哪的东西”重新归位。
调整思路
核心其实很简单:
静态资源交给 CDN,服务器只负责后端和数据。
本次调整内容
1. 前端整体迁移
-
所有静态项目迁移至 GitHub,并通过 Cloudflare Pages 部署
-
包括:
- 个人主页
- 博客
- ARG 游戏
- 模拟 OS 页面
这样做之后,部署流程变成:
- 本地开发 → push 到 GitHub → 自动构建部署
不再需要手动上传或维护服务器环境。
2. 主页重构为 Astro
- 主页迁移至 Astro
- 采用以静态生成(SSG)为主的方式构建页面
- 尽可能减少客户端 JavaScript
主要目的:
- 提升首屏加载速度
- 降低不必要的客户端渲染开销
- 保持结构简单、可维护
3. 域名与访问
-
使用 Cloudflare 统一管理域名与解析
-
不同项目通过子域名区分,例如:
yourdomain.com→ 主页arg.yourdomain.com→ ARG 游戏os.yourdomain.com→ 模拟 OS
4. 自有服务器重新定位
原本服务器同时承担静态资源和部分后端功能,现在做了明确拆分。
目前只保留以下用途:
- 后端 API(后续扩展)
- 数据存储
- 项目备份
不再部署任何静态页面。
当前架构
[ GitHub + Cloudflare Pages ]
↓
静态前端(Blog / Home / ARG / OS)
[ 自有服务器(Oracle Free Tier) ]
↓
API / 数据 / 备份
一些实际感受
这次调整之后,最大的变化是“简单了很多”。
- 前端部署几乎不用管,提交代码就自动上线
- 不再需要折腾服务器上的 Nginx、证书之类的东西
- 服务器可以专心跑真正需要它的部分
整体也更接近常见的前后端分离架构,后面要加功能会更自然。
后续计划
- 增加简单的后端 API(可能用 Rust)
- 给博客加评论系统
- 为 ARG 游戏增加进度存储或排行榜
- 做一套自动备份策略
这次迁移不算复杂,但把结构理顺之后,后面开发会轻松很多。