【独立开发日记 001】白嫖服务器搭建个人站点

【独立开发日记 001】白嫖服务器搭建个人站点

今天站点(http://xtdbt.com)终于搞完上线了。看着流程跑通,站点正常访问的那一刻,还是挺高兴的。

站点用的开源项目:https://github.com/shadcn-ui/taxonomy,想着顺便可以再熟悉下React和Next.js.

项目部署的选择

项目部署其实最早我想过直接用 Vercel,毕竟大家都在推,一键部署方便,还不用搞服务器。但作为一个写了 10 年后端的人,那种"代码跑在别人的黑盒子里"的感觉,总让我不太踏实。正好周末有时间,折腾一下。

尤其是考虑到以后想做 Micro-SaaS,可能会挂载一些 Python 脚本,或者跑一些稍微耗内存的任务。如果全靠 Serverless,一旦流量起来,那个账单可能会有点不可控(虽然我现在还没流量 😂)。

纠结了一会儿,还是决定走一条"笨路子":AWS EC2 + Docker + CI/CD

这听起来有点"反潮流",毕竟现在都在推 Serverless。但对我来说,这是最可控的方案:

1. 算力握在手里

Docker 容器跑起来,无论我想换语言、装依赖,还是迁移到腾讯云/阿里云,都是一行命令的事。有了服务器,也可以很方便地在服务跑一些任务。

2. 成本透明

搞到了 AWS 的抵扣金,配合 Cloudflare 和 Supabase 的免费层,目前的服务器成本确实压到了 $0,短时间也不需要更好的配置。

部署过程

过程确实比 Vercel 痛苦多了。特别是 node 版本这块,构建时环境变量报错的问题,卡了我半天。中间一度想放弃换个框架,或者回去用 Vercel 算了。

但解决完最后一个报错,看到流水线全绿的时候,那种掌控感又回来了。

技术栈清单

我也把目前用到的服务和组件整理了下。一个老开发对"稳定性"和"折腾"的一点执念。

  • 计算: AWS EC2 (t3.small) —— 利用抵扣金覆盖成本,性能吊打免费的 micro 机型。
  • 网关: Cloudflare + Nginx Proxy Manager —— 自动续期 SSL,防攻击。
  • 数据库: Supabase (PostgreSQL) —— 免费订阅足够用大,且支持 Transaction 模式。
  • 缓存: Upstash (Redis) —— Serverless Redis,做限流和简单缓存。
  • 部署: GitHub Actions —— 自动化编译、打镜像、push、SSH 服务器、拉镜像、启动。

网站主页截图

网站主页截图

#独立开发 #Nextjs #AWS