背景

今年被几个订阅扣了不少钱,所以想找一个订阅管理软件,但是没有找到满意的,大多数订阅管理软件中每一条记录都只能有一个价格,一个连续周期。

但是我有不少订阅的价格一直在变化(从折扣到原价,改变订阅套餐等)。我希望能够在一个订阅里管理价格的变化,并能统计相关支出和提醒。

所以打算自己写一个。然后开始考虑是做一个APP还是小程序。相比较而言的话,小程序的开发成本更低,而且不需要用户安装,并且现在APP通知有点被滥用,可能提醒效果还不如小程序,所以决定先做一个小程序。

开发体验

小程序从2018年开始就已经火了,现在都已经2024年了,相关文档,教程,工具都已经很成熟了。所以整体开发体验算是相当流畅了(抛开测试部份)。

不过小程序认证以及版本审核还是有点繁琐的。如果是企业帐号应该会方便不少,但是个人的话,只能跟着相关条款修改了。

开发工具

用的都是比较常见的技术栈了。

  • 前端

    • 微信开发者工具
  • 后端

    • App: Nodejs + Nestjs
    • Data: Python + FastAPI
  • 数据库

    • Sqlite
    • MongoDB
  • 缓存

    • Dragonfly (Redis)
  • 部署

    • Kubernetes (测试环境)
    • Docker Compose (生产环境)

生产环境架构

部署架构图

部署在一台阿里云的机器上,使用Docker Compose管理容器,毕竟只有一个机器,Kubernetes有点大材小用。

使用Traefik作为反向代理,同时也是HTTPS证书管理工具(Let’s encrypt)。

部署了一个MongoDB Express,并没有向外暴露,方便查看和管理MongoDB。

开发流程

开发流程

毕竟是个小项目,所以开发流程尽量简单。利用Github Actions做CI/CD,每次push都会自动运行测试,然后release分支会打包Image并推送到Docker Hub。

然后在Kubernetes(测试环境)上拉取最新的Image做测试。最后没问题再部署到生产环境。

其他

暂时先分享这么多,贴上一个小程序的二维码,万一被有缘人看见了,欢迎体验。

小程序二维码