V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
RICKEYGONG
V2EX  ›  问与答

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

  •  
  •   RICKEYGONG · 1 天前 · 1803 次点击

    我现在的部署步骤:

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

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


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

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

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

    36 条回复    2025-09-20 14:47:09 +08:00
    stinkytofux
        1
    stinkytofux  
       1 天前
    你在服务器上写一个 api 接口拉取 git 代码, 利用 Github 的 Webhook 推送功能, 当 commit 推送到 github 的时候, 自动就完成部署了, 只需一步操作.

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

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

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

    方案二:
    1.本地写代码
    2.文件夹实时同步到服务器
    3.服务器检测到文件变动自动生成静态文件,自动部署
    over
    Leonooo13
        13
    Leonooo13  
       23 小时 34 分钟前
    我最近调研了一套解决方案
    两个 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  
       23 小时 30 分钟前
    gridea 利用 github 直接搞,还要啥个人服务器
    imjiaoyuan
        15
    imjiaoyuan  
       22 小时 51 分钟前
    vscode + hugo + git + git pages + cloudflare domain

    写完就 update -> push 快的一笔
    dcatfly
        16
    dcatfly  
       22 小时 42 分钟前
    纯静态没必要个人服务器了,vercel/cloudflare page/github page 都是更好的选择,整体流程也很顺滑
    RICKEYGONG
        17
    RICKEYGONG  
    OP
       22 小时 41 分钟前
    感谢各 V 友 答复,我先采用 1L 的方案试试
    baobao1270
        18
    baobao1270  
       22 小时 40 分钟前
    使用 rsync 部署
    静态没必要上 CI
    Seck
        19
    Seck  
       22 小时 33 分钟前
    甚至直接无脑 blogger ,点击下就有了,开写完事。
    不行买个主题?
    Depth
        20
    Depth  
       22 小时 23 分钟前
    我来讲一个搞笑的,前几天发现一个程序员用 github 做的静态博客。加了一个隐藏文章的功能,发了一篇带很多密码的文章,前台确实看不到。但是 github 上明文显示的一清二楚。
    suzic
        21
    suzic  
       22 小时 10 分钟前
    不想改太多的话就本地直接把生成好的 push 上去,服务器那边直接拉一下就自动更新了
    docx
        22
    docx  
       21 小时 51 分钟前 via iPhone
    如果仅仅只是承担部署的作用,为何不用 GitHub Actions
    canteon
        23
    canteon  
       21 小时 43 分钟前
    直接 cloudflare pages 部署比一楼的还要简单吧,也不要钱。
    jaylee4869
        24
    jaylee4869  
       21 小时 39 分钟前
    https://vercel.com/templates/blog/hugo
    目前还是 Vercel 最省事的。
    HK560
        25
    HK560  
       21 小时 19 分钟前
    github+vercel 更新博客就是提交一下的事情,自动编译自动部署,服务器还是免费的
    tiancaixiaoshuai
        26
    tiancaixiaoshuai  
       20 小时 41 分钟前
    你服务器上有面板就简单多了,随便找个 cms ,搭建站点,写内容,生成静态文件,最后在面板-站点设置-php 版本那里把 php 关掉,改成纯静态,什么时候写什么时候开,又安全又省事,不需要多端来回切换
    ergouli848
        27
    ergouli848  
       20 小时 6 分钟前
    可以参考这个仓库: 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
        28
    ergouli848  
       19 小时 57 分钟前
    没看到是部署到个人服务器。可以直接用 github action, 推送的时候自动连到服务器执行脚本。但是感觉直接部署到托管平台,自带 CDN 不是也很香么。
    bjzhou1990
        29
    bjzhou1990  
       19 小时 29 分钟前
    静态代码直接上 cdn 就行,个人的那点用量不会超免费额度的
    ijse
        30
    ijse  
       19 小时 9 分钟前
    给你推荐一个“牛刀”:Coolify
    90xchun
        31
    90xchun  
       16 小时 52 分钟前
    考虑下 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  
       4 小时 44 分钟前
    github actions, 直接 workflows 里编译, 然后替换掉服务器上的网站文件.
    bowencool
        33
    bowencool  
       3 小时 27 分钟前
    试试 vercel/cloudflare 再回看你自己的操作吧,简直是古法部署:浪费钱+浪费精力,最后效果(速度、安全、价格等)还远不如 vercel...

    vercel 唯一的问题是默认域名被墙了,解决也非常简单,自己买个域名 CNAME 一下就行了。
    yzxhzxsw
        35
    yzxhzxsw  
       1 小时 7 分钟前
    @yzxhzxsw 过程中这个还是需要的
    aradish
        36
    aradish  
       17 分钟前
    简单一点可以 可以使用 rclone SFTP 的方式 https://gohugo.io/host-and-deploy/deploy-with-rclone/
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2760 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 07:04 · PVG 15:04 · LAX 00:04 · JFK 03:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.