ブログサイトを構成する技術
どんな技術がある?
ブログを立ち上げるにあたって、どのような技術を活用しようか…。
まあ基本的には、ブログ = Webサイトということで、究極的には html/css/javascript を自力で構成するわけだが、手動で html ファイルを書いて…というのは、ブログを書くという観点で見るとやはり効率が悪いだろう。
まず最初に考えたのが、シンプルに WordPress のような CMS をセットアップすること。
Linux のコンテナ技術と、それを活用した Docker のようなプラットフォームが発展したおかげで、この手のサーバーソフトウェアのデプロイ・セットアップは容易になったと思う。 が、個人用のカジュアルな雑記ブログを運用する上で、やはりその管理コストが気になった。
- 独自ドメイン料
- デプロイ先のサーバーレンタル料
- 日々の管理の手間
- いくら Docker で半自動的にデプロイできるにしても、適当なタイミングでバージョンアップ対応しないといけない
- 途中で躓いたら自力で解決しないと
まあ、この手の管理に関して真正面から真面目に取り組めば、それはそれで保守・運用の勉強になるはずだが、ブログを書きたいという本来の目的と照らし合わせるとどうにも重たい。 特にお金の問題は避けられない。 個人でやるには高すぎる。
かといって、独自色が抑えられすぎるのもできれば避けたい。 Qiita を使えば技術系の知見のアウトプットはできるが、技術系以外は基本向いていないだろう(ポエムとか書いている人は結構見かけるが)。
満たすべき要件
あくまで自分のブログ = 自分のページを持ちたい、ということで満たすべき要件は以下:
- アウトプットに一定の容易さ
- 文章、画像、…
- 技術系に限らず話題にできる
- 管理の手軽さ・安さ
- 必要に応じてサービス活用の幅を広げられる柔軟さ・カスタマイズ性
これらを考慮した結果「静的サイトジェネレータ + 静的サイトホスティングサービス」の組み合わせが良いのでは、と。
静的サイトジェネレーターとして「hugo」を、静的サイトホスティングサービスとして「Netlify」を選択。
- hugo
- Golang 製
- Golang まだ勉強してないけど、単純な興味で
- Markdown で文章を書き、それから「ビルド」することでページ(html など)を作成できる
- テーマも自由に選べる
- Golang 製
- Netlify
- ブログページを管理する Github リポジトリを登録すれば master ブランチへの push によって自動ビルド・デプロイができる
- そんなに大量のコンテンツを扱わなければ、大抵無料で行けそう
- 少なくとも個人ブログ程度なら全然問題なし
- 独自ドメインだけ別途用意すれば良し
- https 対応も自動でできる(すごい)
早速実践
- ブログ用の Github リポジトリ作って
- ローカルに hugo をインストールして、試しにページ作成(quickstart)
- リポジトリに仮でできたファイル群を push
- Netlify に登録
- 「New site from Git」で、ブログ用の Github リポジトリを選択、ビルドコマンドに
hugo
を設定してデプロイ - 独自ドメインを設定(参考: https://qiita.com/NaokiIshimura/items/64e060ccc244e38d0c15 )
- Let’s Encrypt が自動で回り、しっかり HTTPS 化されていることを確認
非常に簡単だった
ページ公開まで、かなりスムーズだった。
ページコンテンツの作成からデプロイまで、普段の git push
で完了するので、ページ作成の敷居も結構低いと感じた。
まだプロフィールの設定とか、エントリーのタグ付けとか、そのあたりは追加で設定の必要ありだが、とりあえずやっていけそう。