Envii - 암호화된 환경 변수 백업 치트시트
Envii - 암호화된 환경 변수 백업 치트시트
섹션 제목: “Envii - 암호화된 환경 변수 백업 치트시트”머신 간에 .env 파일을 안전하게 백업하고 복원하는 CLI 도구. 12단어 복구 문구를 사용한 종단간 암호화 (AES-256-GCM)를 사용 — 서버는 평문 비밀을 볼 수 없습니다.
npm에서 (전역)
섹션 제목: “npm에서 (전역)”npm install -g envii
소스에서
섹션 제목: “소스에서”git clone https://github.com/akinloluwami/envii.git
cd envii/envii-cli
npm install
npm run build
npm link
필수: Node.js 18+
시작하기
섹션 제목: “시작하기”초기화 (처음만)
섹션 제목: “초기화 (처음만)”envii init
이것은 12단어 복구 문구를 생성합니다. 안전하게 저장하세요 — 백업을 복호화하는 유일한 방법입니다. 비밀번호도 없고, 이메일도 없고, 계정도 없습니다.
중요: 복구 문구를 적어서 안전한 곳에 보관하세요 (비밀번호 관리자, 물리적 백업). 분실하면 백업을 영구적으로 복구할 수 없습니다.
핵심 명령어
섹션 제목: “핵심 명령어”| 명령어 | 설명 |
|---|---|
envii init | envii 초기화, 복구 문구 생성 |
envii backup | 현재 디렉토리 트리를 스캔하고 모든 .env 파일 백업 |
envii restore | 백업된 모든 .env 파일 다운로드 및 복호화 |
envii restore --force | 프롬프트 없이 기존 .env 파일 복원 및 덮어쓰기 |
envii list | 활성 백업이 있는 모든 프로젝트 나열 |
작동 방식
섹션 제목: “작동 방식”백업 흐름
섹션 제목: “백업 흐름”cd ~/projects # 프로젝트 루트로 이동
envii backup # 하위 디렉토리의 모든 .env 파일 스캔
- Envii는 현재 디렉토리 트리에서 프로젝트를 스캔합니다 (
.git,package.json등으로 식별) - 모든
.env*파일이 발견됩니다 (.env,.env.local,.env.production등) - 각 파일은 PBKDF2 키 유도 (600,000회 반복)를 사용하여 AES-256-GCM으로 로컬에서 암호화됩니다
- 암호화된 데이터만 서버로 전송됩니다
- 프로젝트는 Git 원격 URL, 패키지 이름 또는 폴더 이름으로 식별됩니다
복원 흐름
섹션 제목: “복원 흐름”cd ~/projects # 새 머신에서
envii restore # 모든 백업 다운로드 및 복호화
- Envii가 암호화된 백업을 다운로드합니다
- 복구 문구를 사용하여 로컬에서 복호화합니다
.env파일을 원래 프로젝트 경로에 다시 배치합니다- 기존 파일을 덮어쓰기 전에 프롬프트 (건너뛰려면
--force사용)
보안 아키텍처
섹션 제목: “보안 아키텍처”| 기능 | 세부 사항 |
|---|---|
| 암호화 | AES-256-GCM |
| 키 유도 | 600,000회 반복의 PBKDF2 |
| 고유 IV | 각 백업에는 고유한 초기화 벡터가 있습니다 |
| 인증 태그 | 모든 백업에서 변조 감지 |
| 제로 지식 | 서버는 복구 문구, 평문 또는 암호화 키를 볼 수 없습니다 |
| 복구 | 12단어 문구가 유일한 인증 방법입니다 |
개발 모드
섹션 제목: “개발 모드”| 명령어 | 설명 |
|---|---|
envii init --dev | 로컬 API (localhost:4400)에 대해 초기화 |
envii backup --dev | 로컬 API 서버를 사용한 백업 |
envii restore --dev | 로컬 API 서버에서 복원 |
envii list --dev | 로컬 API에서 백업 나열 |
Envii는 다음 위치에 설정을 저장합니다:
| 항목 | 위치 |
|---|---|
| 설정 파일 | ~/.envii/config.json |
| 복구 문구 해시 | 설정에 저장 (문구 자체는 절대 저장 안 함) |
일반적인 워크플로우
섹션 제목: “일반적인 워크플로우”# 메인 머신에서 초기 설정
envii init
# ⚠️ 12단어 복구 문구를 저장하세요!
# 프로젝트 디렉토리에서 모든 env 파일 백업
cd ~/projects
envii backup
# 새 머신 설정
envii init # 동일한 복구 문구 입력
cd ~/projects
envii restore # 모든 .env 파일 복원됨
# 백업된 항목 확인
envii list
# env vars 변경 후 백업 업데이트
envii backup # 업데이트된 파일 재암호화 및 업로드
백업 대상
섹션 제목: “백업 대상”Envii는 일반적인 패턴과 일치하는 모든 환경 파일을 스캔합니다:
.env.env.local.env.development.env.production.env.staging.env.test- 기타
.env*변형
프로젝트는 다음의 존재로 감지됩니다:
.git디렉토리 (원격 URL을 식별자로 사용)package.json(패키지 이름 사용)- 폴더 이름으로 대체
문제 해결
섹션 제목: “문제 해결”| 문제 | 해결 방법 |
|---|---|
| ”프로젝트를 찾을 수 없음” | 프로젝트가 있는 디렉토리에 있는지 확인 (.git 또는 package.json 있어야 함) |
| 복원 실패 | 원래 init와 동일한 복구 문구를 사용하는지 확인 |
| 복구 문구 분실 | 백업을 복구할 수 없음 — 재초기화 및 재백업 |
| 권한 거부 | ~/.envii/ 디렉토리가 쓰기 가능한지 확인 |
| 네트워크 오류 | 인터넷 연결 확인; envii는 API 서버에 대한 액세스 필요 |
모범 사례
섹션 제목: “모범 사례”- 비밀번호 관리자에 복구 문구 저장 (1Password, Bitwarden 등)
- 머신을 전환하거나 다시 포맷하기 전에
envii backup실행 .env파일을 Git에 커밋하지 마세요 — 대신 envii 사용- 환경 변수 업데이트 후 정기적인 백업 실행
envii list사용하여 백업이 최신인지 확인