-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy path.env.example
More file actions
77 lines (68 loc) · 3.9 KB
/
Copy path.env.example
File metadata and controls
77 lines (68 loc) · 3.9 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
# youth-pick 로컬 개발 환경변수 예시
#
# 사용법:
# 1) 이 파일을 .env 로 복사한다: cp .env.example .env
# 2) docker compose up -d (docker compose 가 .env 를 자동으로 읽어 MySQL/Redis/MinIO 를 띄움)
# 3) 앱은 IDE/로컬에서 실행한다. (backend/front 는 컨테이너화하지 않음)
#
# 주의:
# - .env 는 절대 커밋하지 않는다(.gitignore 처리됨). 이 .env.example 만 공유한다.
# - Spring 은 .env 를 자동으로 읽지 않는다. 아래 DB_*/REDIS_* 로 "도커 MySQL" 에 붙이려면
# IDE 실행 구성의 Environment variables 에 넣거나, 셸에서 export 후 실행한다.
# - 그냥 설정 없이 앱을 실행하면 application-local.yml의 로컬 인프라 기본값으로 동작한다.
# ===== Database (docker-compose MySQL 컨테이너 설정) =====
DB_NAME=youthpick
DB_USERNAME=youthpick
DB_PASSWORD=youthpick
# DB_ROOT_PASSWORD=root
DB_PORT=3306
# ===== Database (앱이 도커 MySQL 에 붙을 때 사용. H2 로 개발하면 비워둬도 됨) =====
# 아래 3개(DB_URL/DB_USERNAME/DB_PASSWORD)는 log4j2.xml의 application_logs JDBC Appender 전용 커넥션 풀도 그대로 재사용한다.
DB_URL=jdbc:mysql://localhost:3306/youthpick?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Seoul
DB_DRIVER=com.mysql.cj.jdbc.Driver
JPA_DDL_AUTO=validate
# ===== Redis =====
REDIS_HOST=localhost
REDIS_PORT=6379
# ===== MinIO =====
# 앱은 API 포트(기본 9000)에 연결한다. 콘솔은 http://localhost:9001 에서 확인한다.
MINIO_ENDPOINT=http://localhost:9000
MINIO_ACCESS_KEY=minioadmin
MINIO_SECRET_KEY=minioadmin
MINIO_BUCKET=youthpick-files
MINIO_API_PORT=9000
MINIO_CONSOLE_PORT=9001
FILE_MAX_SIZE=10MB
FILE_MAX_REQUEST_SIZE=11MB
MINIO_CONNECT_TIMEOUT=3s
MINIO_WRITE_TIMEOUT=30s
MINIO_READ_TIMEOUT=30s
# ===== CORS / 배포 도메인 =====
# 프론트(nginx)가 /api를 backend 컨테이너로 리버스 프록시하는 배포 구성(front-end/nginx.conf)에서는
# 브라우저 기준 요청이 same-origin이라 일반 API 호출엔 CORS가 발생하지 않는다.
# 다만 WebSocket Origin 검증(WebSocketConfig)과 /auth/token/refresh의 Origin 가드(AuthController)는
# 이 목록으로 별도 검사하므로, 배포 도메인은 프로토콜까지 정확히 포함해 반드시 추가한다.
# 예) ALLOWED_ORIGINS=https://youthpick.samchon.cloud
ALLOWED_ORIGINS=http://localhost:3000,http://localhost:5173,http://localhost:5174
# sitemap.xml의 <loc> 절대 URL을 만들 때 쓰는 프론트엔드 배포 도메인. 로컬은 기본값(운영 도메인)을 그대로 둬도 무방하다.
FRONTEND_URL=https://youthpick.samchon.cloud
# ===== 온통청년 정책 API (배치 수집용 — 비우면 배치만 실패하고 앱은 뜬다) =====
# 발급: https://www.youthcenter.go.kr 회원가입 후 open api 인증키 신청
YOUTH_API_KEY=
# ===== OAuth (인증 기능 구현 시 채운다. 지금은 비워둬도 앱이 뜬다) =====
# Kakao 는 "REST API 키" 를 client-id 로 사용한다(JavaScript 키 아님).
# 각 provider 콘솔에 redirect_uri 로 "OAUTH_FRONTEND_CALLBACK_URI" 값을 그대로 등록해야 한다(프론트 라우트).
# 배포 시에는 프론트와 같은 도메인의 콜백 경로로 바꾼다. 예) https://youthpick.samchon.cloud/oauth/callback
GOOGLE_OAUTH_CLIENT_ID=
GOOGLE_OAUTH_CLIENT_SECRET=
NAVER_OAUTH_CLIENT_ID=
NAVER_OAUTH_CLIENT_SECRET=
KAKAO_OAUTH_CLIENT_ID=
KAKAO_OAUTH_CLIENT_SECRET=
OAUTH_FRONTEND_CALLBACK_URI=http://localhost:3000/oauth/callback
# ===== JWT =====
# JWT_SECRET 은 fallback 이 없다(토큰 위조와 직결되는 값이라 DB 계정과 달리 하드코딩 기본값을 두지 않음).
# 로컬에서도 아래 값을 .env 에 채우고 셸/IDE 환경변수로 넘겨야 앱이 뜬다. 운영에서는 반드시 별도 값으로 교체한다.
JWT_SECRET=local-dev-only-secret-key-please-change-this-32bytes-min
JWT_ACCESS_TOKEN_EXPIRATION=30m
JWT_REFRESH_TOKEN_EXPIRATION=14d