【Hexo】CI/CD——持续集成&持续部署

这里不讲 CI/CD 的概念,我们想要做到的,就是自动化编译、部署博客,把注意力都集中在写作上。 之前已经讲过 《【Hexo】Git 一键部署》,但那仅仅是一键部署。在部署之前,还需要在本地安装 Nodejs 环境,安装依赖包,然后编译,最后才能开始部署。当然,Nodejs 环境和依赖一台机器上安装一次就够了,以后只需编译就行,但如果需要在多台机器上写作,那么每台机器都要装环境、装依赖…… 也还行,还比较便利,但还不够。 我们可以借助 CI/CD 工具,完成环境搭建、编译、部署等一系列工作,真正做到一键上传博客。 说到这里,我想到了 WordPress。 WordPress 很容易就可以做到一键上传博客,完全不用搞什么 CI/CD。 免费的 CI/CD 工具不少,这里我选择了 Gihub Action。博客文章都是存储在 Github 库中,用 Gihub Action 也比较方便。 如下是工程文件, https://github.com/vksir/blog-posts/blob/master/.github/workflows/main.yml 关于博客系统 WordPress 确实是好,但不太适合我: 文章都存储的 MySQL 数据库中。 数据库很可靠,但是我的服务器并不可靠。服务器是租的,上面的数据我并不是很放心。比起个人服务器,我更愿意把数据存储在 Github 这种地方。 性能消耗大。 WordPress 需要 MySQL、PHP 支撑,光跑这俩个组件就要占用大量内存,1H2G 的服务器有点难吃下。 Hexo 也挺好的,但也有问题: 很简单,也很复杂。 简单指的是很容易就能生成博客页面,复杂是指,如果想要做到 WordPress 那样便利,其实很麻烦,要装一堆插件,配置一堆东西,完了还没有 WordPress 好用。 二次开发也不容易。 博客主题经常就会有变更需求,只能硬写 Html、CSS、JS,着实是有点难为我这个后端开发者。如果能用用 React 之类的框架,那还简单点。 最好就是自己动手写博客,想怎么样就怎么样。框架好说,数据也好说,难的是主题。从零开始写 CSS,简直魔鬼……

五月 8, 2022  |  60 字  |  总阅读

【Hexo】Git 一键部署

这里要说的是部署到自己的服务器哦~其实呢,主要是有关 Git 的使用吧。 主要内容: Hexo 一键部署 使用自己的远程 Git 库 快捷登录 SSH 环境:CentOS 7 创建Git用户 && SSH快捷登录 创建Git用户 # 创建无法使用ssh登录,但可以使用git功能的用户 useradd git -s /bin/git-shell # 设置密码 passwd git # 添加用户到nginx用户组 usermod -G nginx git 为什么需要将 git添加到 nginx用户组后面再聊~ SSH快捷登录 将密钥推送到服务器 ssh-copy-id git@IP 建立远端Git库 创建库 # 创建库 cd /home/git git init --bare hexo_html.git –bare:创建一个裸仓库(也就是不包含文件的仓库) 如果这里不加 --bare,待会儿推送的时候就会报错 receive.denyCurrentBranch = false。如果定不想加的话,就在 .git/config中添加: [receive] denyCurrentBranch = ignore 这样就可以正常推送了。 使用库 直接在本地打开终端: # 克隆库 git clone git:/home/git/hexo_html.git # 测试 cd hexo_html touch testfile # 提交到本地库 git add . git commit -m "第一次提交" # 推送到远端库 git push # 换个文件夹 git clone git:/home/git/hexo_html.git ls # 文件存在,表示搭建成功 虽然是 push到远端库了,但是在远端库里,是看不到任何文件的。推送的文件已另一种形式存储在了 hexo_html.git中。 ...

三月 6, 2020  |  167 字  |  总阅读

【Hexo】NexT 进阶配置

Hexo——一款纯静态、基于 Nodejs 的博客系统。 NexT——Hexo 下的强大的主题,该博客发展到了现在,倒是算是 Hexo 还是 NexT,真的很难说清。 优点: 万能!什么功能都有!相比起 Ghost 博客系统,Hexo + NexT 完善太多 支持所有 Markdown 语法,类似于嵌套列表(Now),而 Ghost 和 WordPress 都是不支持的。强迫症如我,表示没有嵌套列表日子不能过! 缺点: 相比起 Ghost 的主题配置语言 HandBar,NexT 主题的这个 swig 语言系统着实难懂。且 NexT 的文档不是非常完善,自定义主题较为困难。 没有 Web 后台(有一个,但是太丑……),只能在命令行下发布文章,没有一种家的感觉 环境:Nodejs v12.14.1 版本:Hexo v4.2.0,NexT v7.7.2 访问量统计 <!-- 添加脚本 --> <!-- next/layout/_partials/head/head-unique.swig -> END --> <script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script> <!-- 这一段是页脚 由Hexo强力驱动 等字样,删了也罢 --> <!-- next/layout/_partials/footer.swig -> FIND --> {%- if theme.footer.powered.enable %} <div class="powered-by"> {{- __('footer.powered', next_url('https://hexo.io', 'Hexo', {class: 'theme-link'})) }} {%- if theme.footer.powered.version %} v{{ hexo_version }}{%- endif %} </div> {%- endif %} {%- if theme.footer.powered.enable and theme.footer.theme.enable %} <span class="post-meta-divider">|</span> {%- endif %} {%- if theme.footer.theme.enable %} <div class="theme-info"> {%- set next_site = 'https://theme-next.org' %} {%- if theme.scheme !== 'Gemini' %} {%- set next_site = 'https://' + theme.scheme | lower + '.theme-next.org' %} {%- endif %} {{- __('footer.theme') }} – {{ next_url(next_site, 'NexT.' + theme.scheme, {class: 'theme-link'}) }} {%- if theme.footer.theme.version %} v{{ next_version }}{%- endif %} </div> {%- endif %} {%- if theme.add_this_id %} <div class="addthis_inline_share_toolbox"> <script src="//s7.addthis.com/js/300/addthis_widget.js#pubid={{ theme.add_this_id }}" async="async"></script> </div> {%- endif %} <!-- 替换为本站总访客数 --> <!-- next/layout/_partials/footer.swig --> <div class="powered-by"> <span class="post-meta-item-icon"> <i class="fa fa-eye"></i> </span> <span id="busuanzi_container_site_uv">总访客数: <span id="busuanzi_value_site_uv"></span></span> </div> <!-- 这一段前 --> <!-- next/layout/_macro/post.swig -> FIND --> {%- endif %} {#################} {### POST BODY ###} {#################} <!-- 添加本文阅读量 --> <!-- next/layout/_macro/post.swig --> <span class="post-meta-item" id="busuanzi_container_page_pv"> <span class="post-meta-item-icon"> <i class="fa fa-eye"></i> </span> 阅读量: <span id="busuanzi_value_page_pv"></span> </span> 来自: ...

三月 6, 2020  |  403 字  |  总阅读