背景
在日常学习过程中,经常需要把遇到的问题记录下来,记录自己的成长之路,所以一直想拥有一个完全属于自己的博客。其间也体验过wordpress
,无奈可定制化性不高,索性自己实现一个。
简介
本博客系统前端使用react
技术栈,后端使用midwayjs
技术栈。从运维到设计都是自己完成的。
技术选型
博客主页
- 考虑到
seo
和加载性能,使用服务端渲染框架nextjs
开发 - 公共组件提取到
@oc/design
UI组件库中 - 静态资源托管在阿里云cdn上
- 使用
drone
+K8S
持续集成
管理后台(宙斯系统)
- 使用从零搭建的webpack5+Typescript+React18方案
- UI组件库使用
antd
- 静态资源托管在阿里云cdn上
- 使用
drone
+K8S
持续集成 - 做了权限控制,可用测试账户
test/test
访问
服务端
- 使用
midwayjs
框架开发 - 数据库使用
mysql
,缓存使用redis
,全文搜索引擎和日志使用elasticsearch - 使用rabbitmq处理异步任务,使用
bull
处理 - 文件上传至阿里云oss保存
- 消息通知使用飞书消息
错误监控以及用户行为日志
- 使用gif上报日志到es中
- 采集方法参考此篇文章前端应用性能及错误监控设计方案
运维
- drone+ K8S 持续集成
- Grafana + Prometheus 对整个系统进行监控报警
数据库
- Mysql数据库生产环境使用阿里云rds服务
- redis、es等服务无备份只负责缓存和临时处理数据
特色
- 完全开源,可折腾性高。
- 博客支持暗黑模式,支持移动端
- 从组件库到后台管理系统都是从零搭的,实现了esbuild插件 babel插件处理组件库markdown转html文档,自动生成类型表格