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

2 天前
 RICKEYGONG

我现在的部署步骤:

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

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


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

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

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

2199 次点击
所在节点    问与答
43 条回复
suzic
2 天前
不想改太多的话就本地直接把生成好的 push 上去,服务器那边直接拉一下就自动更新了
docx
2 天前
如果仅仅只是承担部署的作用,为何不用 GitHub Actions
canteon
2 天前
直接 cloudflare pages 部署比一楼的还要简单吧,也不要钱。
jaylee4869
2 天前
https://vercel.com/templates/blog/hugo
目前还是 Vercel 最省事的。
HK560
2 天前
github+vercel 更新博客就是提交一下的事情,自动编译自动部署,服务器还是免费的
tiancaixiaoshuai
2 天前
你服务器上有面板就简单多了,随便找个 cms ,搭建站点,写内容,生成静态文件,最后在面板-站点设置-php 版本那里把 php 关掉,改成纯静态,什么时候写什么时候开,又安全又省事,不需要多端来回切换
ergouli848
2 天前
可以参考这个仓库: 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,合并到主分支。
ergouli848
2 天前
没看到是部署到个人服务器。可以直接用 github action, 推送的时候自动连到服务器执行脚本。但是感觉直接部署到托管平台,自带 CDN 不是也很香么。
bjzhou1990
1 天前
静态代码直接上 cdn 就行,个人的那点用量不会超免费额度的
ijse
1 天前
给你推荐一个“牛刀”:Coolify
90xchun
1 天前
考虑下 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
1 天前
github actions, 直接 workflows 里编译, 然后替换掉服务器上的网站文件.
bowencool
1 天前
试试 vercel/cloudflare 再回看你自己的操作吧,简直是古法部署:浪费钱+浪费精力,最后效果(速度、安全、价格等)还远不如 vercel...

vercel 唯一的问题是默认域名被墙了,解决也非常简单,自己买个域名 CNAME 一下就行了。
yzxhzxsw
1 天前
yzxhzxsw
1 天前
@yzxhzxsw 过程中这个还是需要的
aradish
1 天前
简单一点可以 可以使用 rclone SFTP 的方式 https://gohugo.io/host-and-deploy/deploy-with-rclone/
csfreshman
1 天前
为什么纠结个人服务器?我用 vercel ,目前博客推送到 github ,自动构建发布,感觉挺方便,相当于一个免费的云笔记
cs4forever
1 天前
@dcatfly
@90xchun
@bowencool
@csfreshman
cloudfare vercel 适合大陆用户访问吗 感谢
mephisto
1 天前
如 1 楼所说,很简单的。我以前写了个教程,送给你: https://mephisto.cc/tech/webhook/
dcatfly
20 小时 47 分钟前
@cs4forever 大陆可以访问,体感 vercel 的延迟要低一点。不过 vercel 的默认域名(*.vercel.app)在大陆是不能访问的,需要自己有个域名做 cname

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1160486

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX