個人のウェブサイトを兼ねて、ブログを組み立てた。

きっと「いろいろ実験するだろう」と踏んで、特定のblogging serviceに依存するのを避けた。気に入ったblogging serviceがなかったというのもある。

また、間違ったことを言っていたらマサカリを投げて欲しいなとも思った。GitHubにsourceがあれば、IssueやPull Requestを通じて、フィードバックがもらえるかもしれない、という期待もできる。

Hugo

static website generatorとしてHugoを利用した。HexoとかJekyllもあるけど、よほど変なURLで吐かれなければなんでもいいと思った。いずれ何かに満足できなくなって自分でブログエンジン作るかもしれないし。

Firebase

ホスティング先としてFirebaseを選んだ。GitHubでホスティングする際のgh-pagesブランチによる運用が嫌だった。masterブランチが更新されたら、CIによって自動的にウェブサイトも最新の状態になって欲しい。Firebaseだと最初からHTTPSに対応しているし良いなと思った。

GitHub上のリポジトリにCircle CIを連携させて、masterブランチが更新されたらhugoでHTMLやメタファイルを生成して、firebase deployするようにした。気になる人はcircle.ymlを見てもらえばわかると思う。

Firebaseの管理コンソールのCLIクライアントであるfirebase-toolsにはlogin:ciというコマンドがあって、これを使うとCIなど環境で用いるためのbearer tokenを発行できる。

叩くとこんな感じ。ブラウザが立ち上がって、Googleアカウントでのログインが求められる。

🍣  ./node_modules/.bin/firebase login:ci

Visit this URL on any device to log in:
https://accounts.google.com/o/oauth2/auth?client_id=000000000000-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com&scope=email%20openid%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloudplatformprojects.readonly%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Ffirebase%20https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&response_type=code&state=000000000&redirect_uri=http%3A%2F%2Flocalhost%3A9005

Waiting for authentication...

✔  Success! Use this token to login on a CI server:

1/0123456789abcdef0123456789ABCDEF0123456789a

Example: firebase deploy --token "$FIREBASE_TOKEN"

すると、1/0123456789abcdef0123456789ABCDEF0123456789aのようなbearer tokenが発行される。これをCircle CIなどの環境変数に入れておいて、firebase deploy --token $FIREBASE_TOKENのように使う。

いつまで続くかわからないけど、書くところを確保したのであとは書くだけ、という気持ちでアウトプットを増やしていきたい。