dotenvx とは?.env を暗号化して安全に Git 管理できる新しい環境変数管理ツール
最近SNSで目にとまったdotenvxついて調べてみたので紹介するぞ!
開発で欠かせない .env ファイル。
しかし、従来は .env を Git 管理できないという問題があった。
-
.envは GitIgnore -
.env.exampleはあくまでテンプレ - 新メンバー参加時の共有が手間
- 変更履歴が残らず事故りやすい
これらをまとめて解決するのが dotenvx なのだ!
dotenvx を使うと、暗号化した .env を Git にコミットできるようになり、チーム開発が楽になるぞ。
🚀 dotenvx の特徴
🔐 1. .env を AES-256 で暗号化できる
dotenvx encrypt
.env ← 平文
.env.enc ← 暗号化された .env(Git 入れて OK)
.env.keys ← 復号キー一覧(Git 入れない)
🔑 2. 復号鍵(DOTENV_KEY)を環境ごとに管理できる
DOTENV_KEY=xxxxx dotenvx run -- node app.js
🧑🤝🧑 3. チーム共有が楽
.env.enc は Git で共有し、鍵だけ安全に配布する構造。
🌍 4. 言語を問わず使える
ts、js / Python / Go / Ruby / Rust など大体の言語で使える模様。
📦 インストール方法
dotenvx は Node.js 製の CLI ツール !
✔ npm グローバルインストール
npm i -g dotenvx
✔ プロジェクトローカル
npm i -D dotenvx
📝 基本的な使い方
1. .env 作成
DATABASE_URL=mysql://user:pass@localhost:3306/db
API_KEY=abcdef12345
SECRET_TOKEN=secret
2. 暗号化
dotenvx encrypt
3. 実行
Node:
dotenvx run -- node app.js
Python:
dotenvx run -- python main.py
Docker:
dotenvx run -- docker compose up
🔍 dotenvx encrypt を実行するとどうなる?
dotenvx encrypt を叩くと以下の処理が行われる。
🧩 ① .env を読み込む
現在の .env の内容を読み込む。
🔐 ② AES-256 で暗号化し .env.enc を生成
読めない暗号データを生成。
🔑 ③ 復号鍵を .env.keys に保存
複数環境にも対応。
📌 ④ 元の .env は削除されない
編集しやすい状態を維持するため残される。
🚀 dotenvx run を実行するとどうなる?
dotenvx run -- node app.js を叩くとこんな感じで動くぞ。
① DOTENV_KEY の取得
環境変数 / .env.keys / 引数 から鍵を取得。
② .env.enc を復号(メモリ上)
復号した .env は ディスクに保存されない。
③ 環境変数としてプロセスへ注入
Node や Python から process.env / os.getenv で参照可能。
④ アプリを実行
復号済み環境変数を持った状態で app が走る。
🔑 複数環境の鍵を追加
dotenvx key:add production
🛡 セキュリティ
-
.env.encは AES-256 で暗号化 - 復号鍵だけ保護すれば安全
- Public リポジトリでも
.env.encは晒しておk
📁 GitIgnore 設定
.env
.env.keys
🎉 まとめ
-
.env.encを Git にコミットできる - 復号鍵だけ秘匿すれば安全
- 言語非依存で導入しやすい
わいも今後実際にプロジェクトで使ってみたいぞ。