4.7 KiB
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
📞 문의
환경 변수 설정 관련 문의는 시스템 관리자에게 연락하세요.
부산교통공사 차량처