envault について
envaultは、チームやコーディングエージェントのワークフロー向けにシークレットを保管・管理するボルトアプリです。プロジェクト単位の権限管理に加え、CLI操作やVercelとの環境変数同期に対応します。
主な機能
- 01AES-256-GCM暗号化と鍵のローテーション
- 02プロジェクト別のシークレット管理
- 03ロールベースのチームアクセス制御
- 04CLI管理とVercel同期
活用シーン
- 01複数プロジェクトのシークレット管理
- 02ロールに応じたプロジェクト共有
- 03デプロイ用変数のVercel同期
MCP 対応
envaultはMCPに対応し、AIコーディングクライアントからセキュアな環境を取得・反映できます。`envault mcp install`でクライアントを設定できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @dinanathdash/envault-mcp-serverENVAULT_TOKENシークレットRequired: Generate via Envault Account Settings -> Security -> MCP TokenENVAULT_BASE_URLRequired: https://www.envault.techローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
23掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| projectId | string | いいえ | ステータス呼び出しで使用する任意のプロジェクト ID オーバーライド。 |
詳細
Envault
Envault は、Next.js、Supabase、Tailwind CSS で構築された、安全でモダンなボルトアプリケーションです。堅牢な認証システムと洗練されたユーザーインターフェースを備え、機密情報を保存・管理できます。
機能
- 銀行レベルのセキュリティ:マスターキー/データキー階層と自動キー ローテーションを備えた AES-256-GCM 暗号化。
- プロジェクトワークスペース:シークレットを個別のプロジェクトに整理して、管理しやすくします。
- セマンティックルーティング:共有やナビゲーションを簡単にする、GitHub スタイルのすっきりとした URL(
/[username]/[project-slug])。 - チームコラボレーション:厳格なロールベースのアクセス制御による、安全なプロジェクト共有:
- オーナー:完全な管理権限(名前の変更、削除、チームの管理)。
- エディター:積極的に貢献するメンバー(シークレットの読み書き、共有のリクエスト)。
- 閲覧者:変数への読み取り専用アクセス。
- 安全な認証:Supabase Auth を利用した堅牢なユーザー管理。パスワードなしの生体認証ログインを可能にする パスキー にも対応しています。
- モダンな UI/UX:Tailwind CSS、Shadcn UI、Framer Motion で構築された、上質な使用感。
- インタラクティブな 3D 要素:React Three Fiber を活用した高性能な 3D ビジュアル。
- キーボードファースト:完全にカスタマイズ可能で、競合のないホットキーを使って効率的に操作できます。
- レスポンシブデザイン:デスクトップとモバイルでシームレスに動作する、完全レスポンシブなレイアウト。
- ダークモード対応:ライトテーマとダークテーマを標準でサポートしています。
- CLI 対応:ターミナルからシークレットを直接管理できます。バックグラウンドで自動更新チェックを行い、作業を妨げません。
- Vercel ネイティブ連携:Vercel プロジェクトをリンクし、環境をマッピングして、シークレットを Vercel の環境変数ストレージに直接同期できます。これにより、サーバーレスランタイムとの互換性を確保します。
- リアルタイムのシステムステータス:専用のステータスページで、システムの健全性、進行中のインシデント、過去の稼働率を確認できます。
- 専用サポートページ:アプリ内にサポート機能を統合し、トラブルシューティングの選択肢を効率的に管理できます。
- 充実したドキュメント:ガイド、API リファレンス、CLI ドキュメントを備えた統合ドキュメントサイト。
CLI
Envault は Model Context Protocol(MCP)をネイティブにサポートしているため、Claude Desktop、Cursor、RooCode/Cline などの AI コーディングアシスタントで、安全な環境の取得と登録を簡単に行えます。
# Automatically configure your AI clients (Global & Local Workspaces)
envault mcp install
# Or install strictly for the current workspace
envault mcp install --local
インストール
macOS と Linux(共通)
curl -fsSL https://raw.githubusercontent.com/DinanathDash/Envault/main/install.sh | sh
macOS(Homebrew)
brew tap DinanathDash/envault
brew install --formula envault
Homebrew cask によるインストールは非推奨です。cask 経由でインストールした場合は、次のコマンドで移行してください。
brew uninstall --cask dinanathdash/envault/envault
brew install --formula envault
詳しくは、CLI ドキュメントをご覧ください。
ローカルテスト
Envault のローカル開発では、HTTPS ホスト名を使う portless が使用されるようになりました。
npm install -g portless
ローカル開発サーバーで Envault CLI を使うには、ENVAULT_CLI_URL 環境変数を設定してください。
export ENVAULT_CLI_URL="https://envault.localhost:1355/api/cli"
envault login
envault run でローカルアプリをワンコマンドで起動する場合は、ENVAULT_CLI_URL/ENVAULT_BASE_URL を設定せず、ホストされた API から優先的にデータを取得する動作にしてください。
セキュリティアーキテクチャ
Envault は、最大限のセキュリティを確保するためにハイブリッド暗号化モデルを採用しています。
- マスターキー:環境変数に保存される 32 バイトのキーで、データキーの暗号化と復号のみに使用されます。
- データキー:実際のデータの暗号化に使用する一意のキーです。暗号化された状態でデータベースに保存されます。
- キー ローテーション:データキーをローテーションできます。アクティブなキーは、セキュリティを損なうことなく高いパフォーマンスを実現するため、Redis にキャッシュされます。
- AES-256-GCM:すべてのシークレットに使用する、業界標準の認証付き暗号化方式です。
技術スタック
- フレームワーク: Next.js(App Router)
- データベースと認証: Supabase
- KV ストア: Upstash Redis
- ドキュメント: Fumadocs
- スタイリング: Tailwind CSS
- UI コンポーネント: Shadcn UI / Radix UI
- 3D とグラフィックス: React Three Fiber / Three.js
- アニメーション: Framer Motion
- アイコン: Lucide React
- 状態管理: Zustand
- フォーム: React Hook Form + Zod
- 通知: Sonner
- 分析: Vercel Analytics
はじめに
プロジェクトをローカルで実行するには、以下の手順に従ってください。
前提条件
- Node.js 18+ がインストールされていること
- Supabase プロジェクトがセットアップされていること
インストール
-
リポジトリをクローンする
git clone https://github.com/dinanathdash/envault.git cd envault -
依存関係をインストールする
npm install # または yarn install # または pnpm install # または bun install -
環境をセットアップする
サンプル環境ファイルをコピーします。
cp .env.example .env.local.env.localを開き、Supabase の認証情報を追加します。NEXT_PUBLIC_SUPABASE_URL=your-project-url NEXT_PUBLIC_SUPABASE_ANON_KEY=your-anon-key # セキュアなキーを生成します: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))" ENCRYPTION_KEY=your-64-char-hex-key SUPABASE_SERVICE_ROLE_KEY=your-service-role-key UPSTASH_REDIS_REST_URL=your-upstash-url UPSTASH_REDIS_REST_TOKEN=your-upstash-token # フロントエンドの API ミューテーション(POST、PUT、DELETE、PATCH)の安全な署名と検証に使用します NEXT_PUBLIC_API_SIGNATURE_SALT=your-secure-random-hmac-secret -
開発サーバーを起動する
npm run devブラウザーで https://envault.localhost:1355 を開くと、結果を確認できます。
オプション: Vercel ネイティブ連携のセットアップ
Vercel ネイティブ同期を使用する場合(Vercel のサーバーレスランタイムでは推奨)、以下の変数を追加します。
VERCEL_CLIENT_ID=your_vercel_oauth_client_id
VERCEL_CLIENT_SECRET=your_vercel_oauth_client_secret
VERCEL_REDIRECT_URI=https://your-domain.com/api/integrations/vercel/callback
VERCEL_WEBHOOK_SECRET=your_vercel_webhook_signing_secret
NEXT_PUBLIC_VERCEL_INTEGRATION_INSTALL_URL=https://vercel.com/<team-or-user>/~/integrations/envault
本番環境では本番用 URL を使用してください。ローカル開発以外では、ngrok や localhost のコールバック URL を使用しないでください。
-
メール設定をテストする(任意)
Resend API の設定が機能していることを確認するには、自分宛てにテストメールを送信できます。
npm run test:email -- [email protected]
モノレポのセットアップ一覧
このリポジトリには、公開または実行可能な複数のコンポーネントが含まれています。クローンやコントリビューションの際は、この一覧を参照してください。
| フォルダー | 用途 | インストール | よく使うコマンド |
|---|---|---|---|
./ | メインの Next.js アプリ | npm install | npm run dev、npm run build、npm run lint、npm run test:all |
cli-go/ | Go CLI(envault) | go mod download | go test ./...、go build ./... |
src/lib/sdk/ | npm SDK パッケージ(@dinanathdash/envault-sdk) | npm install | npm run typecheck、npm run build |
mcp-server/ | npm MCP パッケージ(@dinanathdash/envault-mcp-server) | npm install | npm run check、npm start |
cli-wrapper/ | CLI のインストール/ブートストラップ用 npm ラッパー | npm install | node install.js |
初めてコントリビューションする場合の流れ
- ルートの依存関係をクローンしてインストールします。
git clone https://github.com/dinanathdash/envault.git
cd envault
npm install
- 環境ファイルをコピーし、必須キーを設定します。
cp .env.example .env.local
- 公開可能なサブパッケージの各ディレクトリで依存関係をインストールします。
cd src/lib/sdk && npm install
cd ../../.. && cd mcp-server && npm install
cd ..
- すべてをまとめて検証します。
npm run lint
npm run test:all
npm run build
パッケージの公開とワークフロー
npm パッケージ
- SDK:
@dinanathdash/envault-sdk(ソース:src/lib/sdk/) - MCP:
@dinanathdash/envault-mcp-server(ソース:mcp-server/)
GitHub Actions ワークフロー
- CLI リリースワークフロー:
.github/workflows/publish.yml - SDK 公開ワークフロー:
.github/workflows/publish-sdk.yml - MCP 公開ワークフロー:
.github/workflows/publish-mcp.yml
各パッケージは、それぞれのフォルダーに変更があった場合、semantic-release を使用して独立してバージョン管理されます。
- CLI タグ:
v<version> - SDK タグ:
sdk-v<version> - MCP タグ:
mcp-v<version>
これにより、SDK と MCP のリリース系列を CLI のバージョン更新から切り離せます。
ローカルでの公開前チェック
npm run sdk:check
npm run mcp:check
手動での公開コマンド
npm run sdk:publish
npm run mcp:publish
バージョンと更新コマンド
使用中のバージョンをすばやく確認し、安全に更新できるよう、以下のコマンドを使用してください。
CLI(envault)
インストール済みの CLI バージョンを確認します。
envault --version
Homebrew formula を使用して更新します。
brew update
brew untap dinanathdash/envault || true
brew tap dinanathdash/envault
brew upgrade --formula envault
SDK(@dinanathdash/envault-sdk)
インストール済みおよび最新の SDK バージョンを確認します。
npm ls @dinanathdash/envault-sdk
npm view @dinanathdash/envault-sdk version
SDK を更新します(Envault CLI の使用を推奨)。
envault sdk update
SDK を更新します(npm を使用する場合)。
npm install @dinanathdash/envault-sdk@latest
実行時の動作:
- より新しい SDK バージョンが存在する場合、SDK は警告を表示します。
- サーバーで設定された最小サポートバージョンを下回る場合、SDK は実行を停止します。
MCP(@dinanathdash/envault-mcp-server)
インストール済みの MCP バージョンを確認します(MCP パッケージを単独でインストールした場合)。
envault-mcp-server --version
MCP の更新が利用可能か確認します(MCP パッケージを単独でインストールした場合)。
envault-mcp-server --check-update
MCP 統合を更新します(Envault CLI の使用を推奨)。
envault mcp update
MCP をグローバルに更新します(単独インストールで npm を使用する場合)。
npm install -g @dinanathdash/envault-mcp-server@latest
ライセンス
Copyright (c) 2026 Dinanath Dash. All Rights Reserved.
リポジトリルートのソースコードは、透明性の確保、セキュリティ監査、教育のみを目的として提供されています。これはオープンソースソフトウェアではありません。
セキュリティ目的でコードを調査および分析できます。事前に明示的な書面による許可を得ることなく、プロプライエタリなリポジトリコードを実行、コンパイル、起動、デプロイ、複製、変更、フォーク、再配布、サブライセンス、または使用したサービスの提供を行うことはできません。
ライセンスの適用範囲に関する例外:mcp-server/ と src/lib/sdk/ は、それぞれのディレクトリ内で MIT ライセンスの下に配布されています。
法的条件の全文については、LICENSE ファイルを参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。