
環境変数管理ツール「dotenvx」を最近プロジェクトで導入したので、基本機能や使い方、他ツールとの違い、実際の活用シナリオなどをまとめてみます。普段は python-dotenv や direnv などを使ってきましたが、dotenvxはCLIの使い勝手やCI/CDとの親和性が高く、個人的にかなり気に入っています。
dotenvxとは?
dotenvx
は、.envファイルを使った環境変数管理をより便利にするためのCLIツールです。従来の dotenv や python-dotenv などのライブラリと異なり、言語非依存でCLIから環境変数のロード・管理・同期ができます。
主な特徴:
- .envファイルのロード・バリデーション・同期
- CLIから環境変数の確認・編集・暗号化
- 複数環境(dev, prod, testなど)への対応
- GitHub ActionsやVercelなどCI/CDとの連携が容易
- 言語・フレームワーク非依存
基本的な使い方
インストール
Homebrew(macOS/Linux)
| |
curl(バイナリ直ダウンロード)
| |
公式: https://dotenvx.com/docs/install
環境変数のget/set・編集
dotenvx はCLIから直接.envファイルの値を取得・設定できます。.envファイルのあるディレクトリ内で以下のように値を設定します。
値の設定(set)
| |
値の取得(get)
| |
-f/–env-file オプションの活用
-f または --env-file オプションで、任意の.envファイルを指定して操作できます。
例: 本番用の.env.productionを編集
| |
get/validate/pull/push など、ほぼ全てのサブコマンドで -f オプションが利用可能です。
.env.keysと環境変数の暗号化
.env.keys ファイルは、dotenvxの暗号化機能で使用される秘密鍵を保存するためのファイルです。環境変数を暗号化すると、復号化に必要な秘密鍵が .env.keys に保存されます。このファイルはソースコード管理にコミットすべきではなく、安全に管理する必要があります。
環境変数の暗号化
| |
上記のコマンドを実行すると、 .env.production ファイルにAPI_KEYが暗号化された形式で保存され、復号化に必要な秘密鍵が .env.keys に生成されます。
暗号化された環境変数の使用
暗号化された環境変数を使用するには、 .env.keys ファイルが存在するか、対応する DOTENV_PRIVATE_KEY_* 環境変数が設定されている必要があります。
| |
または、秘密鍵を直接指定して実行:
| |
暗号化機能を使用することで、暗号化された .env.production ファイルは安全にGitリポジトリにコミットできます。
.envファイルのロード
通常の .env ファイルがあれば、以下のようにコマンドで環境変数をロードしてコマンドを実行できます。
| |
Node.jsの場合:
| |
複数環境の切り替え
.env.development や .env.production など複数のenvファイルを用意している場合、
| |
のように -f|--env-file オプションで切り替え可能です。
バリデーション・同期
dotenvxは .env.example とのバリデーションや、クラウド同期(Pro機能)もサポートしています。
| |
他の環境変数管理ツールとの比較
| ツール | CLI | 言語依存 | バリデーション | クラウド同期 | CI/CD連携 |
|---|---|---|---|---|---|
| dotenvx | ○ | × | ○ | ○(Pro) | ◎ |
| python-dotenv | △ | Python | △ | × | △ |
| direnv | ○ | × | × | × | ○ |
| dotenv-cli | ○ | × | × | × | ○ |
- dotenvxはCLI主体で、言語やフレームワークを問わず使えるのが最大の強み。
- クラウド同期やバリデーション、CI/CD連携も公式でサポート。
python-dotenvはPython専用で、CLI用途はやや弱い。direnvはシェルのhookで自動ロードできるが、バリデーションや同期は非対応。
実際の活用シナリオ・所感
- CI/CDでの安全な環境変数管理: GitHub ActionsやVercelなどで、dotenvxのpull/push機能を使うと、.envファイルを安全に同期・管理できる。Secretsの手動管理より楽。
- 複数プロジェクト・複数環境の切り替え:
-f|--env-fileオプションでdev/prod/testを簡単に切り替えられるのが便利。 - バリデーションで事故防止:
.env.exampleとの比較で、必要な変数が漏れていないかチェックできる。 - CLI主体のシンプルな運用: 言語やフレームワークを問わず、CLI一発で環境変数を注入できるのはやはり快適。
所感
個人的には「.env管理の決定版」と言える使い勝手。特にCI/CDやチーム開発での.env同期・バリデーションは、従来の手作業やスクリプト管理より圧倒的に楽です。Pro機能のクラウド同期も便利ですが、無料でも十分実用的。
「.env管理が面倒」「CI/CDで安全に環境変数を扱いたい」という方は、ぜひ一度dotenvxを試してみてください。