AWS/GCPのWeb ConsoleをNativefierで専用アプリにする

sandbox 用の AWS アカウントと GCP プロジェクトを作ったついでにそれぞれの Web 管理画面をNativefierで専用アプリにした。

GCP プロジェクトは https://console.cloud.google.com/home/dashboard?project=YOUR_GCP_PROJECT_ID のように URL のクエリパラメタでタブごとに異なるプロジェクトを表示できるし、
AWS アカウントも switch role を使えば複数の AWS アカウント間を行き来できる。

しかし今回 sandbox として以下のようなことをやったので既存のブラウザセッションだとやはり不便。

  • GCP プロジェクトはそもそもの Google アカウントを新たに作った
  • AWS アカウントは Organization を新しく作った

しかし専用アプリにしてしまえばこのように異なる AWS アカウントを同時に使うことも可能、便利。

~/Library/Application Support/ を覗くとプロファイルディレクトリ自体が分かれているのがわかる。
この記事を書き始めた時はアカウントを伏せていたのだけどめんどくさくなったのでそのまま

$ ls -1d ~/Library/Application\ Support/{aws,gcp}*
/Users/hidenori.matsuki/Library/Application Support/aws-console-mazgi-sb-billing-aws-nativefier-8a6ce6/
/Users/hidenori.matsuki/Library/Application Support/aws-console-mazgi-step-aws-nativefier-8a6ce6/
/Users/hidenori.matsuki/Library/Application Support/gcp-console-mazgi-sandbox-nativefier-6d960f/

もう 1 つ嬉しい点としては Mac の場合 Chrome でプロファイルを複数作っても ⌘+TAB で Window を切り替えることはできないが、Nativefier で作ったアプリならこのように切り替えできる。

Nativefier のインストールは node や npm があれば npm install -g nativefier するだけなのだが、最近は手元の Mac から色々なソフトウェアを追い出したいと思っていて、Docker コンテナ内に押し込んだ。
Dockerfile と image はそれぞれ以下に公開している。

Docker イメージはすでに Docker Hub に公開されているので、アプリを作る時は ⬇️ の 1 行を実行するだけ。
気をつけるポイントとしては Docker(for Mac)は Linux VM で実行されているので --platform osx のようにプラットフォームを指定しないと Linux 版のアプリが作られてしまう。

$ docker run -v $PWD:/pwd -it mazgi/nativefier nativefier --platform osx --counter --bounce --name "AWS Console(mazgi-sb-billing-aws)" console.aws.amazon.com

このように実行したディレクトリ内に各アプリができあがる。