한줄요약 : 도커 컴포즈로 db+백앤드+프론트 다 묶어서 배포 + nginx 생각



구성 요약


파일 배치(모노레포 예시)

malro-app/
  packages/
    server/        # NestJS (or FastAPI)
    web/           # Next.js ( /kiosk /admin )
  artifacts/
    cafe/          # ← malro-data/outputs/cafe/* 복사본(JSON만)
      menu.json
      aliases.json
      few_shots.jsonl
      evalset.jsonl
      artifact_manifest.json
  data/
    sqlite/        # 빈 폴더(컨테이너가 malro.db 생성)
  .env             # 서버 비밀키 등
  docker-compose.yml


.env 예시 (루트에 두고 compose가 읽음)

# Server
OPENAI_API_KEY=sk-xxxx
OPENAI_MODEL=gpt-4o-mini
ARTIFACTS_DIR=/app/artifacts/cafe
DB_PATH=/app/var/malro.db
PORT=4000
CORS_ORIGIN=*

# Web
NEXT_PUBLIC_API_BASE_URL=http://localhost:4000
WEB_PORT=3000

주의: OPENAI_API_KEY는 서버에서만 사용됩니다. 프론트에서 직접 LLM 호출 금지.


docker-compose.yml