プロフィールサイトをGitHub Page + CloudFlareによる独自ドメイン×SSL配信に移行しました
はじめに
このブログからもリンクしている私のプロフィールサイトは、これまでは手抜きをしてGoogleサイトで作ったものでした。
大したコンテンツがあるわけでもないので、特に問題は無いのですが、いまのアカウント(id:progrhyme)を作ったときに自分用のドメインも取得していたので、せっかくならばそれを活用したい、という気持ちはありました。
調べたところ、Googleサイトで独自ドメインを利用するにはG Suiteが必要そうです。*1
G SuiteはBasicプランが月額600円と、個人で使うとしても決して高いものではありませんが、今のところ本件以外にG Suiteを使うモチベーションはありません。
また、せっかくWeb業界にいるエンジニアなので、もう少しテクニカルにやってみようと思いました。
GitHub Pages + CloudFlareの設定
GitHub PagesはGitHubが提供している静的なWebサイトのホスティングサービスで、GitHubユーザであれば無料で利用できます。
また、CNAMEレコードを設定することで、独自ドメインも使うことができます。
数年前なら、ここでSSL証明書をどうするか頭を悩ませることになったかもしれませんが、ここ最近は無料で証明書を提供してくれるサービスが増えてきました。
そもそも、今年の5月にはGitHub PagesそのものがカスタムドメインによるHTTPS配信を無料でサポートするようになりました。*2
初め、私もこの機能を使ってSSL化を試みましたが、一般的にZone Apex(サブドメインのドメイン名そのもの)にはCNAMEを設定できないというDNSの仕様があるため*3、 https://www.progrhy.me
のようなURLになりそうでした。
それでも特に実害はないのですが、なんとなく嫌だなということで更に調べていたところ、Cloud FlareのDNSの場合、 CNAME Flattening という仕様が有効になっており、Zone Apexに対してもCNAMEを利用することができるとのことでした。*4
というわけで、ドメインを購入したレジストラでCloudFlareにネームサーバを転送する設定をして、 https://progrhy.me でGitHub Pagesで作ったサイトが見られるようになるところまでは一晩で設定できました。
Bootstrap Themeによるデザイン調整
最初はデザインは適当に済ませて、とにかく旧サイトから移行をしてしまおうと考えていたのですが、中々いい感じのテンプレートやツールを見つけることができず、意外に悪戦苦闘してしまいました。
最終的にGrayscaleという比較的シンプルなBootstrapのテーマを選びました。
おかげで期せずしてgulpやSassという新しめのフロントエンドのツールに触れることになりました。
あと、CSSのメディアクエリの書き方などを覚えました。
移行の現状
上述の通り、 https://progrhy.me/ で新サイトを閲覧できます。
このブログも含めて各種サイトやSNS等のリンクは一通り更新したつもりなので、移行としては完了です🎉
今後の予定
色々やり得ることはあるのですが、まずfaviconがまだ無いので、早めに作って設置したいと思います。
他方、npmの依存モジュールで脆弱性があるようで、GitHub上でセキュリティの警告が出ています。
大したことはしてないはずなのに package-lock.json
が6218行もあって、npmの世界は怖いなと思ったものですが、ともあれ整理が必要そうです。
本サイトの更新頻度は高くはならないと思いますが、CloudFlareのキャッシュクリアなど含めてCI設定もできるといいなと思っています。
終わりに
この記事を書いている間にMicrosoftの「Sketch 2 Code」という新サービスのニュースが飛び込んできました。*5
AIによって、手書きのワイヤーフレームをHTMLに変換してくれるもののようです。
やってみて実感したのですが、素人がHTMLをいい感じに組むのは難しいので、AIで簡単になるといいなと思いました。
脚注
*1:参考: G Suite のドメイン所有権の確認 - G Suite 管理者 ヘルプ
*2:Custom domains on GitHub Pages gain support for HTTPS | The GitHub Blog
*3:参考: CNAMEレコードにZone Apexをマッピングできない件について – サーバーワークスエンジニアブログ
*4:CNAME Flattening: RFC-compliant support for CNAME at the root – Cloudflare Support
*5:Turn your whiteboard sketches to working code in seconds with Sketch2Code | Blog | Microsoft Azure