服务器VPS促销信息一览 - 支持搬瓦工 CSTServer RackNerd CloudCone DMIT

购买链接是带aff的, 介意勿用, 谢谢.

链接

首页

RackNerd

CloudCone

搬瓦工

DMIT

示意图

开发结构

暂不开源, 这里记录架构供参考

花了半天时间, 在cursor的帮助下编写完成

go + sqlite + nextjs (SSR) + shadcn

后端支持API解析获取, 定时任务, 自定义VPS提供商, 自定义促销信息, 页面添加和多数据源管理等

前端支持动态meta, 促销码快捷复制等

登录使用CZL Connect的OAuth2.0授权, 在CZL Connect进行鉴权, 本系统不存user表.

后端示例图

后续优化记录

  1. 数据库改成mysql, 因为需要并发写入
  2. 描述, 标题等, 接入了ai解析, 使用CZLOapi
  3. 新增了whmcs的获取方法, 通过pid就能获取到销售信息
  4. 新增匹配多个"无货"信息, 通过获取页面内容, 定位某个div或者标题是否包含关键词来判断
  5. 主机商的描述支持了markdown, 可以简单显示一些厂商信息
  6. 多个api请求, 添加了随机延时, 避免429
  7. 购买链接改成了/buy/[id], 后端进行跳转, 顺便加个跳转页面
  8. 添加umami的事件跟踪
  9. 前端显示顺序进行排序, 先"有货-无货", 然后在两者内部进行价格对比, 考虑到"币种", "计费周期"等因素, 先换算后对比
  10. 促销信息详情里支持模板语法, 可以结合生成对应描述
  11. 管理api和公开api路由分开
  12. gorm统一进行数据库操作, 硬删除使用sql语句
  13. 备注支持"+ xxx"方法, 可以显示在AI生成的备注之前
  14. 从分页改成"加载更多"
  15. 数据源逻辑重构, 丰富多种方法
  16. 前端展示从表改成card
  17. 接入内存缓存, 优化性能

感想

  1. 不要偷懒, 最好一步到位使用mysql或者pgsql, 对于多写入的, sqlite不适合, 并且迁移也挺麻烦, 涉及到时间格式的问题;
  2. 写个框架简单, 主要还是边用边优化