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

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

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

    我现在的部署步骤:

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

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


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

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

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

    39 条回复    2025-09-20 19:14:34 +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  
       1 天前
    方案一:
    1.本地生成静态文件
    2.一键脚本部署到服务器
    over

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

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

    vercel 唯一的问题是默认域名被墙了,解决也非常简单,自己买个域名 CNAME 一下就行了。
    yzxhzxsw
        35
    yzxhzxsw  
       6 小时 38 分钟前
    @yzxhzxsw 过程中这个还是需要的
    aradish
        36
    aradish  
       5 小时 48 分钟前
    简单一点可以 可以使用 rclone SFTP 的方式 https://gohugo.io/host-and-deploy/deploy-with-rclone/
    csfreshman
        37
    csfreshman  
       3 小时 49 分钟前
    为什么纠结个人服务器?我用 vercel ,目前博客推送到 github ,自动构建发布,感觉挺方便,相当于一个免费的云笔记
    cs4forever
        38
    cs4forever  
       2 小时 23 分钟前
    @dcatfly
    @90xchun
    @bowencool
    @csfreshman
    cloudfare vercel 适合大陆用户访问吗 感谢
    mephisto
        39
    mephisto  
       1 小时 20 分钟前
    如 1 楼所说,很简单的。我以前写了个教程,送给你: https://mephisto.cc/tech/webhook/
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2640 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 12:35 · PVG 20:35 · LAX 05:35 · JFK 08:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.