매번 .env 를 팀원들에게 알려줘야할까?
현우
npx dotenv-vault push # 최신 .env 업로드
npx dotenv-vault pull # 팀원이 최신 .env 받기.env (비밀값 원본) → git에 절대 올리면 안 됨
.env.vault (암호화된 파일) → git에 올려도 안전
.env.me (인증 파일) → 인증 여부 확인 파일// .env
// CRA는 REACT_APP_ 접두사 필수
REACT_APP_API_URL=https://api.example.com
REACT_APP_API_KEY=your_key_here
// Vite는 VITE_ 접두사 필수
VITE_API_URL=https://api.example.com# 설치 (초기에 환경변수 프로젝트를 구성할 때)
npm install dotenv --save
npx dotenv-vault new
# 로그인 (이미 누군가 구성을 해놓았다면 로그인 진행)
npx dotenv-vault login
# .env 파일 push (신규 업로드 또는 환경변수 업데이트 시)
npx dotenv-vault push
# 다른 팀원이 pull (다운로드)
npx dotenv-vault pull
# 만약 `.env.vault` 파일이 없다면 아래 명령어를 실행해보자
npx dotenv-vault build # 현재 환경변수의 복호화 키를 조회할 수 있다.
npx dotenv-vault keys
# 환경 별로 키가 달라, 환경 별로도 확인 가능하다.
npx dotenv-vault keys development
npx dotenv-vault keys production
/**
* 환경 별로 키가 출력이 된다.
* dotenv://:key_development_xxx…?environment=development
* dotenv://:key_production_xxx…?environment=production
*/DOTENV_KEY = dotenv://:key_xxx…?environment=production
# .github/workflows/deploy.yml
env:
DOTENV_KEY: ${{ secrets.DOTENV_KEY }}배포 플랫폼 환경 변수에 DOTENV_KEY 등록
↓ 빌드 시
.env.vault (Git에 커밋된 파일) 복호화
↓
환경 변수 주입 완료.env (평문 작성)
→ dotenvx encrypt → .env (암호화됨) + .env.keys (비밀키)
→ .env는 Git 커밋 ✅, .env.keys는 커밋 ❌
→ 배포 플랫폼에 DOTENV_PRIVATE_KEY 등록
→ 빌드/런타임에 자동 복호화# .env (개발용)
VITE_API_URL=https://dev-api.example.com
# .env.production (프로덕션용)
VITE_API_URL=https://api.example.com# 설치
npm install @dotenvx/dotenvx
# 개발용 .env 암호화
npx dotenvx encrypt
# 복호화는 아래 커맨드로
npx dotenvx decrypt
# 프로덕션용 암호화
npx dotenvx encrypt -f .env.production#/-------------------[DOTENV_PUBLIC_KEY]--------------------/
DOTENV_PUBLIC_KEY="037cfbfc90234..."
# .env
VITE_API_URL="encrypted:BAZb6wDPFaFeFzq8..."{
"scripts": {
"dev": "dotenvx run -- vite",
"build": "dotenvx run -- vite build"
}
}Vercel 환경변수 설정:
DOTENV_PRIVATE_KEY = "bd7c50b352..."# package.json scripts에 직접 명시
"build": "dotenvx run -- vite build"