vignette/infra
Yun Chan cb4d45579d
Some checks failed
API contract / OpenAPI type drift (push) Failing after 59s
OAuth 로그인 버튼으로 provider 연결 + 제공자 연결 패널 그리드 이동
claude(setup-token과 동일한 PKCE, code#state 수동 흐름)와
openrouter(헤드리스 코드 표시 모드)는 OAuth 로그인 버튼으로 연결한다.
관리자가 제공자 로그인 뒤 표시되는 인증 코드를 붙여넣으면 서버가
토큰/키로 교환해 저장·게이트웨이 push한다. state는 서버 발급·15분
단일 사용으로 CSRF를 막는다. codex·agy는 붙여넣기 방식을 유지한다.

제공자 연결 패널은 우측 사이드에서 메인 컬럼의 Provider·모델별 사용
원장 아래로 옮기고 반응형 그리드(너비에 따라 1~n열)로 배치한다.
2026-09-11 17:33:51 +09:00
..
db/init provider 자격증명 테이블 생성을 존재 검사 선행으로 전환 2026-09-11 16:56:02 +09:00
.env.example 관리자 AI 제공자 연결 기능 추가 (claude·codex·agy·openrouter 토큰 붙여넣기 연결) 2026-09-11 14:06:15 +09:00
.tmp-colq.b64 OAuth 로그인 버튼으로 provider 연결 + 제공자 연결 패널 그리드 이동 2026-09-11 17:33:51 +09:00
Caddyfile feat(infra): 이식 가능한 Docker 배포 구성 2026-06-25 21:24:19 +09:00
Caddyfile.nas NAS 정식 스택과 배포 파이프라인 도구를 고정 2026-09-01 11:45:23 +09:00
docker-compose.nas.yml 관리자 AI 제공자 연결 기능 추가 (claude·codex·agy·openrouter 토큰 붙여넣기 연결) 2026-09-11 14:06:15 +09:00
docker-compose.yml 관리자 AI 제공자 연결 기능 추가 (claude·codex·agy·openrouter 토큰 붙여넣기 연결) 2026-09-11 14:06:15 +09:00
README.md G0~G8 성과·동맹 측정 OS 작업 일괄 고정 2026-08-08 01:30:53 +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를 실행한다. 프리플라이트는 G3G8 내부 쓰기 토큰 6개가 각각 32자 이상이며 서로 다른 값인지 검사한다. DB까지 검증할 때는 API app-role DATABASE_URL을 넘기고 --require-app-role을 붙여 G0G8 migration sentinel과 RLS 역할을 함께 확인한다.
  • Compose 음성 설정은 VIGNETTE_VOICE_STT_PROVIDER, DEEPGRAM_API_KEY, DEEPGRAM_STT_*VIGNETTE_VOICE_TTS_PROVIDER를 API에 주입한다. deepgram 선택 상태에서 key가 없고 OpenAI key만 있으면 runtime은 openai-batch-fallback을 보고할 수 있으므로, 배포 완료 판정에는 authenticated public WSS ready의 STT/TTS provider/model 네 값을 기대값과 정확히 비교하는 mic-free preflight를 사용한다.
  • mic-free preflight는 장치 열거·캡처를 하지 않으며 물리 마이크/50분 증거가 아니다. full soak는 실행 직전 사용자 명시 동의와 --confirm-physical-capture가 있을 때만 장치를 연다. Higgs는 dev 전용이다. 운영 TTS는 OpenAI API gpt-4o-mini-tts로 고정하고 Services Agreement의 앱 통합·출력 소유 근거와 최종 사용자 AI 생성 음성 고지를 함께 유지한다. 배포 완료 시 public health/ready의 provider/model exact match를 증거로 남긴다.
  • 배포·soak evidence에는 API key, auth cookie, session ID, 축어록, 응답 payload와 원음을 기록하지 않는다.