doppler について
dopplerは、Doppler Secrets Managementを利用する開発者向けのスキルです。CLI操作、プロジェクトや設定の管理、シークレット注入、連携、セキュリティ対策を扱います。
主な機能
- 01プロジェクト、環境、設定の管理
- 02シークレットの取得、設定、削除
- 03コマンドやファイルへのシークレット注入
- 04外部プラットフォームとの同期
- 05セキュリティ対策とトラブルシューティング
活用シーン
- 01ローカルプロジェクトでDoppler CLIを設定
- 02環境シークレットを注入してプログラムを実行
- 03デプロイ先プラットフォームへシークレットを同期
- 04認証や設定の問題を調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ rube-de/ cc-skills --skill dopplerインストール後、Claude Code で/dopplerを入力して読み込まれたか確認します。
同梱ファイルreferences/CLI.mdreferences/INTEGRATIONS.md
詳細
Doppler のシークレット管理
Doppler のシークレット管理プラットフォームを包括的にサポートします。CLI 操作、プロジェクトと設定の管理、シークレットの注入、連携先との同期、セキュリティのベストプラクティスを扱います。
トリガー
ユーザーが「doppler」、「secrets management」、「doppler cli」、「doppler secrets」、「doppler run」、「doppler setup」、「doppler configs」、「doppler projects」、「secret injection」、「doppler environments」、「service tokens」について言及した場合に、このスキルを使用します。
クイックスタート
CLI のインストール
# macOS
brew install gnupg && brew install dopplerhq/cli/doppler
# Linux (Debian/Ubuntu)
apt-get update && apt-get install -y apt-transport-https ca-certificates curl gnupg
curl -sLf --retry 3 --tlsv1.2 --proto "=https" \
'https://packages.doppler.com/public/cli/gpg.DE2A7741A397C129.key' | \
gpg --dearmor -o /usr/share/keyrings/doppler-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/doppler-archive-keyring.gpg] https://packages.doppler.com/public/cli/deb/debian any-version main" | \
tee /etc/apt/sources.list.d/doppler-cli.list
apt-get update && apt-get install doppler
# Shell script (any OS)
curl -sLf --retry 3 --tlsv1.2 --proto "=https" https://get.doppler.com | sh
認証とセットアップ
# Login (opens browser for auth)
doppler login
# Setup project in current directory (interactive)
doppler setup
# Non-interactive setup
doppler setup --project my-app --config dev --no-interactive
目的別の一般的なタスク
| 開発者の目的 | 操作 |
|---|---|
| すべてのシークレットを一覧表示する | doppler secrets -p <project> -c <config> |
| 1 つのシークレットを取得する | doppler secrets get SECRET_NAME -p <project> -c <config> |
| シークレットを設定する | doppler secrets set KEY=value -p <project> -c <config> |
| 複数のシークレットを設定する | doppler secrets set KEY1=val1 KEY2=val2 |
| シークレットを削除する | doppler secrets delete SECRET_NAME |
| シークレットを使ってコマンドを実行する | doppler run -- your-command --flags |
| 特定の設定で実行する | doppler run -p backend -c dev -- npm start |
| シークレットをファイルとしてダウンロードする | doppler secrets download --format env --no-file |
| プロジェクトを一覧表示する | doppler projects |
| 設定を一覧表示する | doppler configs -p <project> |
| 環境を一覧表示する | doppler environments -p <project> |
| 設定を複製する | doppler configs clone -p <project> -c <source> --name <new> |
| アクティビティログを表示する | doppler activity |
| 現在のセットアップを確認する | doppler configure debug |
| ダッシュボードを開く | doppler open |
| 認証済みユーザーを確認する | doppler me |
シークレット注入のパターン
環境変数への注入
# Inject secrets as env vars for any command
doppler run -- node server.js
doppler run -- docker compose up
doppler run -- terraform apply
# Run a shell command string
doppler run --command "echo $DATABASE_URL && npm start"
# Only inject specific secrets
doppler run --only-secrets DATABASE_URL,API_KEY -- node server.js
シークレットをファイルにマウントする
# Mount as JSON file (ephemeral, cleaned up after process exits)
doppler run --mount secrets.json -- cat secrets.json
# Mount as .env file
doppler run --mount .env --mount-format env -- your-command
# Mount with template
doppler run --mount config.yaml --mount-template template.yaml -- your-command
テンプレートの置換
# Substitute secrets into a template file
doppler secrets substitute template.env.tpl > .env
オフライン時・耐障害性のためのフォールバック
# Run with fallback file (writes encrypted secrets on success, reads on failure)
doppler run --fallback ./fallback.encrypted -- npm start
# Read-only fallback (never update the fallback file)
doppler run --fallback ./fallback.encrypted --fallback-readonly -- npm start
# Offline mode (read directly from fallback, no API contact)
doppler run --fallback-only --fallback ./fallback.encrypted -- npm start
プロジェクトと設定の階層
Doppler では、シークレットを階層構造で管理します。
Workplace
└── Project (e.g. "backend", "frontend")
└── Environment (e.g. "development", "staging", "production")
└── Config (e.g. "dev", "stg", "prd")
└── Branch Config (e.g. "dev_feature-x")
設定の継承
- ルート設定(dev、stg、prd)は、それぞれの環境から継承します
- ブランチ設定は、親設定から継承します
- 上書きは連鎖して適用されます:環境 → 設定 → ブランチ設定
- 個人設定を使うと、チームに影響を与えずに各開発者が個別に上書きできます
連携先との同期
Doppler では、シークレットを外部プラットフォームと自動的に同期できます。
| プラットフォーム | 用途 |
|---|---|
| AWS Secrets Manager / SSM | ECS、Lambda、EC2 のデプロイ |
| GCP Secret Manager | GKE、Cloud Run、Cloud Functions |
| Azure Key Vault | AKS、App Service、Functions |
| Cloudflare Pages / Workers | エッジおよび Jamstack のデプロイ |
| Vercel | フロントエンド/フルスタックのデプロイ |
| Firebase Functions / Hosting | Functions の設定とビルド時のシークレット |
| Serverless Framework | Lambda/サーバーレス関数のシークレット |
| GitHub Actions | CI/CD のシークレット |
| Docker / Docker Compose | コンテナへの環境変数の注入 |
| Kubernetes | Doppler Operator 経由の Secret オブジェクト |
| Terraform | Infrastructure as Code |
| Webapp.io | CI/CD の Layerfile シークレット |
| Heroku | PaaS のデプロイ |
サービストークン
CI/CD と本番環境では、サービストークン(読み取り専用で、単一の設定にスコープを限定)を使用します。
# Generate a service token via dashboard or API
# Use in CI/CD:
DOPPLER_TOKEN=dp.st.xxx doppler run -- your-command
# Or set as environment variable
export DOPPLER_TOKEN=dp.st.xxx
doppler secrets
セキュリティのベストプラクティス
- シークレットをバージョン管理にコミットしないでください。信頼できる唯一の情報源として Doppler を使用します
- 本番環境ではサービストークンを使用してください(読み取り専用で、設定ごとにスコープを限定)
- ローカル開発での上書きには個人設定を使用してください
- 本番環境の設定では変更リクエストを有効にしてください(変更前に承認が必要になります)
- シークレットを定期的にローテーションしてください。Doppler のローテーションリマインダーを使用します
- 可能な場合は OIDC 認証を使用してください。有効期間の短いトークンを利用できます
doppler activityとダッシュボードの監査ログでアクセスを監査してください- ブランチ設定を使用して、機能ブランチごとのシークレットを分離してください
- 本番環境で
--no-verify-tlsを使用しないでください
リファレンスドキュメント
詳しく調べるには、以下のリファレンスを参照してください。
| リファレンス | 内容 |
|---|---|
| CLI.md | すべてのサブコマンドとフラグを含む、CLI コマンドの完全なリファレンス |
| INTEGRATIONS.md | CI/CD、Docker、Kubernetes、クラウドプラットフォームとの統合パターン |
トラブルシューティング
認証の問題
doppler meを実行して、現在の認証状態を確認しますdoppler configure debugを実行して、有効な設定を確認しますdoppler loginで再認証します- スコープを確認します:
doppler configure get token --scope /path/to/project
読み込まれるシークレットが間違っている
- アクティブなプロジェクト/設定を確認します:
doppler configure debug - スコープを確認します:プロジェクトディレクトリで
doppler setupを実行します - 明示的なフラグを使用します:
doppler secrets -p project -c config - 環境変数による上書きを確認します:
doppler run --preserve-env=false
フォールバックファイルの問題
- フォールバックパスに書き込み権限があることを確認します
- パスフレーズが変更されていないことを確認します(デフォルトでは設定に依存します)
doppler run cleanを使用して、古いフォールバックファイルを削除します- 新しい
doppler run --fallback ./path -- echo okで再生成します
サービストークンが機能しない
- トークンが正しいプロジェクトと設定用であることを確認します
- サービストークンは読み取り専用です。シークレットの設定や削除はできません
- ダッシュボードでトークンが取り消されていないことを確認します
DOPPLER_TOKEN環境変数が正しく設定されていることを確認します
ワークフロー
Doppler の操作を支援する際は、次の手順に従います。
- タスクを特定する:セットアップ、シークレット管理、注入、統合、デバッグのいずれかを確認します
- 前提条件を確認する:
dopplerCLI がインストールされているか、ユーザーが認証済みかを確認します - スコープを特定する:対象のプロジェクトと設定を確認します
- リファレンスを参照する:CLI フラグや統合パターンの詳細について、リファレンスドキュメントを使用します
- セキュリティを最優先する:ログにシークレット値を出力しないでください。一覧表示には
--only-namesを使用します
コメント
Markdown 対応