Vercel에서 환경변수 관리하기

훈이는못말려·2023년 7월 30일
0
post-thumbnail

.env

개발을 하다보면 DB관련 정보, API 키 등 개발자 또는 그 팀끼리만 알아야 하는 값들이 있다. 이러한 정보는 github repository등 공개적인 곳에 보여지면 안되기 때문에 .env 파일을 따로 생성해서 환경변수를 관리한다.

.env파일은 로컬 작업 시에 필요하므로 로컬에는 남겨둬야 한다.

Vercel에서 환경변수 관리하기

현재 진행중인 Next.js 프로젝트를 Vercel에 배포하고 있는 중이다. .env 파일 관리를 미리 했어야 하는데 하지 못했다.

  1. Vercel Project Dashboard -> Settings -> Environment Variables

  2. Key, Value 채워넣기

    DATABASE_URL = [DATABASE_URL Value]
    
    # KAKAO LOGIN
    KAKAO_CLIENT_ID = [KAKAO_CLIENT_ID Value]
    KAKAO_CLIENT_SECRET = [KAKAO_CLIENT_SECRET Value]
    
    # NEXTAUTH
    NEXTAUTH_URL = [NEXTAUTH_URL Value]
    NEXTAUTH_SECRET = [NEXTAUTH_SECRET Value]

    위 값들을 Key, Value에 채워넣고 Save를 누르면 된다.

위 과정을 마무리하면 Vercel에서의 Setting은 끝났다.

github repository에 이미 올라간 .env 지우기

이제 로컬에 있는 .env 파일을 github repository에 더이상 올리면 안되니까 .gitignore에 추가해줬다.

# env files
.env

하지만 github repository를 보면 저장소에 아직 .env파일이 남아 있었고, 커밋 내역을 보면 .env 파일에 대한 기록이 남아있어서 누구나 볼 수 있었다. 이를 해결하기 위해서는 아래 2가지 작업을 해야한다.

  1. github repository에서 .env 지우기
    • 해당 파일 들어간후 Delete file 클릭
  2. History 지우기
    • local terminal에 명령어 작성
      git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch 경로/경로/파일명.확장자' --prune-empty --tag-name-filter cat -- --all
      [경로/경로/파일명.확장자]에 .env를 넣어주면 된다.
    • 성공적으로 마무리 됐다면 [기록이 남아있는 브랜치] was rewritten 이라고 나타난다.
    • Github Repository에 --force 옵션을 통해 Push한다.

위 과정을 마무리하면 Github Repository 어디에서도 .env에 대한 내용을 찾을 수 없다.

0개의 댓글