Files
CODE_ASSISTANT/5_django_backend/deploy/docker
..

CodeAssist 백엔드 — 도커 배포 (우리 환경용)

고객사(도커 없음)는 5_django_backend/deploy.sh(bare) 를 씀. 여긴 도커 되는 서버(20.200.170.37 등)용. 둘 다 같은 저장소 구조를 쓰고, 배포 스크립트만 다름:

환경 스크립트 하는 일
우리(도커) deploy/docker/deploy.sh [up|update|stop|logs|status] (update 면 git pull) → 이미지 빌드 → be·opencode 기동 → 헬스 확인
고객사(bare) deploy.sh git pull → .env 키 보정 → migrate → 렌더 → opencode-bin·uvicorn 재기동 → 헬스

처음 한 번

cd <저장소>/code-assistant/5_django_backend/deploy/docker     # 고객사 repo 구조 기준. 우리 git 이면 5_django_backend/deploy/docker
cp .env.example .env && vi .env      # OPENROUTER_API_KEY, PHOENIX_HOST 정도만 채우면 됨
./deploy.sh

컨테이너 2개: be(Django, 바깥 BE_PORT=8080) + opencode(OpenCode 1.18.6). 저장소의 opencode/ 폴더를 둘 다 bind 로 봐서 AGENTS.md·위키·커스텀 도구가 그대로 먹고, be 가 렌더한 opencode.json 을 opencode 가 바로 읽음.

이후

./deploy.sh update      # 최신 코드로 갱신
./deploy.sh status      # 상태 + 헬스
./deploy.sh logs

알아둘 것

  • LLM: .envAAF_FABRIX_* 가 없으면 렌더러가 OpenRouter 템플릿(opencode/opencode.openrouter.json.tmpl)을 고름. 고객사는 FabriX 템플릿.
  • DB: DB_HOST 비우면 SQLite(be_data 볼륨). 팀 PostgreSQL 쓰려면 DB_* 채움(스키마 codeassist).
  • SAP 조회(MCP): 같은 서버에 abap-opencode compose 가 떠 있으면 그 mcp 컨테이너를 쓸 수 있음 — 두 compose 를 같은 네트워크로 묶어야 함(아직 안 함). 비우면 꺼짐.
  • 관측: PHOENIX_HOST=http://<서버>:6006 (deploy/phoenix/docker-compose.yml 로 띄운 것). 프로젝트 codeassist.
  • 앱(Tauri) 쪽은 2_frontend/.env.productionVITE_API_BASE_URL 을 이 서버로 바꿔 빌드해야 붙음.