# exdev 서버 배포 — exAichatbot Agent 2.0 `chatbot.exdev.co.kr` Mac Studio 서버에 Agent 2.0 스택(RAG + WAS + Skill + chatbotApp)을 배포합니다. ## 디렉터리 | 경로 (서버) | 용도 | |-------------|------| | `/Users/aidev/dev/exAichatbot_agent` | Git work tree (배포 소스) | | `/Volumes/ADATA/git/exAichatbot_agent.git` | Gitea bare repo | | `/Volumes/ADATA/git/deploy-exAichatbot_agent.sh` | push → 배포 스크립트 | ## 1회 설정 (서버) ```bash ssh aidev@chatbot.exdev.co.kr bash /Users/aidev/dev/exAichatbot_agent/server-dev/setup-gitea.sh ``` Gitea(`https://github.exdev.co.kr`)에서 **`exAichatbot_agent`** 저장소 생성 (Initialize unchecked). ## 로컬 → Gitea push ```bash cd exChatbot_agent git init git add . git commit -m "Agent 2.0 server deploy" # Gitea (이 서버는 git@ 가 아닌 aidev@ 사용) git remote add origin ssh://aidev@github.exdev.co.kr:2222/aidev/exAichatbot_agent.git git push -u origin main # 잘못된 예 (Permission denied): # git@github.exdev.co.kr:aidev/exAichatbot_agent.git ``` **main push 시 자동:** `post-receive` → `deploy-exAichatbot_agent.sh` → `stop-all-server.sh` → `start-all-server.sh` 배포 로그: `/Volumes/ADATA/logs/deploy/exAichatbot_agent.log` ## 수동 기동 / 중지 (서버) ```bash cd /Users/aidev/dev/exAichatbot_agent ./server-dev/stop-all-server.sh ./server-dev/start-all-server.sh # 빌드 포함 ./server-dev/start-all-server.sh --no-build ``` ## 스택 구성 | 서비스 | 포트 | URL | |--------|------|-----| | HTTPS UI (Caddy) | 443 | https://chatbot.exdev.co.kr/chatbot/app/ | | chatbotApp nginx | 8092 | 내부 | | kakaoChatbotSkill | 8083 | /web/ask | | chatbotApi WAS | 8086 | /api | | RAG API | 28012 | /agent/chat | | Vector Admin | 28013 | /chatbot/admin | | Qdrant | 6333 | REST | | 호스트 AI | 16000~16002 | MLX LLM/Embed/Rerank | ## Qdrant 데이터 - 최초 기동 시 `vector_count=0` 이면 레거시 `exAIChatbot2.0/exAiChatBot-chatbot2.0/qdrant_data` 를 자동 복사 - 이후 `qdrant_data/` 볼륨 영속 유지 (git 제외) ## 환경변수 ```bash cp server-dev/env.exdev-server.template exAiChatBot-chatbot2.0-agent/.env ``` ## 레거시 스택 `start-all-server.sh`는 포트 충돌 방지를 위해 `exAIChatbot2.0/remote-stop-chatbot.sh` 로 레거시 스택을 중지합니다. 유지하려면 `--skip-legacy-stop` 옵션을 사용하세요.