建立无服务器生产就绪博客

建立无服务器生产就绪博客
http://www.slowcoder.com

您是否厌倦了维护CMS (WordPress,Drupal等)? 支付昂贵的托管费? 每天都在解决安全问题吗?

建立无服务器生产就绪博客

我不久前发现了一个名为Hexo的新博客框架 这样您就可以以博客文章的形式发布Markdown文档。 因此,我一如既往地忙着写这篇文章,向您展示如何使用Hexo构建可用于生产环境的博客,以及如何使用AWS S3使您的博客变为无服务器版,并且仅按使用量付费。 在此过程中,我将向您展示如何通过设置CI / CD管道来自动化新帖子的部署。

首先,Hexo需要安装Node.JSGit 一旦安装了所有要求,请发出以下命令来安装Hexo CLI

npm install -g hexo-cli

接下来,创建一个新的空项目:

hexo init slowcoder.com

修改_config.yml文件中的博客全局设置:

用“ hexo server ”启动本地服务器。 默认情况下,它位于http:// localhost:4000 您将看到Hexo的预定义“ Hello World ”测试文章:

建立无服务器生产就绪博客

如果要更改默认主题,则只需转到此处,然后找到您喜欢的新主题即可。

我选择Magnetic Theme,因为它包含许多功能:

  • Disqus和Facebook评论
  • 谷歌分析
  • 帖子和页面的封面图片
  • 标签支持
  • 响应式图像
  • 图片库
  • 社交帐户配置
  • 分页

克隆主题GitHub存储库,如下所示:

git clone https://github.com/klugjo/hexo-theme-magnetic主题/ magnetic

然后更新博客的主要_config.yml ,将主题设置为Magnetic 完成后,重新启动服务器

建立无服务器生产就绪博客

现在,您的博客设置几乎完成了。 现在该写您的第一篇文章了。 要生成新的文章文件,请使用以下命令:

hexo新POST_TITLE

现在,登录到AWS管理控制台 ,导航到S3仪表板并创建一个S3存储桶,或使用AWS CLI创建一个新的存储桶

aws s3 mb s3://slowcoder.com

将以下策略添加到S3存储桶以默认情况下将所有对象公开:

接下来,在S3存储桶上启用静态网站托管

AWS s3网站s3://slowcoder.com —索引文档index.html

为了在每次发布新文章时自动化将博客部署到生产的过程。 我们将使用CircleCI设置CI / CD管道。

使用您的GitHub帐户登录CircleCI ,然后将circle.yml文件添加到您的项目中:

注意:确保在CircleCI上项目的“设置”页面中设置AWS Access Key IDSecret Access Keys3:PutObject权限)。

现在,每次将更改推送到GitHub存储库时, CircleCI都会将更改自动部署到S3 这是一个通过的构建:

建立无服务器生产就绪博客

最后,为了使我们的博客易于使用,我们将在Route53中设置一个自定义域名,如下所示:

建立无服务器生产就绪博客

注意:您可以走得更远,并在S3存储桶的前面设置CloudFront分配 ,以优化博客资产的交付。

您现在可以通过输入以下地址来测试您的全新博客: http : //slowcoder.com

建立无服务器生产就绪博客

From: https://hackernoon.com/build-a-serverless-production-ready-blog-b1583c0a5ac2