CI やデプロイに用いるシークレット情報は基本的に環境変数を用いて注入しますが、環境変数の管理って面倒ですよね。.env ファイルを共有したり、GitHub Actions で使う環境変数をリポジトリの設定から追加したり、とにかく面倒です。
そこで dotenvx だッ!
〜「asa1984 Advent Calendar 2024」9日目・開幕 〜
dotenvx は .env ファイルを暗号化し、リポジトリで直接 .env ファイルを管理できるようにします。環境変数または .env.keys ファイルから dotenvx に秘密鍵を渡すことで実際に中身を取り出すことができます。
dotenvx は、JS のライブラリだけでなく、CLI も提供しているので、言語を問わず利用することができます。暗号化機能を利用せず、.env ファイルからそのまま環境変数を読み出すツールとしても使えます。
通常の環境変数の管理方式だと設定漏れや共有の難しさなどがありますが、暗号化すれば管理すべきシークレットが1つだけになり、.env をそのままリポジトリで管理できるので共有も楽です。単一の秘密鍵で全てを管理すると聞くと不安になる人もいるかもしれませんが、管理すべき秘密情報は少ないほどいいので(なぜなら1つ漏れたら時点で終わりだから)、むしろ理にかなっているでしょう。