建立无服务器生产就绪博客
您是否厌倦了维护CMS (WordPress,Drupal等)? 支付昂贵的托管费? 每天都在解决安全问题吗?
我不久前发现了一个名为Hexo的新博客框架 这样您就可以以博客文章的形式发布Markdown文档。 因此,我一如既往地忙着写这篇文章,向您展示如何使用Hexo构建可用于生产环境的博客,以及如何使用AWS S3使您的博客变为无服务器版,并且仅按使用量付费。 在此过程中,我将向您展示如何通过设置CI / CD管道来自动化新帖子的部署。
首先,Hexo需要安装Node.JS & Git 。 一旦安装了所有要求,请发出以下命令来安装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 ID和Secret Access Key ( s3:PutObject权限)。
现在,每次将更改推送到GitHub存储库时, CircleCI都会将更改自动部署到S3 。 这是一个通过的构建:
最后,为了使我们的博客易于使用,我们将在Route53中设置一个自定义域名,如下所示:
注意:您可以走得更远,并在S3存储桶的前面设置CloudFront分配 ,以优化博客资产的交付。
您现在可以通过输入以下地址来测试您的全新博客: http : //slowcoder.com :
From: https://hackernoon.com/build-a-serverless-production-ready-blog-b1583c0a5ac2