문제: 서비스가 늘어날수록 시크릿 관리가 복잡해진다

.env 파일이 서버마다 흩어져 있으면 어떤 값이 최신인지 알 수 없다. Doppler는 이 문제를 프로젝트 단위 시크릿 관리로 해결한다.

설정 방법

  1. Doppler 프로젝트 생성 (서비스당 1개)
  2. prd 환경에 시크릿 등록
  3. .kamal/secrets에서 Doppler adapter 사용:
RAILS_MASTER_KEY=$(cat config/master.key)
KAMAL_REGISTRY_PASSWORD=$(gh auth token)

# Doppler에서 나머지 시크릿 가져오기
DATABASE_PASSWORD=$(kamal secrets fetch --adapter doppler --from myapp/prd DATABASE_PASSWORD | kamal secrets extract DATABASE_PASSWORD)

주의사항

  • .kamal/secrets는 dotenv 파서라서 source, if 등 셸 빌트인을 지원하지 않는다
  • $() 명령어 치환만 사용 가능
  • RAILS_MASTER_KEYKAMAL_REGISTRY_PASSWORD는 Doppler에 넣지 않는다 (로컬 파일/gh CLI)

Free tier로 10개 프로젝트까지 무료. 6개 서비스 운영에 충분하다.