## 🚨 보안 강화 - 하드코딩된 비밀번호를 환경변수로 전환 - .env.example 생성 및 보안 가이드 추가 - docker-compose.yml 환경변수 적용 - README.md에서 실제 비밀번호 제거 ## 🗑️ 중복 제거 - synology_deployment/ 디렉토리 제거 (268MB) - synology_deployment*.tar.gz 아카이브 제거 (234MB) - 총 502MB의 중복 파일 삭제 ## 🧹 백업 파일 정리 - *.backup 파일 제거 (10개) - *복사본* 파일 제거 - *이전* 파일 제거 - json(백업)/ 디렉토리 제거 ## 📋 .gitignore 업데이트 - 백업 파일 패턴 추가 - 보안 파일 제외 (.env, *.pem, *.key) - 임시 파일 제외 (*.tmp, *.new) - 빌드 아티팩트 제외 (*.tar.gz) ## 📚 문서화 - docs/ 디렉토리 구조 생성 - 리팩토링 분석 및 계획 문서 작성 - 코딩 스타일 가이드 작성 - 개발 환경 설정 가이드 작성 - 시스템 아키텍처 문서 작성 ## 변경된 파일 - .env.example (신규) - .gitignore (업데이트) - docker-compose.yml (환경변수 적용) - README.md (보안 정보 제거) - docs/* (신규 문서 7개) ## 보안 개선 효과 ✅ 비밀번호 노출 위험 제거 ✅ Git 히스토리에서 민감 정보 분리 ✅ 환경별 설정 분리 가능 ✅ 배포 보안 강화 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
116 lines
3.8 KiB
Plaintext
116 lines
3.8 KiB
Plaintext
# TK-FB-Project 환경 변수 설정 예시
|
|
# 이 파일을 복사하여 .env 파일을 생성하고 실제 값으로 변경하세요
|
|
#
|
|
# 사용법:
|
|
# 1. cp .env.example .env
|
|
# 2. .env 파일을 편집하여 실제 비밀번호로 변경
|
|
# 3. .env 파일은 절대 Git에 커밋하지 마세요!
|
|
|
|
# =============================================================================
|
|
# 데이터베이스 설정
|
|
# =============================================================================
|
|
|
|
# MariaDB/MySQL Root 비밀번호 (최소 12자 이상, 영문/숫자/특수문자 조합)
|
|
MYSQL_ROOT_PASSWORD=change_this_root_password_min_12_chars
|
|
|
|
# 데이터베이스 이름
|
|
MYSQL_DATABASE=hyungi
|
|
|
|
# 데이터베이스 사용자명
|
|
MYSQL_USER=hyungi_user
|
|
|
|
# 데이터베이스 사용자 비밀번호 (최소 12자 이상, 영문/숫자/특수문자 조합)
|
|
MYSQL_PASSWORD=change_this_user_password_min_12_chars
|
|
|
|
# =============================================================================
|
|
# API 서버 설정
|
|
# =============================================================================
|
|
|
|
# Node.js 환경 (development | production)
|
|
NODE_ENV=production
|
|
|
|
# API 서버 포트 (컨테이너 내부)
|
|
PORT=3005
|
|
|
|
# 데이터베이스 연결 정보
|
|
DB_HOST=db
|
|
DB_PORT=3306
|
|
DB_USER=hyungi_user
|
|
DB_PASSWORD=change_this_user_password_min_12_chars
|
|
DB_NAME=hyungi
|
|
|
|
# =============================================================================
|
|
# JWT 인증 설정
|
|
# =============================================================================
|
|
|
|
# JWT Secret Key (최소 32자 이상의 랜덤 문자열)
|
|
# 생성 방법: openssl rand -base64 32
|
|
# 또는: node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
|
|
JWT_SECRET=change_this_to_random_string_min_32_chars
|
|
|
|
# JWT 액세스 토큰 만료 시간
|
|
JWT_EXPIRES_IN=7d
|
|
|
|
# JWT 리프레시 토큰 만료 시간
|
|
JWT_REFRESH_SECRET=change_this_to_another_random_string_min_32_chars
|
|
JWT_REFRESH_EXPIRES_IN=30d
|
|
|
|
# =============================================================================
|
|
# FastAPI 설정
|
|
# =============================================================================
|
|
|
|
# API 서버 URL (컨테이너 간 통신)
|
|
API_BASE_URL=http://api:3005
|
|
|
|
# =============================================================================
|
|
# phpMyAdmin 설정
|
|
# =============================================================================
|
|
|
|
# phpMyAdmin에서 사용할 데이터베이스 호스트
|
|
PMA_HOST=db
|
|
|
|
# phpMyAdmin 사용자 (일반적으로 root)
|
|
PMA_USER=root
|
|
|
|
# phpMyAdmin 비밀번호 (MYSQL_ROOT_PASSWORD와 동일하게)
|
|
PMA_PASSWORD=change_this_root_password_min_12_chars
|
|
|
|
# 파일 업로드 제한
|
|
UPLOAD_LIMIT=50M
|
|
|
|
# =============================================================================
|
|
# 외부 서비스 (선택사항)
|
|
# =============================================================================
|
|
|
|
# OpenAI API (AI 기능 사용 시)
|
|
# OPENAI_API_KEY=sk-your-openai-api-key-here
|
|
|
|
# 이메일 발송 (SMTP 설정)
|
|
# EMAIL_HOST=smtp.gmail.com
|
|
# EMAIL_PORT=587
|
|
# EMAIL_USER=your-email@gmail.com
|
|
# EMAIL_PASSWORD=your-app-password
|
|
# EMAIL_FROM=noreply@tkfb.com
|
|
|
|
# =============================================================================
|
|
# 보안 참고사항
|
|
# =============================================================================
|
|
#
|
|
# 강력한 비밀번호 생성 방법:
|
|
#
|
|
# 1. 터미널에서 랜덤 비밀번호 생성:
|
|
# openssl rand -base64 24
|
|
#
|
|
# 2. Node.js로 랜덤 문자열 생성:
|
|
# node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
|
|
#
|
|
# 3. 온라인 도구 사용:
|
|
# https://www.lastpass.com/features/password-generator
|
|
#
|
|
# 주의사항:
|
|
# - .env 파일은 절대 Git에 커밋하지 마세요
|
|
# - 프로덕션 환경에서는 더 강력한 비밀번호를 사용하세요
|
|
# - 정기적으로 비밀번호를 변경하세요
|
|
# - JWT_SECRET은 유출되면 모든 토큰이 무효화됩니다
|
|
#
|