# ========================================== # 루트 .env (development) — 모든 설정의 단일 진실 공급원(SSOT) # docker-compose 가 이 값을 backend/frontend/db/redis 에 주입한다. # .example 을 복사해 만들고 실제 값으로 채운다. (커밋 금지) # ========================================== # ========================================== # 프로젝트 전역 # ========================================== PROJECT_NAME=comrelay APP_ENV=development BUILD_MODE=development FRONTEND_DIR=frontend BACKEND_DIR=backend # ========================================== # 포트 # ========================================== FRONTEND_PORT=5273 BACKEND_PORT=3100 WEBSOCKET_PORT=3101 DB_PORT=5532 REDIS_PORT=6479 # ========================================== # Database (PostgreSQL) # ========================================== DB_IMAGE=postgres:15-alpine DB_USER=dev_ttipo DB_PASSWORD=change-me-db-password DB_NAME=comrelay_db DB_DATA_DIR=./data/postgres # ========================================== # Redis # ========================================== REDIS_IMAGE=redis:7-alpine REDIS_PASSWORD=change-me-redis-password REDIS_DATA_DIR=./data/redis # ========================================== # API 경로 # ========================================== # BACKEND_API_URL: 프론트 빌드에 주입(VITE_API_BASE_URL) # CORS_ORIGIN : 백엔드가 허용할 프론트 오리진 BACKEND_API_URL=http://localhost:3100/api CORS_ORIGIN=http://localhost:5273 # ========================================== # AI (백엔드·프론트 공통) # ========================================== # AI_TIMEOUT_MS: AI 요청 타임아웃(ms). 백엔드 Claude 호출 abort + 프론트 axios 에 동일 적용. # 프론트에는 build arg VITE_AI_TIMEOUT_MS 로 주입된다. AI_TIMEOUT_MS=60000 # ========================================== # 화상회의 (LiveKit Cloud) # ========================================== # 개발은 LiveKit Cloud(무료 dev)를 사용한다. https://cloud.livekit.io 에서 프로젝트 생성 후 # Settings → Keys 에서 발급된 값을 채운다. 코드 변경 없이 env 만으로 동작한다. # LIVEKIT_API_KEY / LIVEKIT_API_SECRET : 백엔드 입장 토큰(JWT) 서명용 (절대 커밋 금지) # LIVEKIT_WS_URL : 브라우저 → LiveKit 접속 URL. Cloud 는 wss://.livekit.cloud # (build arg/런타임 env 로 VITE_LIVEKIT_URL 에 주입) # LIVEKIT_URL : 백엔드 → LiveKit 서버 API(RoomService 등) 주소. 보통 LIVEKIT_WS_URL 과 동일. # (단계 1 토큰 발급은 오프라인이라 아직 미사용) # 운영: .env.production 에 운영용 키/URL 만 넣으면 그대로 전환된다(셀프호스팅 시 자체 URL/키 사용). LIVEKIT_API_KEY=APIxxxxxxxxxxxx LIVEKIT_API_SECRET=your-livekit-cloud-api-secret LIVEKIT_WS_URL=wss://your-project.livekit.cloud LIVEKIT_URL=wss://your-project.livekit.cloud # ========================================== # 드라이브 (NCP Object Storage / S3 호환) # ========================================== # 파일 업로드/저장용 오브젝트 스토리지. NCP 콘솔에서 버킷 생성 후 값을 채운다. # 비시크릿(endpoint/region/bucket)만 루트에 두고, ACCESS/SECRET 키는 backend/.env 에 둔다. # OBJECT_STORAGE_ENDPOINT : NCP 리전 엔드포인트(서울: https://kr.object.ncloudstorage.com) # OBJECT_STORAGE_REGION : 리전명(NCP: kr-standard) # OBJECT_STORAGE_BUCKET : 버킷명(환경별로 분리 권장, 예: comrelay-dev) OBJECT_STORAGE_ENDPOINT=https://kr.object.ncloudstorage.com OBJECT_STORAGE_REGION=kr-standard OBJECT_STORAGE_BUCKET=comrelay-dev