vignette/infra
Yun Chan 778e8526d4 세션 평가·라이브코치·교수자 분석 라운드 마감 + 문서 정리 + 코드품질 리팩터
- 누적 작업트리 커밋: 회기 평가 복구·durable 저장, 라이브 코치 이력/근거, 교수자 학생분석, 음성 비언어 메타, PII 마스킹, 운영 티켓/헬스 등
- 문서: 완료 기록 docs/archive/ 냉동 보관, docs/ 단일 인덱스(docs/README.md)+통합 TODO(docs/TODO.md)로 정리
- 리팩터(행위 보존): Stage enum SSOT(taxonomy 소유·state_machine re-export), store recent/masked_turns 중복 제거, speaker_ko_label 단일 헬퍼, _list_sessions N+1 제거(state/turns 배치 + 턴평가 하이드레이션 배치)
- 검증: 백엔드 pytest 352 passed, _list_sessions E2E chromium-single-run 2 passed
2026-07-02 02:50:36 +09:00
..
db/init 세션 평가·라이브코치·교수자 분석 라운드 마감 + 문서 정리 + 코드품질 리팩터 2026-07-02 02:50:36 +09:00
.env.example 메일 알림 시스템 추가 2026-06-29 17:07:01 +09:00
Caddyfile feat(infra): 이식 가능한 Docker 배포 구성 2026-06-25 21:24:19 +09:00
docker-compose.yml 메일 알림 시스템 추가 2026-06-29 17:07:01 +09:00
README.md 음성 재생과 운영 배포 정리 2026-06-28 12:18:20 +09:00

infra

Docker Compose: web · api · postgres(pgvector) · Caddy proxy.

  • API 이미지는 저장소 루트 컨텍스트에서 빌드한다. data/personas 같은 런타임 입력을 컨테이너 안 /app 기준으로 찾기 때문이다.
  • 엔진 게이트웨이는 compose 밖 호스트 프로세스로 두고, API는 ENGINE_URL로 호출한다.
  • RAG 임베딩/리랭커 의존성은 API 이미지 build arg INSTALL_RAG=true일 때만 설치한다. 기본 이미지는 슬림 모드이며 RAG 모델 미설정 시 앱이 명시적으로 degraded 처리한다.
  • 배포 전 루트에서 python scripts/check-deploy-preflight.py --env-file infra/.env를 실행한다. DB까지 검증할 때는 API app-role DATABASE_URL을 넘기고 --require-app-role을 붙인다.