replit-multi-env-setup
Replitを開発環境、ステージング環境、本番環境にわたって設定できます。マルチ環境でのデプロイメント構築、環境ごとのシークレット設定、環境別のReplit設定を実装する際に活用できます。「replit environments」「replit staging」「replit dev prod」「replit environment setup」「replit config by env」といったフレーズで実行されます。
description の原文を見る
Configure Replit across development, staging, and production environments. Use when setting up multi-environment deployments, configuring per-environment secrets, or implementing environment-specific Replit configurations. Trigger with phrases like "replit environments", "replit staging", "replit dev prod", "replit environment setup", "replit config by env".
SKILL.md 本文
Replit マルチ環境セットアップ
概要
開発環境、ステージング環境、本番環境にわたって Replit を設定します。
前提条件
- 環境ごとに別の Replit アカウントまたは API キー
- シークレット管理ソリューション(Vault、AWS Secrets Manager など)
- 環境変数を含む CI/CD パイプライン
- アプリケーション内の環境検出機能
環境戦略
| 環境 | 目的 | API キー | データ |
|---|---|---|---|
| 開発 | ローカル開発 | テストキー | サンドボックス |
| ステージング | 本番前検証 | ステージングキー | テストデータ |
| 本番 | ライブトラフィック | 本番キー | 実データ |
設定構造
config/
├── replit/
│ ├── base.json # 共有設定
│ ├── development.json # 開発環境オーバーライド
│ ├── staging.json # ステージング環境オーバーライド
│ └── production.json # 本番環境オーバーライド
base.json
{
"timeout": 30000,
"retries": 3,
"cache": {
"enabled": true,
"ttlSeconds": 60
}
}
development.json
{
"apiKey": "${REPLIT_API_KEY}",
"baseUrl": "https://api-sandbox.replit.com",
"debug": true,
"cache": {
"enabled": false
}
}
staging.json
{
"apiKey": "${REPLIT_API_KEY_STAGING}",
"baseUrl": "https://api-staging.replit.com",
"debug": false
}
production.json
{
"apiKey": "${REPLIT_API_KEY_PROD}",
"baseUrl": "https://api.replit.com",
"debug": false,
"retries": 5
}
環境検出
// src/replit/config.ts
import baseConfig from '../../config/replit/base.json';
type Environment = 'development' | 'staging' | 'production';
function detectEnvironment(): Environment {
const env = process.env.NODE_ENV || 'development';
const validEnvs: Environment[] = ['development', 'staging', 'production'];
return validEnvs.includes(env as Environment)
? (env as Environment)
: 'development';
}
export function getReplitConfig() {
const env = detectEnvironment();
const envConfig = require(`../../config/replit/${env}.json`);
return {
...baseConfig,
...envConfig,
environment: env,
};
}
環境ごとのシークレット管理
ローカル開発
# .env.local (git-ignored)
REPLIT_API_KEY=sk_test_dev_***
CI/CD (GitHub Actions)
env:
REPLIT_API_KEY: ${{ secrets.REPLIT_API_KEY_${{ matrix.environment }} }}
本番環境 (Vault/Secrets Manager)
# AWS Secrets Manager
aws secretsmanager get-secret-value --secret-id replit/production/api-key
# GCP Secret Manager
gcloud secrets versions access latest --secret=replit-api-key
# HashiCorp Vault
vault kv get -field=api_key secret/replit/production
環境の分離
// 本番環境以外での本番環境操作を防止
function guardProductionOperation(operation: string): void {
const config = getReplitConfig();
if (config.environment !== 'production') {
console.warn(`[replit] ${operation} blocked in ${config.environment}`);
throw new Error(`${operation} only allowed in production`);
}
}
// 使用例
async function deleteAllData() {
guardProductionOperation('deleteAllData');
// 危険な操作がここに入ります
}
環境ごとの機能フラグ
const featureFlags: Record<Environment, Record<string, boolean>> = {
development: {
newFeature: true,
betaApi: true,
},
staging: {
newFeature: true,
betaApi: false,
},
production: {
newFeature: false,
betaApi: false,
},
};
手順
ステップ 1: 設定構造を作成
ベースおよび環境ごとの設定ファイルをセットアップします。
ステップ 2: 環境検出を実装
環境固有の設定を検出して読み込むロジックを追加します。
ステップ 3: シークレットを設定
シークレット管理ソリューションを使用して API キーを安全に保存します。
ステップ 4: 環境ガードを追加
本番環境のみの操作に対するセーフガードを実装します。
出力
- マルチ環境設定構造
- 環境検出ロジック
- セキュアなシークレット管理
- 本番環境のセーフガード有効化
エラーハンドリング
| 問題 | 原因 | 解決策 |
|---|---|---|
| 不正な環境 | NODE_ENV が未設定 | 環境変数を設定する |
| シークレットが見つからない | シークレットパスが誤っている | シークレットマネージャーの設定を確認する |
| 設定のマージが失敗 | JSON が無効 | 設定ファイルを検証する |
| 本番環境ガードがトリガー | 環境が誤っている | NODE_ENV 値を確認する |
例
クイック環境チェック
const env = getReplitConfig();
console.log(`Running in ${env.environment} with ${env.baseUrl}`);
リソース
次のステップ
オブザーバビリティセットアップについては、replit-observability を参照してください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- Brmbobo
- リポジトリ
- Brmbobo/Web2podcast
- ライセンス
- MIT
- 最終更新
- 2026/1/26
Source: https://github.com/Brmbobo/Web2podcast / ライセンス: MIT
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。