Skip to content

Repository files navigation

晨's Blog:Drogon + GitHub 博客

在代码与晨光之间,记录 C++、网络与系统世界的思考。

晨's Blog 是一个采用 Hexo 式发布模型的 Drogon 动态博客。文章以本地 Markdown 文件为唯一内容源,提交并推送到 GitHub 后由 Actions 验证并构建容器。网站不提供文章管理后台,访客只能阅读内容。

架构

content/posts/*.md -> git push -> GitHub Actions -> GHCR 容器
  • Drogon:路由、服务端渲染、搜索、分类、标签、归档、RSS 和站点地图。
  • Markdown:文章唯一数据源,使用严格 JSON Front Matter。
  • GitHub:代码与内容版本、构建触发和容器发布。
  • PostgreSQL:不再是博客运行依赖。
  • 管理后台:不存在,也没有文章写入 API。

阅读端还提供文章目录、阅读进度、代码复制、上一篇/下一篇、相关文章、深浅主题、SEO 元数据和自定义 404。设计取舍与同类项目对比见 docs/BLOG_PROJECT_COMPARISON.md。

本地构建

$env:VCPKG_ROOT = 'G:\tool\vcpkg'
cmake --preset windows-debug
cmake --build --preset windows-debug
ctest --preset windows-debug

启动:

.\build\windows-debug\Debug\drogon_blog.exe config\config.dev.json

访问 http://127.0.0.1:8080,健康检查为 http://127.0.0.1:8080/health。

也可以使用 Docker:

docker compose up --build -d

发布文章

  1. 在 content/posts 新建 <slug>.md,格式见 content/README.md。
  2. 本地启动博客并检查文章、分类、标签和代码块。
  3. 提交并推送:git add content/posts && git commit && git push。
  4. .github/workflows/publish.yml 会验证 Docker 构建,并在 main 分支推送时发布到 ghcr.io/<owner>/<repo>。
  5. 部署主机从 GHCR 拉取新镜像并重启后,文章才会显示。

绑定 GitHub

复制 config/config.example.json 的 GitHub 字段到实际配置:

  • site.github.repository_url:仓库网页地址。
  • site.github.branch:文章所在分支,默认 main。 GitHub Pages 不能运行 Drogon;Drogon 容器需要部署在支持 Docker 的主机上。

About

No description, website, or topics provided.

Resources

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages