Discord에 .env 파일을 공유하지 마세요. 대신 설정 없이 바로 사용할 수 있는 E2E 암호화 CLI를 만들었습니다.
Source: Dev.to
빠른 프로젝트 인수인계 시 환경 변수를 공유하는 것이 Doppler나 Infisical 같은 무거운 엔터프라이즈 금고를 설정해야 한다는 의미는 아니다. 하지만 Slack이나 Discord에 평문 API 키를 복사‑붙여넣기 해야 한다는 의미도 아니다.
나는 마찰 없이 터미널에서 바로 사용할 수 있는 다리 역할을 원했다. 그래서 share‑env라는 일시적인 피어‑투‑피어 CLI를 만들었다. 이 도구는 .env 파일을 안전하게 공유한다.
아래는 내부 구조를 정확히 설명한 내용이다.
True Zero-Knowledge E2E Encryption
crypto 모듈(AES‑256‑GCM)을 사용한다. 복호화 키는 생성된 공유 코드의 해시 조각(예: blue-sky-rocket#a1b2c3d4)에 포함되어 전달된다. 릴레이 서버는 암호문만 받으며, # 뒤의 16진수 키는 절대 로컬 머신을 떠나지 않는다.
Smart Merging (No overwriting)
share‑env는 들어오는 페이로드를 dotenv 로 파싱한다. 충돌이 발생하면(예: 로컬에 PORT=3000이 있고, 전달된 파일에 PORT=8080이 있을 때) 일시 중지하고 어떤 값을 유지할지 인터랙티브하게 묻는다.
Pre‑Flight Git Guardrails
fs 모듈을 이용해 .gitignore 를 확인한다. .env 파일이 안전하게 무시되지 않았다면 CLI는 치명적인 오류를 발생시키고 실행을 물리적으로 차단한다.
Burn‑After‑Reading TTL
node-cache 로 암호화된 블롭을 메모리에 보관하며, 엄격히 10분 TTL을 적용한다. 페이로드가 한 번이라도 가져와지면 즉시 영구 삭제된다.
Test it locally in 5 seconds (Zero Setup)
.env 파일:
# 예시 .env 내용
Developer A (Sender):
npx share-env push
Developer B (Receiver):
npx share-env pull
Source Code & Registry:
GitHub: https://github.com/arjunn881/env-share
https://www.npmjs.com/package/share-env
나는 MERN 스택으로 개발하는 데 많은 시간을 투자하고 있으며, 서로 다른 환경에서 로컬 설정을 관리하는 것이 항상 골칫거리였다. 전체 모노레포를 오픈소스로 공개했으니, 커뮤니티가 암호화 아키텍처를 감사하거나 CLI 사용자 경험에 대한 피드백을 남겨주면 좋겠다!
— Arjun