-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
191 lines (165 loc) · 7.65 KB
/
.env.example
File metadata and controls
191 lines (165 loc) · 7.65 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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
# ========================================
# Folioo Server - Environment Variables
# ========================================
# 이 파일을 복사하여 환경별 파일을 생성하세요
# cp .env.example .env
# cp .env.example .env.dev
# cp .env.example .env.prod
# ========================================
# ========================================
# App Profile (필수)
# ========================================
# local: 로컬 개발 (동기화 ON, 쿼리 로깅 ON)
# dev: 개발 서버
# prod: 프로덕션 서버 (동기화 OFF, 로깅 OFF)
APP_PROFILE=local
# ========================================
# Server Port (선택, 기본값: 3000)
# ========================================
# PORT=3000
# ========================================
# Database - PostgreSQL (필수)
# ========================================
# dev/prod에서는 SUPABASE_DB_URL 사용을 권장합니다.
# SUPABASE_DB_URL=postgresql://user:password@db.supabase.co:5432/postgres
DB_HOST=localhost
DB_PORT=5432
DB_USERNAME=postgres
DB_PASSWORD=your-db-password
DB_SCHEMA=folioo
# ========================================
# Redis / Cache (필수)
# ========================================
# CACHE_DRIVER: ioredis(기본) | upstash
# - ioredis: Docker Redis 또는 자체 Redis 인스턴스 사용
# - upstash: Upstash REST API 사용
CACHE_DRIVER=ioredis
# ioredis 드라이버 설정
# 로컬 직접 실행: localhost
# Docker Compose(dev/prod) 내부 네트워크 실행: redis (서비스명)
REDIS_HOST=localhost
REDIS_PORT=6379
# REDIS_PASSWORD=your-redis-password
# REDIS_DB=0
# Upstash 드라이버 설정 (CACHE_DRIVER=upstash 시 필수)
# APP_PROFILE이 dev/prod이고 CACHE_DRIVER 미설정이어도,
# 아래 REST 키가 모두 있으면 upstash가 자동 선택됩니다.
# UPSTASH_REDIS_REST_URL=https://your-upstash-rest-url
# UPSTASH_REDIS_REST_TOKEN=your-upstash-rest-token
# ========================================
# JWT Authentication (필수)
# ========================================
# 토큰 서명에 사용할 비밀키 (강력한 문자열 권장: openssl rand -base64 32)
JWT_SECRET_TOKEN=your-strong-access-secret
JWT_REFRESH_TOKEN=your-strong-refresh-secret
# OAuth Refresh Token 암호화 키 (dev/prod 필수)
# 소셜 oauth_refresh_token을 DB에 암호화 저장할 때 사용합니다.
# 운영에서는 충분히 긴 랜덤 문자열(32자 이상)을 사용하세요.
OAUTH_REFRESH_TOKEN_ENCRYPTION_KEY=your-strong-oauth-token-encryption-key
# Withdrawn Identifier 암호화 키 (dev/prod 필수)
# 탈퇴한 사용자의 식별자를 DB에 암호화 저장할 때 사용합니다.
# 운영에서는 충분히 긴 랜덤 문자열(32자 이상)을 사용하세요.
WITHDRAWN_IDENTIFIER_ENCRYPTION_KEY=your-strong-withdrawn-identifier-encryption-key
# 토큰 만료 시간 (선택)
# 형식: 1h, 1d, 15m, 1y 등 (기본값: Access 1h / Refresh 14d)
# JWT_EXPIRES_IN=30m
# JWT_REFRESH_EXPIRES_IN=7d
# ========================================
# OAuth2 - Kakao (필수)
# ========================================
# 카카오 개발자 센터 > 내 애플리케이션 > 앱 키 > REST API 키
KAKAO_CLIENT_ID=your-kakao-rest-api-key
# 카카오 개발자 센터 > 내 애플리케이션 > 보안 (보안 모드 사용 시 필수, 미사용 시 공란 가능)
KAKAO_CLIENT_SECRET=your-kakao-client-secret
# 카카오 로그인 Redirect URI (서버 엔드포인트)
KAKAO_CALLBACK_URL=http://localhost:3000/auth/kakao/callback
# ========================================
# OAuth2 - Google (필수)
# ========================================
# Google Cloud Console > Credentials > OAuth 2.0 Client ID
# dev 예시: https://dev-api.folioo.ai.kr/auth/google/callback
# prod 예시: https://prod-api.folioo.ai.kr/auth/google/callback
GOOGLE_CLIENT_ID=your-google-client-id
GOOGLE_CLIENT_SECRET=your-google-client-secret
GOOGLE_CALLBACK_URL=http://localhost:3000/auth/google/callback
# ========================================
# OAuth2 - Naver (필수)
# ========================================
# Naver Developers > 내 애플리케이션 > 네이버 로그인
# dev 예시: https://dev-api.folioo.ai.kr/auth/naver/callback
# prod 예시: https://prod-api.folioo.ai.kr/auth/naver/callback
NAVER_CLIENT_ID=your-naver-client-id
NAVER_CLIENT_SECRET=your-naver-client-secret
NAVER_CALLBACK_URL=http://localhost:3000/auth/naver/callback
# ========================================
# Client Configuration (필수)
# ========================================
# 소셜 로그인 성공 후 리다이렉트 될 클라이언트(프론트엔드) 주소
CLIENT_REDIRECT_URI=http://localhost:3000/login/callback
# OAuth state(local/dev) 기반 리다이렉트 주소 (선택)
# 서버 APP_PROFILE=prod 에서는 state 기반 분기가 비활성화됩니다.
# CLIENT_REDIRECT_URI_LOCAL=http://localhost:3000/login/callback
# CLIENT_REDIRECT_URI_DEV=https://dev.example/login/callback
# ========================================
# AI Configuration (필수)
# ========================================
# AI 서버와의 연결을 위한 주소
AI_BASE_URL=https://example.ai.url
# 메인 서버 -> AI 서버 인증 키 (X-API-Key 헤더에 포함)
# 인터뷰 세션, PDF 추출 등 모든 AI 서버 요청에 자동 주입됩니다.
AI_SERVICE_API_KEY=your-ai-service-api-key
# AI 서버 -> 메인 서버 내부 API 인증 키 검증값 (X-API-Key)
# 메인 백엔드가 AI 서버로부터 받는 내부 API 호출을 검증합니다.
MAIN_BACKEND_API_KEY=your-main-backend-api-key
# ========================================
# CORS Configuration (선택)
# ========================================
# 요청을 허용할 주소, 쉼표로 파싱
CORS_ORIGINS=http://localhost:3000,https://example.com
# ========================================
# Swagger 인증 (dev/prod 필수)
# ========================================
# local 환경에서는 불필요
# dev/prod 환경에서는 Swagger 접근 시 Basic Auth 적용
SWAGGER_USER=admin
SWAGGER_PASSWORD=your-swagger-password
# ========================================
# Admin Dashboard 인증 (dev/prod 필수)
# ========================================
# /admin 경로 접근 시 Basic Auth 적용
# 미설정 시 /admin 경로는 403으로 차단됩니다.
ADMIN_USER=admin
ADMIN_PASSWORD=your-admin-password
# ========================================
# Swagger 메타데이터 (선택)
# ========================================
# SWAGGER_TITLE=Folioo API docs
# SWAGGER_DESCRIPTION=API document of Folioo
# SWAGGER_VERSION=1.0.0
# ========================================
# Sentry - Error Monitoring (dev/prod 필수)
# ========================================
# Sentry 프로젝트 DSN (https://sentry.io 에서 생성)
# local 환경에서는 비활성화됨 (설정해도 무시)
# dev/prod 환경에서만 활성화
# SENTRY_DSN=https://xxxxx@xxx.ingest.sentry.io/xxxxx
# ========================================
# PayApp (결제 연동)
# ========================================
# PayApp 판매자 대시보드에서 발급받은 연동 정보입니다.
# - PAYAPP_USER_ID: 판매자 아이디
# - PAYAPP_LINK_KEY: 연동 KEY (취소/환불 API 호출에 필요)
# - PAYAPP_LINK_VALUE: 연동 VALUE (feedbackurl 콜백 검증에 필요)
# - PAYAPP_FEEDBACK_URL: PayApp이 결제 완료 시 호출하는 콜백 URL (POST /payments/webhook 전체 URL)
# 예) https://dev-api.folioo.ai.kr/payments/webhook
#
# PAYAPP_USER_ID=your-payapp-userid
# PAYAPP_LINK_KEY=your-payapp-linkkey
# PAYAPP_LINK_VALUE=your-payapp-linkvalue
# PAYAPP_FEEDBACK_URL=https://your-api-domain/payments/webhook
# ========================================
# EMBEDDING (필수)
# ========================================
OPENROUTER_API_KEY=your-openrouter-api-key
# 임베딩 모델 설정 (선택, 기본값 text-embedding-3-small)
# EMBEDDING_MODEL_NAME=text-embedding-3-small