Tr_Code/ENV_SETUP_GUIDE.md

4.7 KiB

🔧 환경 변수 설정 가이드

📍 Flask 백엔드 .env 파일 설정

⚠️ 중요사항

SECRET_KEY는 Flask 백엔드의 .env 파일에 설정합니다!

Flask 백엔드: /home/ckh08045/Tr_Code/.env        ← SECRET_KEY 여기에!
TWA 프론트엔드: /home/ckh08045/Tr_Code/twa-frontend/.env  ← SECRET_KEY 불필요

🚀 빠른 설정 (3단계)

1단계: .env 파일 생성

cd /home/ckh08045/Tr_Code
cp env.example .env

2단계: SECRET_KEY 생성

터미널에서 실행:

python -c "import secrets; print(secrets.token_hex(32))"

출력 예시:

a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef12345

3단계: .env 파일 수정

생성한 .env 파일을 열어서 SECRET_KEY 값을 변경:

# 변경 전
SECRET_KEY=dev-secret-key-change-in-production

# 변경 후 (위에서 생성한 키 사용)
SECRET_KEY=a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef12345

📝 .env 파일 전체 예시

파일 위치: /home/ckh08045/Tr_Code/.env

# Supabase 설정 (Docker 기반)
SUPABASE_URL=http://localhost:8000
SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyb2xlIjoiYW5vbiIsImlzcyI6InN1cGFiYXNlIiwiaWF0IjoxNzU4NTUxNjY2LCJleHAiOjQxMDI0NDQ4MDB9.jMCGL3Q-N2o_l7JQE_HrO7Uoct86CMgLsVxpabisG4I

# Flask 세션 보안 키 (반드시 변경!)
SECRET_KEY=a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef12345

# Kong Basic Auth (선택사항 - 사용하지 않으면 비워두기)
SUPABASE_BASIC_USER=
SUPABASE_BASIC_PASSWORD=

# Flask 서버 포트
PORT=5000

설정 확인

1. .env 파일 존재 확인

ls -la /home/ckh08045/Tr_Code/.env

2. SECRET_KEY 설정 확인

grep SECRET_KEY /home/ckh08045/Tr_Code/.env

올바른 설정:

SECRET_KEY=a1b2c3d4e5f6789012345678901234567890abcdef1234567890abcdef12345

잘못된 설정 (기본값 그대로):

SECRET_KEY=dev-secret-key-change-in-production  ← 변경 필요!

3. Flask 앱 실행

cd /home/ckh08045/Tr_Code
python app.py

정상 실행 시 출력:

 * Running on http://0.0.0.0:5000

🔐 보안 체크리스트

개발 환경

  • .env 파일 생성
  • SECRET_KEY 값 변경 (기본값 사용 금지)
  • SUPABASE_URL 확인 (Docker: http://localhost:8000)
  • .env 파일이 .gitignore에 포함되어 있는지 확인

프로덕션 환경

  • SECRET_KEY를 강력한 랜덤 키로 변경
  • SUPABASE_URL을 프로덕션 URL로 변경
  • SUPABASE_ANON_KEY를 프로덕션 키로 변경
  • .env 파일 권한 설정 (chmod 600 .env)
  • 환경 변수를 시스템 환경 변수로 설정 (선택사항)

🛠️ 트러블슈팅

문제: "세션이 유지되지 않음"

원인: SECRET_KEY가 설정되지 않았거나 기본값 사용

해결:

# 1. SECRET_KEY 확인
grep SECRET_KEY /home/ckh08045/Tr_Code/.env

# 2. 새 키 생성
python -c "import secrets; print(secrets.token_hex(32))"

# 3. .env 파일에 설정
nano /home/ckh08045/Tr_Code/.env

문제: "Supabase 연결 실패"

원인: SUPABASE_URL 또는 SUPABASE_ANON_KEY 오류

해결:

# 1. Docker Supabase 상태 확인
docker ps | grep supabase

# 2. Kong Gateway 포트 확인 (기본 8000)
curl http://localhost:8000/rest/v1/

# 3. .env 파일에서 URL 확인
grep SUPABASE_URL /home/ckh08045/Tr_Code/.env

문제: ".env 파일을 찾을 수 없음"

원인: 잘못된 위치에 .env 파일 생성

해결:

# Flask 백엔드 디렉토리로 이동
cd /home/ckh08045/Tr_Code

# .env 파일 생성
cp env.example .env

# 파일 위치 확인 (app.py와 같은 디렉토리에 있어야 함)
ls -la | grep -E "(app.py|.env)"

📚 참고

Flask와 TWA 프론트엔드의 환경 변수 비교

항목 Flask 백엔드 TWA 프론트엔드
파일 위치 /home/ckh08045/Tr_Code/.env /home/ckh08045/Tr_Code/twa-frontend/.env
SECRET_KEY 필수 불필요
SUPABASE_URL 필수 필요 (다를 수 있음)
SUPABASE_ANON_KEY 필수 필요
PORT 선택 불필요

환경 변수 로드 방식

Flask (app.py):

from dotenv import load_dotenv
load_dotenv()  # .env 파일을 자동으로 로드

# 환경 변수 사용
SECRET_KEY = os.environ.get("SECRET_KEY", "default-key")

Vue.js (twa-frontend):

// .env 파일의 VUE_APP_* 변수만 자동 로드
const apiUrl = process.env.VUE_APP_API_URL

📞 문의

환경 변수 설정 관련 문의는 시스템 관리자에게 연락하세요.

부산교통공사 차량처