惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

SecWiki News
SecWiki News
I
InfoQ
The Cloudflare Blog
人人都是产品经理
人人都是产品经理
博客园 - Franky
T
Tailwind CSS Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
博客园_首页
罗磊的独立博客
V
V2EX
李成银的技术随笔
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
True Tiger Recordings
Vercel News
Vercel News
Cyberwarzone
Cyberwarzone
Cisco Talos Blog
Cisco Talos Blog
F
Fox-IT International blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
M
Microsoft Research Blog - Microsoft Research
Know Your Adversary
Know Your Adversary
爱范儿
爱范儿
The Register - Security
The Register - Security
G
Google Developers Blog
The Hacker News
The Hacker News
Malwarebytes
Malwarebytes
S
Securelist
博客园 - 三生石上(FineUI控件)
Jina AI
Jina AI
T
Threat Research - Cisco Blogs
T
The Exploit Database - CXSecurity.com
S
SegmentFault 最新的问题
博客园 - 叶小钗
F
Fortinet All Blogs
Apple Machine Learning Research
Apple Machine Learning Research
宝玉的分享
宝玉的分享
博客园 - 聂微东
T
Threatpost
博客园 - 【当耐特】
D
Docker
P
Privacy & Cybersecurity Law Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
G
GRAHAM CLULEY
V
Visual Studio Blog
C
Cisco Blogs
IT之家
IT之家
S
Security Archives - TechRepublic
Latest news
Latest news
阮一峰的网络日志
阮一峰的网络日志

pseudoyu

周报 #109 - Be a whole person 周报 #108 - AI 与创作的困境 周报 #107 - 基于 Multica 与 Impeccable 的开发/设计工作流 周报 #106 - OpenClaw 实践、搬家与生活的能量 周报 #105 - 打破无聊的社会 2025 年末回顾 - Anything different is good 周报 #104 - 被遗忘的生活一隅 周报 #103 - 工作随想与被吞噬的生活 周报 #102 - 我是如何使用 AI 的 周报 #101 - 消失了三个月,我的生活发生了什么变化 周报 #100 - 过去这十年 周报 #99 - 离开 RSS3,迷茫与重启人生 周报 #98 - 生活之书与 Agentic Coding 周报 #97 - 日本旅行小记 28 岁的自白:去找寻自己 周报 #96 - 基于 Roo Code/Cursor 的 iOS 开发工作流 周报 #95 - All AI 与 No AI 周报 #94 - 生活的界限与真实感 周报 #93 - 婚礼纪录片与失落的电影院 周报 #92 - 数码产品 Porn 与断舍离 周报 #91 - 一席、消失的时代与自由意志 周报 #90 - OVH 服务器、Coolify 与对 AI Coding 的思考 周报 #89 - 博客改版与 TheWan App 发布 周报 #88 - 方大同、《回留》与人生清单 周报 #87 - 我们主持了自己的宝可梦婚礼,还为它办了一个展 周报 #86 - 用影像打败时间 周报 #85 - 京华烟云 Moment in Peking 周报 #84 - 想起他们 Echos of Reverie 周报 #83 - 年初收纳(房间、设备、服务、软件) 周报 #82 - Brand New Year 与写日记 2024 年末回顾 - 不完美的日子 周报 #81 - Engaged -> Married 与时间的尺度 周报 #80 - 关于求婚、爱情与婚姻 求婚誓言 | 爱的本质是被看见 周报 #79 - 清迈旅居、曼谷之行与 Follow RSSHub 开发实践 #01:Telegram 频道 RSS 订阅实现与部署方案 Follow —— 信息获取的另一种形态 周报 #78 - NAS、Chromebook 与 Zeabur 折腾小记 周报 #77 - 一间只属于自己的房间(对亲密关系的思考) 周报 #76 - 关于 Adulting 的思考 周报 #75 - 回答 Dayu 关于独立博客的 9 个问题 周报 #74 - 清迈异闻录 周报 #73 - 《社交网络》、Ego 与中秋的现充生活 周报 #72 - 滑板体验、Rust Conf 与 Follow 公测(含邀请码) 周报 #71 - Indie App 体验计划 周报 #70 - 消失的附近,Burnout 与 Boreout 周报 #69 - AI Coding 体验与学习的源动力 周报 #68 - 关于写博客这件事与我生活的色彩 使用 GoatCounter 与 Zeabur 搭建网站数据统计系统 周报 #67 - 使用 follow 重塑我的信息输入系统 周报 #66 - 10x 工程师、技术热情与个人工具箱 从零开始搭建你的免费博客评论系统(Remark42 + fly.io) 周报 #65 - Adventure X 体验、Apple Notes 笔记实践与 EpubKit 周报 #64 - 生活在此处(《斯通纳》与《Normal People》) 使用 WebP Cloud 与 Cloudflare WAF 为你的图床添加隐私和版权保护 当云服务器崩溃时,我是如何救援重要数据的 周报 #63 - 不愉快的订花经历、商家和消费者与日渐 AI 化的人 从零开始搭建你的免费图床系统(Cloudflare R2 + WebP Cloud) 2024 年了,我的博客有了什么变化 周报 #62 - 香港之行、5am club 计划与 Rust 学习 周报 #61 - 好朋友的婚礼与对婚姻的思考 27 岁的自白:成长是一件很扫兴的事 周报 #60 - 虫子旁、教育理念与 EpubKit 周报 #59 - 沙漠之行、家庭与家人 周报 #58 - 远程工作这一年 周报 #57 - 生活在别处(巴厘岛之行) 周报 #56 - 面基 Randy 与考科目二 周报 #55 - 油画体验、博客系统升级与对 self-hosting 的思考 周报 #54 - 漂流计划、钱包被盗与 Home Server 周报 #53 - 空白的三个月、生活漂流与春节 周报 #52 - 自谦型人格与感情的另一个视角 周报 #51 - 追星小鹿 Lawrence 与生病 周报 #50 - 天坛漫步、重拾阅读和费曼学习法 周报 #49 - 烧焦的键盘、庞贝神话展、健康调整与神奇的梦 周报 #48 - 内蒙之行、清迈游民、重启的周报与生活 周报 #47 - 采访、拳击与工作状态 周报 #46 - 告别长发、周报初心与合约开发 个人信息获取与知识管理系统(Heptabase + Logseq + Readwise) 周报 #45 - 读书笔记、知识管理与双城生活 周报 #44 - 静寂工人、xLog 与日常 周报 #43 - In the Mood for Love 周报 #42 - 感情观、生活状态与自我 周报 #41 - 生日的仪式感、时间管理与北京之行 26 岁的自白:推石头的人 周报 #40 - 开源之夏、代码之外与流逝的睡眠 周报 #39 - 初患新冠、过去的心绪与失而复得的分享欲 周报 #38 - Foundry、Logseq 与 Surge Ponte 周报 #37 - 浮生半月闲( 武汉 | 香港 | 五月天) 周报 #36 - 肠胃炎、捏捏近况与新的旅途 周报 #35 - 登报、搬家和生病的捏捏 周报 #34 - Don't Stop the Clocks 周报 #33 - 北京 x 故事 x 离别 周报 #32 - 武汉、久别重逢与流动的心绪 周报 #31 - 开源、前端开发与 ChatGPT 实践 周报 #30 - 开源预算、写作初心与对技术的谦卑 Cosmos 区块链架构与 Tendermint 共识机制 周报 #29 - 日语学习经验、Steam Deck 与居酒屋 周报 #28 - Mastodon、故乡与捉迷藏的猫 周报 #27 - 何以为家 周报 #26 - 博客、客制化键盘和新服务器
免费的个人博客系统搭建及部署解决方案(Hugo + Cusdis)
pseudoyu@connect.hku.hk (pseudoyu) · 2022-03-23 · via pseudoyu

前言

Pseudoyu 是我的个人博客网站,最早使用 WordPress 搭建在自己的 Vultr vps 上,因为网络访问比较慢所以迁移到了腾讯云服务器上并且进行备案,虽然访问速度有提升,但是发布博客的流程很繁琐,服务器的维护长期也是一笔不小的开支。

因此,一直在探索能够既能保障国内外访问体验,又能够托管在一些平台上,实现部署和发布流程的最优化体验。后来也一直不断在改善博客系统搭建和发布流程,迄今为止对自己的全流程解决方案还是比较满意的,虽然部署和搭建上需要进行一些配置,但后续更新维护都很方便,因此,本文将这套免费、开源的个人博客系统搭建及部署解决方案进行全流程记录,希望对大家有所帮助。

[2024-06-30 更新]

时隔两年,文章中许多方案已经过时(但依然可用),我更新了系列新的文章,阐述了我与 2024 年 6 月的最新博客解决方案,可供大家参考。

解决方案

博客平台

目前已经有很多比较成熟的博客平台,如前文所提到的 WordPress,虽然功能强大,但对于个人博客站点来说有些太重了,也不够酷,经过一番调研,最后选择了 Hugo 这个静态网站生成器。

Hugo 是用 Go 实现的博客工具,采用 Markdown 进行文章编辑,自动生成静态站点文件,支持丰富的主题配置,也可以通过 js 嵌入像是评论系统等插件,高度定制化。除了 Hugo 外, 还有 Gatsby、Jekyll、Hexo、Ghost 等选择,实现和使用都差不多,可以根据自己的偏好进行选择。

yu_blog_homepage_20240629

因为 Hugo 开源社区中 hugo-theme-den 完全在我的审美上,所以我选择了 Hugo 并在这个主题基础上进行了一些个人定制化改造和配置,满足了自己的需求。

博客托管

静态博客需要托管在一个平台上才能够实现外部访问,可以是自己的 vps 主机,也可以是 Cloudflare PagesGitHub Pages,或者是 Vercel 这样的 Serverless 平台,后两者都可以通过 GitHub 仓库进行关联。

我选择了 GitHub Pages 这种方式,完全免费且和 GitHub 代码仓库无缝对接,能够满足我博客源文件备份和版本管理的需求,还可以通过强大且同样免费的 GitHub Action 实现各种 CI/CD 的功能,如提交/更新博客源文件后自动构建生成博客静态文件并推送到 GitHub Pages 仓库进行部署,还可以配合一些定时任务实现自我介绍页面更新等功能。

[2024-06-30 更新]

由于我的域名本身托管在 Cloudflare,于是我尝试了 Cloudflare Pages,这是 Cloudflare 推出的静态网站托管服务,完全免费(至少我至今没有超过免费额度),且可以直接连接 GitHub 代码仓库,并提供了市面上主流的网站构建工具,如 Next.js、Astro、Hugo 等,可以实现和 GitHub Pages 一样的自动化部署功能并且提供更优的访问线路,是目前更好的解决方案。

博客域名

我们可以通过域名解析配置自己的域名,如我的网站就是解析了 pseudoyu.com 这个域名。

我的域名是在 NameSilo 购买的,并通过 Cloudflare 平台进行 CDN 加速,提升访问体验,并实现了域名重定向等功能,关于博客访问优化这一点后续会单独讲解。

[2022-05-29 更新]

我后来为了方便管理,把 NameSilo 域名迁移到了 Cloudflare,大家可以直接在 Cloudflare 上购买,教程包含在《Hugo + GitHub Action,搭建你的博客自动发布系统》中。

访客分析

作为一个持续更新运营的博客平台,我们一定很好奇我们哪篇文章阅读量最高、哪个关键词检索最频繁等,帮助我们专注在更有价值的内容创作与分享上,类似的工具也很多,我选择了 splitbeeGoogle Console 来统计分析我的访客信息与搜索权重,此外,Cloudflare 也能够对网络流量进行分析,不过因为有很多网络无关流量,如爬虫等,所以参考性没有前两者强。

splitbee_statistics

google_console_performance

cloudflare_statistics

[2022-05-21 更新]

除了上述直接服务的平台外,我还部署了一个可代替 Google Analytics 的开源服务 umami,实现了访客数据的实时监控,教程为:《从零开始搭建一个免费的个人博客数据统计系统(umami + Vercel + Heroku)》。

[2024-06-30 更新]

后来改为了自部署「goatcounter」这一新的数据统计服务。

评论系统

一个博客系统当然需要评论系统,像 WordPress 这种自身具备了评论插件,而静态博客则需要自己对接一些评论系统,我最开始选择的是第三方的 Disqus,简单易用,但是会自带很多广告推广,也不够简约,后来选择了 RandyCusdis,一个轻量级的开源评论系统解决方案(从名字看也是深受 Disqus 其害忍不住自己开坑了哈哈),我通过 Vercel 自建,并链接了 Heroku 的免费 PostgreSQL 数据库进行评论数据存储,实现了免费、稳定的评论系统,还支持邮件推送、Telegram Bot 提醒/快捷回复等功能。

cusdis_overview

[2022-05-24 更新]

Cusdis 部署在 Railway 平台教程已更新:《轻量级开源免费博客评论系统解决方案 (Cusdis + Railway)》。

[2024-06-30 更新]

后来改为了自部署「Remark42」这一新的评论系统。

图片管理

日常发布的文章中可能会涉及很多图片,将图片存储在静态博客源项目仓库中的话会使项目过于庞大,并且很难二次使用和管理,因此,我同样选择了 GitHub 作为图床工具,并使用 PicGo 客户端进行图床管理,在上传前使用 TinyPNG 进行压缩,并使用 jsDelivr 服务为 GitHub 图床进行加速,这样就可以将所有图片存储在 GitHub 图床仓库,文章中以外链的方式嵌入图片。

[2024-06-30 更新]

后来使用了 Cloudflare R2 + WebP Cloud 代理优化 + PicGo 这一套图床解决方案。

发布流程

通常 GitHub Pages 发布博客需要本地 hugo 命令生成静态站点文件目录,cdpublic 目录,并使用 git addgit commitgit push 等命令提交到 GitHub Pages 仓库,实现博客的发布,因为每次更新都需要进行重复操作,且博客源 Markdown 文件无法进行很好的备份和版本管理。

因此,我建立了一个博客源文件仓库,通过 GitHub Action 实现了一套自动化发布流程,仅需将 Hugo 博客源文件上传至 GitHub 仓库,会自动触发 CI 生成静态站点文件并推送到 GitHub Pages 仓库。

[2022-05-29 更新]

Hugo 搭建与 GitHub Action 配置教程已更新:《Hugo + GitHub Action,搭建你的博客自动发布系统

[2024-06-30 更新]

新增了 Cloudflare Pages 部署方案:《Hugo + GitHub Action,搭建你的博客自动发布系统

发布流程

总结

以上就是我的个人博客解决方案,前期搭建有些繁琐,但一番折腾后,完美实现了我的需求,关于整个过程的详细步骤,我将会分多篇文章进行讲解,请持续关注,希望能够对大家有所帮助。

[2022-06-02 更新]

系列教程核心部分已完成:

除此之外,如果不想使用 Hugo 这类静态博客,还可以通过 Ghost 来比较方便地搭建一下:

参考资料

  1. Hugo 官方网站
  2. hugo-theme-den 主题仓库
  3. GitHub Pages 官方网站
  4. GitHub Action 官方网站
  5. Vercel 官方网站
  6. Cusdis 官方网站
  7. Heroku 官方网站
  8. PicGo 官方网站
  9. splitbee 官方网站
  10. Google Console 官方网站
  11. Cloudflare 官方网站