RICKEYGONG
V2EX  ›  问与答

如何优雅的在个人服务器部署静态博客?

By RICKEYGONG at 2025 年 9 月 19 日 · 5288 次点击

我现在的部署步骤:

  1. 本地生成静态文件,打包成压缩包
  2. 登录服务器(装了 1Panel 面板)
  3. 浏览器登录面板,上传/解压 压缩包到站点目录

P.S: 目前博客是基于 Hugo 搭建


我能想到比较优雅的做法:

  1. 博客代码传到 Github ,
  2. 服务器安装 Hugo 、Git
  3. 本地写完后推送到 Github 上
  4. 本地打开 Visual Studio Code ,使用 Romote SSH 登录服务器,拉取 Github 代码,然后再编译生成博客静态文件

V 友们,还有什么方式部署静态博客吗?求推荐

46 条回复  •  2025-09-22 15:09:00 +08:00
stinkytofux
   1
stinkytofux  
   2025 年 9 月 19 日
你在服务器上写一个 api 接口拉取 git 代码, 利用 Github 的 Webhook 推送功能, 当 commit 推送到 github 的时候, 自动就完成部署了, 只需一步操作.

当然如果你不想自己写这样的接口, 可以用 Jenkins
opengps
   2
opengps  
   2025 年 9 月 19 日
服务器都用了,为什么还要执着于静态?在乎 seo ?
别人玩静态是为了免服务器发布才用的
bgm004
   3
bgm004  
   2025 年 9 月 19 日
github action 应该可以做到吧,你只管往 github 推送就完事了。
thedog
   4
thedog  
   2025 年 9 月 19 日
说实话,都服务器了,上 typecho 或者 wordpress 是不是更好,两个都可以后台直接上传文章内容
craftsmanship
   5
craftsmanship  
   2025 年 9 月 19 日 via Android
楼上正解…人家静态免费托管都是写完 push 到 GitHub 就不用你操心了 你这 CICD 也太落后了
BBrother
   6
BBrother  
   2025 年 9 月 19 日
创建博客的 md 仓库,push 后通过 action 或者 webhook 自动构建,我自己是在自己的 nas 上托管了 gitea ,自己写 webhook 构建的
weixind
   7
weixind  
   2025 年 9 月 19 日
vercel
gimp
   8
gimp  
   2025 年 9 月 19 日
1. 博客程序和内容提交到 Github ,触发 Buddy 构建,提交到自定义存储
2. 博客程序和内容提交到 Github ,触发 Cloudflare Page 构建

以上两种都可,不需要自己的服务器参与,静态博客,重在免费白嫖( bushi
make115
   9
make115  
   2025 年 9 月 19 日
push 到 github 上, 编译打包,scp 推送到服务器上

当然, 我连 push 都不想 push 。 直接在 github 上写 issue ,github action 直接根据 issue 生成 md ,push
bzw875
   10
bzw875  
   2025 年 9 月 19 日
直接用 GitHub pages ,域名,服务器,CICD 通通现成的
andyskaura
   11
andyskaura  
   2025 年 9 月 19 日
你这太费劲了,不如就写 md ,你维护文件夹就得了。
totoro625
   12
totoro625  
   2025 年 9 月 19 日
方案一:
1.本地生成静态文件
2.一键脚本部署到服务器
over

方案二:
1.本地写代码
2.文件夹实时同步到服务器
3.服务器检测到文件变动自动生成静态文件,自动部署
over
Leonooo13
   13
Leonooo13  
   2025 年 9 月 19 日
我最近调研了一套解决方案
两个 github repo
1. 管理 react 代码 渲染 markdown 存储博客+img+file+github action
2. github pages 纯静态网页
好处是 1 仓库可以 private 避免了源文件外泄
其中 2 仓库必须要公开 在 1 仓库的 setings 中加入 github 的 token ,通过 1 仓库的变动来自动部署到 github pages
成品 https://feesec.github.io/
cpstar
   14
cpstar  
   2025 年 9 月 19 日
gridea 利用 github 直接搞,还要啥个人服务器
yuanyuan11
   15
yuanyuan11  
   2025 年 9 月 19 日
vscode + hugo + git + git pages + cloudflare domain

写完就 update -> push 快的一笔
dcatfly
   16
dcatfly  
   2025 年 9 月 19 日
纯静态没必要个人服务器了,vercel/cloudflare page/github page 都是更好的选择,整体流程也很顺滑
RICKEYGONG
   17
RICKEYGONG  
OP
   2025 年 9 月 19 日
感谢各 V 友 答复,我先采用 1L 的方案试试
baobao1270
   18
baobao1270  
   2025 年 9 月 19 日
使用 rsync 部署
静态没必要上 CI
Seck
   19
Seck  
   2025 年 9 月 19 日
甚至直接无脑 blogger ,点击下就有了,开写完事。
不行买个主题?
Depth
   20
Depth  
   2025 年 9 月 19 日
我来讲一个搞笑的,前几天发现一个程序员用 github 做的静态博客。加了一个隐藏文章的功能,发了一篇带很多密码的文章,前台确实看不到。但是 github 上明文显示的一清二楚。
suzic
   21
suzic  
   2025 年 9 月 19 日
不想改太多的话就本地直接把生成好的 push 上去,服务器那边直接拉一下就自动更新了
docx
   22
docx  
   2025 年 9 月 19 日 via iPhone
如果仅仅只是承担部署的作用,为何不用 GitHub Actions
diudiuu
   23
diudiuu  
   2025 年 9 月 19 日
直接 cloudflare pages 部署比一楼的还要简单吧,也不要钱。
lavvrence
   24
lavvrence  
   2025 年 9 月 19 日
https://vercel.com/templates/blog/hugo
目前还是 Vercel 最省事的。
HK560
   25
HK560  
   2025 年 9 月 19 日
github+vercel 更新博客就是提交一下的事情,自动编译自动部署,服务器还是免费的
tiancaixiaoshuai
   26
tiancaixiaoshuai  
   2025 年 9 月 19 日
你服务器上有面板就简单多了,随便找个 cms ,搭建站点,写内容,生成静态文件,最后在面板-站点设置-php 版本那里把 php 关掉,改成纯静态,什么时候写什么时候开,又安全又省事,不需要多端来回切换
test848
   27
test848  
   2025 年 9 月 19 日
可以参考这个仓库: https://github.com/mtlynch/mtlynch.io/blob/master/.circleci/config.yml

使用 Hugo

代码托管到 Github -> Circle CI / Github Action 自动化工具部署到终端托管平台( Netify / Cloudflare Page )

最终效果:
main 分支变动时自动部署到 Netify/Cloudflare Page 上,绑定的域名可以访问
开发分支变动时自动部署到 Netify/Cloudflare Page 上,绑定的开发域名可以访问

最佳实践:
每一个变动新开一个分支,通过本地/开发域名可以进行测试
测试没问题之后,开一个 Pull Request,合并到主分支。
test848
   28
test848  
   2025 年 9 月 19 日
没看到是部署到个人服务器。可以直接用 github action, 推送的时候自动连到服务器执行脚本。但是感觉直接部署到托管平台,自带 CDN 不是也很香么。
bjzhou1990
   29
bjzhou1990  
   2025 年 9 月 19 日
静态代码直接上 cdn 就行,个人的那点用量不会超免费额度的
ijse
   30
ijse  
   2025 年 9 月 19 日
给你推荐一个“牛刀”:Coolify
90xchun
   31
90xchun  
   2025 年 9 月 19 日
考虑下 cloudflare pages 吧,基于 cloudflare 的 cdn ip ,首次打开慢点,连接上了,速度还是挺快的,要不咋个那会那么多的免费梯子走 cf

最近改造了一下博客,适配了 aws lambda 环境,和用上了基于文件的数据库 cloudflare d1 (sqlite), 基本做到了有手就能完成部署了,主打一个 0 成本(域名使用成本排除),labmda ( vps ) 和 d1 ( rds ) 的免费额度完全够用了

主要解决了 hexo 这类软件需要安装软件,繁琐的主题 yml 配置。

基本是现阶段还在写博客的最最长久的方案了

- 费用低(仅域名费用)
- 够方便(无需环境,同时 pwa 支持离线写作)
- 够长久( aws lambda )访问的时候才执行方法,服务可用性 99.9999% +

兼具了动态博客管理和写作方便,同时避免了动态博客维护服务的缺点



主页: https://www.zrlog.com
示例站点: https://demo.zrlog.com
github: https://github.com/94fzb/zrlog
woodchen
   32
woodchen  
   2025 年 9 月 20 日
github actions, 直接 workflows 里编译, 然后替换掉服务器上的网站文件.
bowencool
   33
bowencool  
   2025 年 9 月 20 日
试试 vercel/cloudflare 再回看你自己的操作吧,简直是古法部署:浪费钱+浪费精力,最后效果(速度、安全、价格等)还远不如 vercel...

vercel 唯一的问题是默认域名被墙了,解决也非常简单,自己买个域名 CNAME 一下就行了。
NextGen
   35
NextGen  
   2025 年 9 月 20 日
@yzxhzxsw 过程中这个还是需要的
aradish
   36
aradish  
   2025 年 9 月 20 日
简单一点可以 可以使用 rclone SFTP 的方式 https://gohugo.io/host-and-deploy/deploy-with-rclone/
csfreshman
   37
csfreshman  
   2025 年 9 月 20 日
为什么纠结个人服务器?我用 vercel ,目前博客推送到 github ,自动构建发布,感觉挺方便,相当于一个免费的云笔记
cs4forever
   38
cs4forever  
   2025 年 9 月 20 日
@dcatfly
@90xchun
@bowencool
@csfreshman
cloudfare vercel 适合大陆用户访问吗 感谢
mephisto
   39
mephisto  
   2025 年 9 月 20 日
如 1 楼所说,很简单的。我以前写了个教程,送给你: https://mephisto.cc/tech/webhook/
dcatfly
   40
dcatfly  
   2025 年 9 月 20 日
@cs4forever 大陆可以访问,体感 vercel 的延迟要低一点。不过 vercel 的默认域名(*.vercel.app)在大陆是不能访问的,需要自己有个域名做 cname
90xchun
   41
90xchun  
   2025 年 9 月 20 日 via Android
@cs4forever cf 首次连接慢,后面连接上后其实挺快的,cf 的默认线路比很多没有特定 cn 优化的线路都快,都稳定。 当然网站流量大,最好还是自己买个国内的大厂的轻量云,有 2tb 的流量的(不用担心被刷 cdn 导致高额的账单),如果不想备案,
90xchun
   42
90xchun  
   2025 年 9 月 20 日 via Android
考虑一下 国外的 vps ,dmit 的 gia 线路就很棒,只是一年得要 $50 的费用。 推荐 cf 主要是 cf 是真的赛博菩萨呢,你看 部署个 博客,你需要折腾域名把, 证书需要把需要自己维护 Nginx ,文件(图床)服务吧,cdn 吧,如果是动态博客你是不是还要安装一个数库吧,要考虑安全,需要统计需求,数据备份,过滤非法请求,这些 cf 都免费给你用了,除了买个域名的费用

到头来,博客访问量还是个位数,文章没有写几篇,折腾教程倒是写了不少,最后会发现还是要费用低,没有维护负担的,才能长久坚持下去。

所以对于绝大部分人,静态博客才是最终归宿
cs4forever
   43
cs4forever  
   2025 年 9 月 21 日
@dcatfly
@90xchun
好的 感谢 看看就用免费的 cf 吧 反正没多少人访问 我怕万一有人想访问 结果大陆访问不上去
csfreshman
   44
csfreshman  
   2025 年 9 月 22 日
@cs4forever #38 挺好,我用自己的域名,没用默认域名,博客访问量不大,免费的足够了,主要是省心,不用担心丢数据,笔记都存到 github
cs4forever
   45
cs4forever  
   2025 年 9 月 22 日
@csfreshman 感谢 怕好不容易有人想访问 然后被墙了 毕竟很多人不懂科学上网
Evelyn4869
   46
Evelyn4869  
   2025 年 9 月 22 日
我就是使用的静态播客部署到自己的服务器上,自动部署方案是用的 Github Action ,步骤是:
1. 在本地编写博客,写完推送到 Github 。(只需要自己推送,下面的步骤都是自动操作了)
2. 推送后 Github Action 会自动化的生成静态文件,并上传到服务器上。
这是一个自己当时写的自动部署教程 https://www.xzxz.top/pages/xb17la/
© 2026 V2EX · 126ms · 3.9.8.5