HexoブログをNetlifyにデプロイ公開しつつGitHubでバックアップも取る

Hexoのような静的サイトジェネレーターは、書き出されるコードが普通のWebデータ(HTMLなど)なので、WordPressのような環境依存が無い。よって、公開までの流れを柔軟にカスタマイズできる。例としては次のような手段があり、今回は3段目の方法を紹介する。
- Hexoを作成 → すぐGitHub Pagesにデプロイ(GitHubで管理)
- Hexoを作成(GitHubで管理) → GitHub Pagesにデプロイ(GitHubで管理)
- Hexoを作成(GitHubで管理) → Netlifyにデプロイ < 今回
- Hexoを作成(GitHubで管理) → esa.ioで更新 → Netlifyにデプロイ
- Hexoを作成(GitHubで管理) → esa.ioで更新 → CircleCIで処理 → Netlifyにデプロイ
1. 手段の把握
Hexoの運用は、Hexoデータ(Hexo本体・プラグイン・テーマ)と記事データ(Markdown)から静的Webデータを書き出して、公開場所にデプロイ(展開)するという流れとなる。
前回の方法で全体をバージョン管理しつつGitHub Pagesにデプロイできた。今回は、GitHub PagesではなくNetlifyという便利なWebサービス上にデプロイを行う。
それによって、プライベートリポジトリからのデプロイ・コマンドを入れずに自動デプロイ・簡単に独自ドメインでhttps+http/2というメリットが増える。
2. 事前準備
3. Configを修正
_config.yml にNetlifyの公開予定URLを書き込む。デプロイの記載は不要。
独自ドメインの場合は予定のカスタムドメインを。Netlifyドメインのまま使うのであれば .netlify.com の前に任意のサブドメインを入れる。root は / に変更。
# URL
## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
url: https://【任意のサブドメイン】.netlify.com
root: /
4. GitHubにコードをプッシュ

Hexoブログの開発データ全体をGitHubに上げておく。
5. NetlifyでHexoをデプロイ

Netlifyダッシュボードに New site from Git というボタンがあるので押しGitHubを選択。ブランチは master、ビルドコマンドは hexo generate、パブリッシュディレクトリには public を入力し Deploy site。

デプロイが成功。一旦、ランダムなURLが割り当てられている。
6. URLを変更する
ランダムに設定されたURLは Settings > Change site name から変更できる。

独自ドメインを当てる場合は Settings > Add custom domain から。
7. 公開されたページを確認

無事にページが公開されている。投稿の追加・修正・削除、またはテーマを切り替えた場合はGitで master ブランチへプッシュするだけ。Netlifyが感知して自動的にデプロイしてくれる。