도퍼 + direnv == "<3"

React를 사용하여 빌드cl3rk.io하고 있습니다. SPA에는 OAuth 클라이언트 ID, Auth0 도메인 및 백엔드 URL과 같은 일부 구성이 필요합니다. 두 가지 옵션이 있으므로 git repo에서 구성을 커밋하지 않으려고 합니다.
  • 작업 중인 모든 시스템에 .env 파일을 생성합니다
  • .
  • 구성 공급자에게 구성을 아웃소싱합니다
  • .

    Azure App Configuration 과 같은 많은 구성 공급자가 있습니다. 몇 달 전에 저는 Doppler를 발견했습니다. Doppler는 정의상 구성 관리자가 아니라 몇 가지 깔끔한 기능을 갖춘 비밀 저장소입니다. 이 게시물에서는 direnv와 함께 doppler를 사용하는 방법을 보여줍니다.

    요구 사항:
  • 이것은 Linux/Mac OS에서만 작동합니다
  • .
  • Doppler shell
  • direnv

  • 도플러



    Doppler는 넉넉한 무료 서비스를 제공합니다(사용자 5명 무료! 🎉) - 개인 프로젝트뿐만 아니라 아직 돈을 벌지 못하는 cl3rk에 doppler를 사용하고 있기 때문에 이는 저에게 매우 중요합니다.



    왼쪽 상단에서 눈에 띄게 나는 cl3rk 작업 공간에 있습니다. 각 사용자는 여러 작업 공간을 가질 수 있습니다. 작업 중인 각 제품 또는 프로토타입에 대한 작업 공간이 있습니다.

    각 작업공간에는 여러 프로젝트가 있습니다. 저는 두 가지 방법으로 프로젝트를 사용합니다.
  • secrets referencing을 통해 다른 프로젝트에서 구성을 사용할 수 있도록 합니다. 스크린샷에서 azure 프로젝트가 이에 대한 예입니다. Azure와 대화할 수 있는 자격 증명을 보유하고 있습니다.
  • 프로젝트의 논리적 단위당: 프런트엔드 및 잠재적 백엔드/API



  • 각 프로젝트에는 서로 다른 배포에 대한 서로 다른 구성 인스턴스를 나타내는 단계가 있습니다.



    각 단계에는 고유한 비밀 및 구성 세트가 포함되어 있습니다.

    더 많은 것을 탐색할 수 있으므로 Doppler으로 이동하여 사용해 보십시오.

    디렌브



    Doppler 구성 및 React의 링크가 여전히 누락되어 이를 위해 direnv을 사용하고 있습니다.

    direnv를 사용하면 각 폴더에 명령 파일( .envrc )을 배치할 수 있으며 터미널이 폴더에 들어가자마자 .envrc가 실행됩니다. 추가 환경 변수를 설정하거나 경로에 실행 파일을 추가하는 데 유용합니다.

    .env 파일을 읽고 해당 내용을 환경 변수에 추가하는 예.envrc:

    dotenv
    export Hi="dev.to"
    


    디렉토리 진입/적용 시 셸 출력direnv allow .:

    direnv: loading ~/projects/cl3rk/.envrc                                                        
    direnv: export +DOPPLER_TOKEN +Hi
    ~/projects/cl3rk main*


    2개의 변수가 설정되고 있습니다DOPPLER_TOKEN는 .env 파일에서, Hi는 .envrc에서 가져옵니다.

    폴더를 떠날 때마다 추가된 모든 변수가 다시 제거됩니다.

    direnv: unloading
    


    다음은 실제 예입니다.

    .
    │   .envrc
    │   .env                 # contains the doppler access token    
    │   ...
    └───IaC                  # contains all code for Infrastructure as Code
    │   │   .envrc           # updated .envrc file to point to the correct Doppler project (infrastructure) and stage (dev by default)
    │   │   main.tf
    └───Web_Frontend
        │   .envrc           # updated .envrc file to point to the correct Doppler project (backend) and stage (dev by default
        │   package.js
    

    ./.envrc :

    dotenv # only read the .env file
    

    ./.env :

    DOPPLER_TOKEN="dp.pt.***"
    

    IaC/.envrc :

    source_up                               # also scan top-level folders for .envrc files and run them as well
    export DOPPLER_PROJECT=infrastructure   # use the infrastructure project
    export DOPPLER_CONFIG=dev               # and the dev stage
    # download all the secrets to your shell and remove them
    export $(doppler secrets download --no-file --format env-no-quotes)
    
    


    노트북을 분실할 때마다 Doppler 토큰을 재생성하면 PC에 비밀이 남지 않습니다. 또한 .env 파일을 복사하지 않고도 동료와 쉽게 구성을 공유할 수 있습니다. 디렉토리 중 하나에 들어가자마자 .envrc 코드가 실행되고 Doppler는 비밀을 프로젝트에서 사용할 수 있는 환경 변수로 주입합니다. 꽤 깔끔한. 어떻게 생각해?

    좋은 웹페이지 즐겨찾기