Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2.1 KiB
2.1 KiB
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:
.env에AAF_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://host.docker.internal:6006(같은 서버; 공인 IP 는 컨테이너 안에서 안 닿음) (deploy/phoenix/docker-compose.yml로 띄운 것). 프로젝트codeassist. - 앱(Tauri) 쪽은
2_frontend/.env.production의VITE_API_BASE_URL을 이 서버로 바꿔 빌드해야 붙음.