-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.env.example
More file actions
61 lines (57 loc) · 3.6 KB
/
Copy path.env.example
File metadata and controls
61 lines (57 loc) · 3.6 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
# 이 파일을 frontend/.env 로 복사한 뒤 값을 채우세요.
#
# cd frontend
# cp .env.example .env
#
# ⚠️ 루트의 .env 로는 대체되지 않습니다. Expo 는 `app.json` 이 있는 디렉터리(= frontend/)를
# 프로젝트 루트로 보고 .env 를 읽습니다. 모노레포 루트의 .env 는 백엔드·AI·MySQL 용이고
# EXPO_PUBLIC_* 키가 아예 없습니다.
#
# ⚠️ 이 값들이 없으면 앱은 **에러 없이** 뜹니다. 카메라도 켜지고 화면도 정상으로 보이는데
# 실시간 자세 분석만 조용히 안 돕니다 — exercise.tsx:146 이 토큰이 없으면 프레임 폴링
# 자체를 켜지 않기 때문입니다. 실패를 알아채기 어려운 형태라 여기 적어둡니다.
# ===========================================
# [AI 서버 인증] — 없으면 실시간 분석이 안 켜집니다
# ===========================================
#
# 값은 모노레포 루트 .env 의 AI_PUBLIC_TOKEN 과 **같은 값**을 넣습니다.
# AI 서버의 인증 미들웨어(ai-server/app/middleware/auth.py)가
# Authorization: Bearer <이 값> 을 요구합니다.
#
# 🔴 INTERNAL_API_TOKEN 이 아닙니다. 그 값은 Spring↔AI 내부 gRPC 전용이고 #134 수정으로
# 둘이 분리됐습니다. 여기에 내부 토큰을 다시 붙이면 앱 번들에서 추출한 값으로 Spring
# 내부 RPC 를 칠 수 있게 되므로 되돌리지 마십시오 (aiService.ts:29-32 의 같은 경고).
#
# 🔴 이 값은 비밀이 아닙니다.
#
# EXPO_PUBLIC_ 접두가 붙은 값은 빌드 시 **앱 번들에 인라인**됩니다. 즉 이 토큰은
# 모든 설치본에 그대로 들어가고, 앱에서 추출할 수 있습니다. #134 의 분리로 유출
# 피해가 AI HTTP 로 한정됐을 뿐, **"누구나 /pose 를 호출할 수 있다" 는 그대로**입니다
# (이슈 #187 — 호출자 신원이 없어 남의 session_id 로 프레임을 주입할 수 있습니다).
#
# "탈취" 가 아니라 "배포" 입니다 — HTTPS 를 붙여도 고쳐지지 않습니다. 전송을 감쌀 뿐
# 번들 안의 값을 감추지 못하기 때문입니다.
EXPO_PUBLIC_AI_PUBLIC_TOKEN=REPLACE_WITH_SAME_VALUE_AS_ROOT_AI_PUBLIC_TOKEN
# ===========================================
# [선택] AI 서버 주소 강제 지정
# ===========================================
#
# 비워두면 Metro 가 알려주는 호스트(= 개발 PC 의 LAN IP)의 8000 포트를 자동으로 씁니다.
# 안드로이드 에뮬레이터는 10.0.2.2 로 자동 매핑됩니다 (aiService.ts:8-18).
#
# 채워야 하는 경우:
# - AI 서버를 다른 장비에서 띄웠을 때
# - 릴리스 빌드 (🔴 이슈 #148 — aiService 에 prod 분기가 없어서, 릴리스에서는 이 값을
# https 주소로 주입하지 않으면 개발 호스트를 찾다가 실패합니다. iOS ATS·Android
# cleartext 정책상 http 주소로는 연결 자체가 거부됩니다)
#
# EXPO_PUBLIC_AI_BASE_URL=http://192.168.0.10:8000/api/v1
#
# 🔴 릴리스 빌드에서는 **이 값이 필수이고 https 여야 한다** (이슈 #148).
# 개발에서는 비워 두면 Metro 호스트로 자동 해석되지만, 릴리스에는 Metro 가 없다.
# 예전에는 그 자리에서 조용히 http://localhost:8000 으로 떨어졌고, iOS ATS·
# Android(API 28+) 가 평문 HTTP 를 막아 «연결 거부» 라는 엉뚱한 증상이 났다.
# 지금은 앱이 시작 시점에 «AI 서버 설정 오류» 로 말한다.
#
# ⚠️ 아직 프로덕션 주소가 없다 — 배포 호스트도 도메인도 미정이다
# (docs/decisions/reverse-proxy-and-tls.md §8).