Project · 进行中

个人博客与自动部署系统

基于 Astro 搭建的个人博客,完成 Markdown 内容管理、Gitee 自动部署、Nginx、HTTPS、Waline 评论与数据备份。

开始时间2026年8月20日
最近更新2026年9月4日
技术
AstroNginxWalineGitLinux

项目目标

搭建一个真正长期使用的个人博客,用来记录技术学习、项目过程和阶段性思考。

相比只把页面做出来,这个项目更关注完整的使用闭环:

  • 本地使用 Markdown 写文章;
  • 通过 Git 管理博客内容;
  • Push 后服务器自动发现更新并重新部署;
  • 使用独立域名和 HTTPS 对外访问;
  • 接入评论系统并保存评论数据;
  • 对重要数据进行自动备份。

整体架构

目前博客的主要链路为:

本地 Markdown
↓
Git / Gitee
↓
服务器定时检查更新
↓
Astro 自动构建
↓
Nginx
↓
chunripanghu.com

评论系统则独立运行:

博客文章
↓
comment.chunripanghu.com
↓
Nginx
↓
Waline
↓
SQLite

已实现功能

内容管理

  • 使用 Astro 构建静态博客;
  • Markdown / MDX 管理文章;
  • 支持文章分类、标签、归档和搜索;
  • 支持项目独立展示;
  • 开发了本地博客管理器辅助文章编辑。

自动部署

博客代码托管在 Gitee。

服务器每 5 分钟检查一次远程仓库:

本地写作
↓
git push
↓
服务器发现新提交
↓
git pull
↓
npm build
↓
同步到 Nginx
↓
网站自动更新

日常发布文章不再需要手动登录服务器。

域名与 HTTPS

目前已经完成:

  • 独立域名 chunripanghu.com;
  • ICP 备案;
  • DNS 解析;
  • Nginx 多站点配置;
  • Let’s Encrypt HTTPS;
  • Certbot 自动续期。

评论系统

使用 Waline 自托管评论系统:

  • Waline Server 部署在自己的服务器;
  • SQLite 保存评论数据;
  • systemd 后台常驻并开机启动;
  • 使用 comment.chunripanghu.com 独立子域名;
  • 支持评论后台管理。

数据备份

Waline 评论数据库每天自动备份:

SQLite
↓
在线备份
↓
完整性检查
↓
gzip 压缩
↓
保留 30 天

避免评论数据因为误操作丢失。

开发过程中解决的问题

这个项目实际遇到过不少部署问题,包括:

  • Nginx 多个网站共存时的端口与域名规划;
  • Gitee SSH 拉取与自动部署;
  • Astro 静态构建;
  • Waline SQLite 数据库初始化;
  • systemd 用户权限;
  • SSH 隧道临时测试评论后台;
  • DNS 与 ICP 备案;
  • HTTPS 与 Certbot;
  • 小内存服务器下 Astro Build 内存不足。

其中服务器只有约 1.6GB 内存,Astro 构建峰值接近 500MB。最终通过清理不再使用的 Java 服务释放常驻内存,使自动构建恢复正常。

当前状态

博客已经正式运行于:

https://chunripanghu.com

目前主要功能已经完成,后续将以内容维护和细节优化为主。