Deploy: exdev sync 2026-08-13 13:38:36
This commit is contained in:
Regular → Executable
+3
-3
@@ -1,3 +1,3 @@
|
||||
run/
|
||||
logs/
|
||||
*.pid
|
||||
run/
|
||||
logs/
|
||||
*.pid
|
||||
|
||||
Regular → Executable
+109
-109
@@ -1,109 +1,109 @@
|
||||
# 로컬 개발 — exdev AI 연동
|
||||
|
||||
로컬에서 **chatbotApi · chatbotApp · exAiChatBot · kakaoChatbotSkill** 을 실행하고,
|
||||
**LLM / Embedding / Reranker** 는 SSH 터널로, **MongoDB / Qdrant** 는 `stock.exdev.co.kr` 원격 인스턴스를 사용합니다.
|
||||
|
||||
## exdev AI 구조
|
||||
|
||||
| 포트 | 서비스 | API |
|
||||
|------|--------|-----|
|
||||
| 16000 | MLX LLM | `/v1/chat/completions` |
|
||||
| 16001 | Embedding (MPS) | `/embed` (`EMBED_API_STYLE=tei`) |
|
||||
| 16002 | Reranker | `/rerank` (`RERANK_API_STYLE=legacy`) |
|
||||
|
||||
`https://chatbot.exdev.co.kr` 은 RAG API URL이며 LLM 직접 URL이 아닙니다.
|
||||
|
||||
## 한 번에 기동 / 중지
|
||||
|
||||
```bash
|
||||
chmod +x local-dev/*.sh
|
||||
|
||||
./local-dev/stop-all.sh # 먼저 중지
|
||||
./local-dev/start-all.sh # 전체 기동 + 헬스체크
|
||||
|
||||
# 옵션
|
||||
./local-dev/start-all.sh --no-tunnel # AI 터널이 이미 떠 있을 때
|
||||
./local-dev/start-all.sh --skip-java # Docker(RAG + chatbotApp)만
|
||||
./local-dev/start-all.sh --no-build # RAG 이미지 빌드 생략
|
||||
|
||||
./local-dev/stop-all.sh --tunnel # SSH 터널까지 종료
|
||||
```
|
||||
|
||||
- RAG는 **`docker-compose.local.yml`** 사용 (Mac Docker `:28012` 포트 바인딩)
|
||||
- Mongo: `stock.exdev.co.kr:27017` / Qdrant: `http://stock.exdev.co.kr:6333/dashboard`
|
||||
- 로컬 Mongo·Qdrant 컨테이너는 기동하지 않습니다
|
||||
|
||||
기동 후 UI: `http://localhost:8089/chatbot/app/`
|
||||
|
||||
---
|
||||
|
||||
## 1. exdev AI 기동 (서버에서 한 번)
|
||||
|
||||
exdev SSH 접속 후:
|
||||
|
||||
```bash
|
||||
bash /Users/aidev/dev/exAIChatbot2.0/scripts/exdev/start-host-ai.sh
|
||||
curl -s http://127.0.0.1:28012/health # llm/tei_embed/tei_rerank: true 확인
|
||||
```
|
||||
|
||||
## 2. 로컬 SSH 터널
|
||||
|
||||
```bash
|
||||
chmod +x local-dev/start-exdev-ai-tunnel.sh
|
||||
./local-dev/start-exdev-ai-tunnel.sh
|
||||
```
|
||||
|
||||
터널 확인:
|
||||
|
||||
```bash
|
||||
curl -s http://127.0.0.1:16000/v1/models | head
|
||||
curl -s http://127.0.0.1:16001/health
|
||||
curl -s -X POST http://127.0.0.1:16002/rerank \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"query":"test","documents":["doc"]}'
|
||||
```
|
||||
|
||||
## 3. exAiChatBot .env
|
||||
|
||||
```bash
|
||||
cp local-dev/env.exdev-ai.template exAiChatBot-chatbot2.0-agent/.env
|
||||
./local-dev/start-all.sh --skip-java --no-build # RAG만 (원격 Mongo/Qdrant)
|
||||
curl -s http://127.0.0.1:28012/health
|
||||
```
|
||||
|
||||
RAG 컨테이너는 `.env` 의 `MONGO_HOST` / `QDRANT_HOST` (= `stock.exdev.co.kr`) 로 원격 DB에 접속합니다.
|
||||
|
||||
## 4. Java 서비스 + chatbotApp
|
||||
|
||||
```bash
|
||||
# WAS (Mongo → stock.exdev.co.kr)
|
||||
cd chatbotApi-chatbot2.0-agent
|
||||
export INTERNAL_TOOL_API_KEY=local-dev-key
|
||||
export MONGODB_URI='mongodb://exDev:ehfhrhdtk!!@stock.exdev.co.kr:27017/chatbot?authSource=chatbot'
|
||||
export SKILL_INTERNAL_BASE_URL=http://127.0.0.1:8083
|
||||
./gradlew bootRun
|
||||
|
||||
# Skill
|
||||
cd kakaoChatbotSkill-chatbot2.0-agent
|
||||
export AGENT_MODE=agent
|
||||
export RAG_AGENT_CHAT_URL=http://127.0.0.1:28012/agent/chat
|
||||
export CHATBOT_API_BASE_URL=http://127.0.0.1:8086/api/
|
||||
export INTERNAL_TOOL_API_KEY=local-dev-key
|
||||
./gradlew bootRun
|
||||
|
||||
# UI
|
||||
cd chatbotApp-chatbot2.0-agent
|
||||
CHATBOT_API_UPSTREAM=http://host.docker.internal:8083/web/ \
|
||||
CHATBOT_API_HOST=host.docker.internal ./start.sh
|
||||
```
|
||||
|
||||
## api_clients.py 스타일 변수
|
||||
|
||||
| 변수 | exdev 값 | 설명 |
|
||||
|------|----------|------|
|
||||
| `EMBED_API_STYLE` | `tei` | `/embed` |
|
||||
| `RERANK_API_STYLE` | `legacy` | `/rerank` |
|
||||
| `EMBED_API_STYLE` | `openai` | 게이트웨이 `/v1/embeddings` |
|
||||
| `RERANK_API_STYLE` | `gateway` | 게이트웨이 `/score` |
|
||||
|
||||
로컬 exdev 연동 시 **`tei` + `legacy`** 조합을 사용합니다.
|
||||
# 로컬 개발 — exdev AI 연동
|
||||
|
||||
로컬에서 **chatbotApi · chatbotApp · exAiChatBot · kakaoChatbotSkill** 을 실행하고,
|
||||
**LLM / Embedding / Reranker** 는 SSH 터널로, **MongoDB / Qdrant** 는 `stock.exdev.co.kr` 원격 인스턴스를 사용합니다.
|
||||
|
||||
## exdev AI 구조
|
||||
|
||||
| 포트 | 서비스 | API |
|
||||
|------|--------|-----|
|
||||
| 16000 | MLX LLM | `/v1/chat/completions` |
|
||||
| 16001 | Embedding (MPS) | `/embed` (`EMBED_API_STYLE=tei`) |
|
||||
| 16002 | Reranker | `/rerank` (`RERANK_API_STYLE=legacy`) |
|
||||
|
||||
`https://chatbot.exdev.co.kr` 은 RAG API URL이며 LLM 직접 URL이 아닙니다.
|
||||
|
||||
## 한 번에 기동 / 중지
|
||||
|
||||
```bash
|
||||
chmod +x local-dev/*.sh
|
||||
|
||||
./local-dev/stop-all.sh # 먼저 중지
|
||||
./local-dev/start-all.sh # 전체 기동 + 헬스체크
|
||||
|
||||
# 옵션
|
||||
./local-dev/start-all.sh --no-tunnel # AI 터널이 이미 떠 있을 때
|
||||
./local-dev/start-all.sh --skip-java # Docker(RAG + chatbotApp)만
|
||||
./local-dev/start-all.sh --no-build # RAG 이미지 빌드 생략
|
||||
|
||||
./local-dev/stop-all.sh --tunnel # SSH 터널까지 종료
|
||||
```
|
||||
|
||||
- RAG는 **`docker-compose.local.yml`** 사용 (Mac Docker `:28012` 포트 바인딩)
|
||||
- Mongo: `stock.exdev.co.kr:27017` / Qdrant: `http://stock.exdev.co.kr:6333/dashboard`
|
||||
- 로컬 Mongo·Qdrant 컨테이너는 기동하지 않습니다
|
||||
|
||||
기동 후 UI: `http://localhost:8089/chatbot/app/`
|
||||
|
||||
---
|
||||
|
||||
## 1. exdev AI 기동 (서버에서 한 번)
|
||||
|
||||
exdev SSH 접속 후:
|
||||
|
||||
```bash
|
||||
bash /Users/aidev/dev/exAIChatbot2.0/scripts/exdev/start-host-ai.sh
|
||||
curl -s http://127.0.0.1:28012/health # llm/tei_embed/tei_rerank: true 확인
|
||||
```
|
||||
|
||||
## 2. 로컬 SSH 터널
|
||||
|
||||
```bash
|
||||
chmod +x local-dev/start-exdev-ai-tunnel.sh
|
||||
./local-dev/start-exdev-ai-tunnel.sh
|
||||
```
|
||||
|
||||
터널 확인:
|
||||
|
||||
```bash
|
||||
curl -s http://127.0.0.1:16000/v1/models | head
|
||||
curl -s http://127.0.0.1:16001/health
|
||||
curl -s -X POST http://127.0.0.1:16002/rerank \
|
||||
-H 'Content-Type: application/json' \
|
||||
-d '{"query":"test","documents":["doc"]}'
|
||||
```
|
||||
|
||||
## 3. exAiChatBot .env
|
||||
|
||||
```bash
|
||||
cp local-dev/env.exdev-ai.template exAiChatBot-chatbot2.0-agent/.env
|
||||
./local-dev/start-all.sh --skip-java --no-build # RAG만 (원격 Mongo/Qdrant)
|
||||
curl -s http://127.0.0.1:28012/health
|
||||
```
|
||||
|
||||
RAG 컨테이너는 `.env` 의 `MONGO_HOST` / `QDRANT_HOST` (= `stock.exdev.co.kr`) 로 원격 DB에 접속합니다.
|
||||
|
||||
## 4. Java 서비스 + chatbotApp
|
||||
|
||||
```bash
|
||||
# WAS (Mongo → stock.exdev.co.kr)
|
||||
cd chatbotApi-chatbot2.0-agent
|
||||
export INTERNAL_TOOL_API_KEY=local-dev-key
|
||||
export MONGODB_URI='mongodb://exDev:ehfhrhdtk!!@stock.exdev.co.kr:27017/chatbot?authSource=chatbot'
|
||||
export SKILL_INTERNAL_BASE_URL=http://127.0.0.1:8083
|
||||
./gradlew bootRun
|
||||
|
||||
# Skill
|
||||
cd kakaoChatbotSkill-chatbot2.0-agent
|
||||
export AGENT_MODE=agent
|
||||
export RAG_AGENT_CHAT_URL=http://127.0.0.1:28012/agent/chat
|
||||
export CHATBOT_API_BASE_URL=http://127.0.0.1:8086/api/
|
||||
export INTERNAL_TOOL_API_KEY=local-dev-key
|
||||
./gradlew bootRun
|
||||
|
||||
# UI
|
||||
cd chatbotApp-chatbot2.0-agent
|
||||
CHATBOT_API_UPSTREAM=http://host.docker.internal:8083/web/ \
|
||||
CHATBOT_API_HOST=host.docker.internal ./start.sh
|
||||
```
|
||||
|
||||
## api_clients.py 스타일 변수
|
||||
|
||||
| 변수 | exdev 값 | 설명 |
|
||||
|------|----------|------|
|
||||
| `EMBED_API_STYLE` | `tei` | `/embed` |
|
||||
| `RERANK_API_STYLE` | `legacy` | `/rerank` |
|
||||
| `EMBED_API_STYLE` | `openai` | 게이트웨이 `/v1/embeddings` |
|
||||
| `RERANK_API_STYLE` | `gateway` | 게이트웨이 `/score` |
|
||||
|
||||
로컬 exdev 연동 시 **`tei` + `legacy`** 조합을 사용합니다.
|
||||
|
||||
Regular → Executable
+53
-53
@@ -1,53 +1,53 @@
|
||||
# 로컬 Mac 개발용 (start-all.sh / stop-all.sh)
|
||||
# - network_mode:host 미사용 → :28012 / :28013 호스트 바인딩
|
||||
# - Mongo / Qdrant 는 stock.exdev.co.kr (로컬 컨테이너 미기동)
|
||||
# - AI 는 host.docker.internal 경유 SSH 터널 (.env)
|
||||
name: exchatbot-local
|
||||
|
||||
services:
|
||||
api:
|
||||
image: ${RAG_API_IMAGE:-rag-api-slim:latest}
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/service-slim.Dockerfile
|
||||
ports:
|
||||
- "${RAG_API_PORT:-28012}:28012"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
UVICORN_WORKERS: "${UVICORN_WORKERS:-2}"
|
||||
volumes:
|
||||
- ./data:/app/data
|
||||
- ./scripts:/app/scripts
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-sf", "http://localhost:28012/health"]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 12
|
||||
start_period: 45s
|
||||
|
||||
admin:
|
||||
image: ${RAG_API_IMAGE:-rag-api-slim:latest}
|
||||
ports:
|
||||
- "${ADMIN_PORT:-28013}:28013"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
command:
|
||||
- python
|
||||
- -m
|
||||
- uvicorn
|
||||
- scripts.admin_service:app
|
||||
- --host
|
||||
- 0.0.0.0
|
||||
- --port
|
||||
- "28013"
|
||||
working_dir: /app
|
||||
env_file:
|
||||
- .env
|
||||
volumes:
|
||||
- ./data:/app/data
|
||||
- ./scripts:/app/scripts
|
||||
restart: unless-stopped
|
||||
# 로컬 Mac 개발용 (start-all.sh / stop-all.sh)
|
||||
# - network_mode:host 미사용 → :28012 / :28013 호스트 바인딩
|
||||
# - Mongo / Qdrant 는 stock.exdev.co.kr (로컬 컨테이너 미기동)
|
||||
# - AI 는 host.docker.internal 경유 SSH 터널 (.env)
|
||||
name: exchatbot-local
|
||||
|
||||
services:
|
||||
api:
|
||||
image: ${RAG_API_IMAGE:-rag-api-slim:latest}
|
||||
build:
|
||||
context: .
|
||||
dockerfile: docker/service-slim.Dockerfile
|
||||
ports:
|
||||
- "${RAG_API_PORT:-28012}:28012"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
UVICORN_WORKERS: "${UVICORN_WORKERS:-2}"
|
||||
volumes:
|
||||
- ./data:/app/data
|
||||
- ./scripts:/app/scripts
|
||||
restart: unless-stopped
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-sf", "http://localhost:28012/health"]
|
||||
interval: 10s
|
||||
timeout: 10s
|
||||
retries: 12
|
||||
start_period: 45s
|
||||
|
||||
admin:
|
||||
image: ${RAG_API_IMAGE:-rag-api-slim:latest}
|
||||
ports:
|
||||
- "${ADMIN_PORT:-28013}:28013"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
command:
|
||||
- python
|
||||
- -m
|
||||
- uvicorn
|
||||
- scripts.admin_service:app
|
||||
- --host
|
||||
- 0.0.0.0
|
||||
- --port
|
||||
- "28013"
|
||||
working_dir: /app
|
||||
env_file:
|
||||
- .env
|
||||
volumes:
|
||||
- ./data:/app/data
|
||||
- ./scripts:/app/scripts
|
||||
restart: unless-stopped
|
||||
|
||||
Regular → Executable
+59
-59
@@ -1,59 +1,59 @@
|
||||
# =============================================================================
|
||||
# 로컬 Mac/Docker + exdev(chatbot.exdev.co.kr) 호스트 AI (SSH 터널)
|
||||
# 사용법:
|
||||
# 1) ./local-dev/start-exdev-ai-tunnel.sh (별도 터미널 유지)
|
||||
# 2) cp local-dev/env.exdev-ai.template exAiChatBot-chatbot2.0-agent/.env
|
||||
# 3) exAiChatBot / chatbotApi / kakaoChatbotSkill / chatbotApp 기동
|
||||
# =============================================================================
|
||||
|
||||
# ── exdev AI (Mac localhost:16000~16002 → SSH 터널) ──
|
||||
# Docker Desktop(Mac): host.docker.internal
|
||||
# Linux host network / 로컬 python: 127.0.0.1
|
||||
LLM_BASE_URL=http://host.docker.internal:16000
|
||||
TEI_EMBED_URL=http://host.docker.internal:16001
|
||||
TEI_RERANK_URL=http://host.docker.internal:16002
|
||||
|
||||
# exdev Mac Studio 실제 모델명 (curl http://127.0.0.1:16000/v1/models 참고)
|
||||
LLM_MODEL_NAME=mlx-community/Qwen2.5-7B-Instruct-4bit
|
||||
EMBED_MODEL_NAME=Qwen/Qwen3-Embedding-8B
|
||||
TEI_RERANK_MODEL=qwen3-reranker-4b
|
||||
|
||||
# exdev 호스트 AI API 스타일 (게이트웨이와 다름)
|
||||
EMBED_API_STYLE=tei
|
||||
RERANK_API_STYLE=legacy
|
||||
MODEL_VERIFY_SSL=false
|
||||
API_TIMEOUT=120
|
||||
|
||||
# 게이트웨이 키 불필요 (exdev 호스트 AI는 Bearer 없음)
|
||||
MODEL_API_KEY=
|
||||
|
||||
# ── exdev MongoDB / Qdrant (stock.exdev.co.kr, 로컬 미기동) ──
|
||||
EXDEV_DATA_HOST=stock.exdev.co.kr
|
||||
MONGO_HOST=stock.exdev.co.kr
|
||||
MONGO_PORT=27017
|
||||
MONGO_USER=
|
||||
MONGO_PASSWORD=
|
||||
MONGO_DATABASE=chat_history
|
||||
MONGO_COLLECTION=rag_conversations
|
||||
MONGO_FEEDBACK_DATABASE=chatbot
|
||||
MONGO_FEEDBACK_COLLECTION=answer_feedback
|
||||
MONGO_IMPROVEMENT_COLLECTION=improvement_suggestions
|
||||
|
||||
VECTOR_STORE=qdrant
|
||||
QDRANT_HOST=stock.exdev.co.kr
|
||||
QDRANT_PORT=6333
|
||||
# stock.exdev.co.kr 운영 컬렉션 (8488 vectors, 2026-07)
|
||||
QDRANT_COLLECTION=qa_vectors_v2
|
||||
|
||||
# chatbotApi (WAS) — stock MongoDB chatbot DB
|
||||
MONGODB_URI=mongodb://exDev:ehfhrhdtk!!@stock.exdev.co.kr:27017/chatbot?authSource=chatbot&heartbeatFrequencyMS=30000&minPoolSize=3&maxIdleTimeMS=1800000
|
||||
|
||||
|
||||
# ── 로컬 WAS / Skill 연동 ──
|
||||
CHATBOT_API_BASE_URL=http://127.0.0.1:8086/api
|
||||
INTERNAL_TOOL_API_KEY=local-dev-key
|
||||
AGENT_MAX_ROUNDS=6
|
||||
CHATBOT_TOOL_TIMEOUT=60
|
||||
|
||||
ADMIN_PORT=28013
|
||||
UVICORN_WORKERS=2
|
||||
# =============================================================================
|
||||
# 로컬 Mac/Docker + exdev(chatbot.exdev.co.kr) 호스트 AI (SSH 터널)
|
||||
# 사용법:
|
||||
# 1) ./local-dev/start-exdev-ai-tunnel.sh (별도 터미널 유지)
|
||||
# 2) cp local-dev/env.exdev-ai.template exAiChatBot-chatbot2.0-agent/.env
|
||||
# 3) exAiChatBot / chatbotApi / kakaoChatbotSkill / chatbotApp 기동
|
||||
# =============================================================================
|
||||
|
||||
# ── exdev AI (Mac localhost:16000~16002 → SSH 터널) ──
|
||||
# Docker Desktop(Mac): host.docker.internal
|
||||
# Linux host network / 로컬 python: 127.0.0.1
|
||||
LLM_BASE_URL=http://host.docker.internal:16000
|
||||
TEI_EMBED_URL=http://host.docker.internal:16001
|
||||
TEI_RERANK_URL=http://host.docker.internal:16002
|
||||
|
||||
# exdev Mac Studio 실제 모델명 (curl http://127.0.0.1:16000/v1/models 참고)
|
||||
LLM_MODEL_NAME=mlx-community/Qwen2.5-7B-Instruct-4bit
|
||||
EMBED_MODEL_NAME=Qwen/Qwen3-Embedding-8B
|
||||
TEI_RERANK_MODEL=qwen3-reranker-4b
|
||||
|
||||
# exdev 호스트 AI API 스타일 (게이트웨이와 다름)
|
||||
EMBED_API_STYLE=tei
|
||||
RERANK_API_STYLE=legacy
|
||||
MODEL_VERIFY_SSL=false
|
||||
API_TIMEOUT=120
|
||||
|
||||
# 게이트웨이 키 불필요 (exdev 호스트 AI는 Bearer 없음)
|
||||
MODEL_API_KEY=
|
||||
|
||||
# ── exdev MongoDB / Qdrant (stock.exdev.co.kr, 로컬 미기동) ──
|
||||
EXDEV_DATA_HOST=stock.exdev.co.kr
|
||||
MONGO_HOST=stock.exdev.co.kr
|
||||
MONGO_PORT=27017
|
||||
MONGO_USER=
|
||||
MONGO_PASSWORD=
|
||||
MONGO_DATABASE=chat_history
|
||||
MONGO_COLLECTION=rag_conversations
|
||||
MONGO_FEEDBACK_DATABASE=chatbot
|
||||
MONGO_FEEDBACK_COLLECTION=answer_feedback
|
||||
MONGO_IMPROVEMENT_COLLECTION=improvement_suggestions
|
||||
|
||||
VECTOR_STORE=qdrant
|
||||
QDRANT_HOST=stock.exdev.co.kr
|
||||
QDRANT_PORT=6333
|
||||
# stock.exdev.co.kr 운영 컬렉션 (8488 vectors, 2026-07)
|
||||
QDRANT_COLLECTION=qa_vectors_v2
|
||||
|
||||
# chatbotApi (WAS) — stock MongoDB chatbot DB
|
||||
MONGODB_URI=mongodb://exDev:ehfhrhdtk!!@stock.exdev.co.kr:27017/chatbot?authSource=chatbot&heartbeatFrequencyMS=30000&minPoolSize=3&maxIdleTimeMS=1800000
|
||||
|
||||
|
||||
# ── 로컬 WAS / Skill 연동 ──
|
||||
CHATBOT_API_BASE_URL=http://127.0.0.1:8086/api
|
||||
INTERNAL_TOOL_API_KEY=local-dev-key
|
||||
AGENT_MAX_ROUNDS=6
|
||||
CHATBOT_TOOL_TIMEOUT=60
|
||||
|
||||
ADMIN_PORT=28013
|
||||
UVICORN_WORKERS=2
|
||||
|
||||
@@ -1,29 +1,29 @@
|
||||
#!/usr/bin/env bash
|
||||
# Windows (Git Bash) helper for ./start-all-server.sh
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
export PATH="${ROOT_DIR}/local-dev/bin:/c/Program Files/nodejs:/c/Program Files/Git/usr/bin:${PATH}"
|
||||
export GIT_SSH_COMMAND="${GIT_SSH_COMMAND:-ssh -o BatchMode=yes -o ConnectTimeout=20}"
|
||||
# Git Bash/MSYS 가 /chatbot/app 같은 env 를 Windows 경로로 바꾸지 않게
|
||||
export MSYS_NO_PATHCONV=1
|
||||
export MSYS2_ARG_CONV_EXCL='*'
|
||||
|
||||
# Prefer Windows OpenSSH (has the exdev key)
|
||||
if [[ -x /c/Windows/System32/OpenSSH/ssh.exe ]]; then
|
||||
export GIT_SSH_COMMAND="/c/Windows/System32/OpenSSH/ssh.exe -o BatchMode=yes -o ConnectTimeout=20"
|
||||
export PATH="/c/Windows/System32/OpenSSH:${PATH}"
|
||||
fi
|
||||
|
||||
cd "${ROOT_DIR}"
|
||||
echo "[windows] node=$(command -v node) $(node -v 2>/dev/null || true)"
|
||||
echo "[windows] npm=$(command -v npm)"
|
||||
echo "[windows] rsync=$(command -v rsync)"
|
||||
echo "[windows] ssh=$(command -v ssh)"
|
||||
|
||||
# smoke checks
|
||||
ssh -o BatchMode=yes -o ConnectTimeout=15 aidev@chatbot.exdev.co.kr 'echo SSH_CHATBOT_OK'
|
||||
git ls-remote origin HEAD >/dev/null
|
||||
echo "[windows] Gitea git OK"
|
||||
|
||||
exec bash ./start-all-server.sh "$@"
|
||||
#!/usr/bin/env bash
|
||||
# Windows (Git Bash) helper for ./start-all-server.sh
|
||||
set -euo pipefail
|
||||
|
||||
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
export PATH="${ROOT_DIR}/local-dev/bin:/c/Program Files/nodejs:/c/Program Files/Git/usr/bin:${PATH}"
|
||||
export GIT_SSH_COMMAND="${GIT_SSH_COMMAND:-ssh -o BatchMode=yes -o ConnectTimeout=20}"
|
||||
# Git Bash/MSYS 가 /chatbot/app 같은 env 를 Windows 경로로 바꾸지 않게
|
||||
export MSYS_NO_PATHCONV=1
|
||||
export MSYS2_ARG_CONV_EXCL='*'
|
||||
|
||||
# Prefer Windows OpenSSH (has the exdev key)
|
||||
if [[ -x /c/Windows/System32/OpenSSH/ssh.exe ]]; then
|
||||
export GIT_SSH_COMMAND="/c/Windows/System32/OpenSSH/ssh.exe -o BatchMode=yes -o ConnectTimeout=20"
|
||||
export PATH="/c/Windows/System32/OpenSSH:${PATH}"
|
||||
fi
|
||||
|
||||
cd "${ROOT_DIR}"
|
||||
echo "[windows] node=$(command -v node) $(node -v 2>/dev/null || true)"
|
||||
echo "[windows] npm=$(command -v npm)"
|
||||
echo "[windows] rsync=$(command -v rsync)"
|
||||
echo "[windows] ssh=$(command -v ssh)"
|
||||
|
||||
# smoke checks
|
||||
ssh -o BatchMode=yes -o ConnectTimeout=15 aidev@chatbot.exdev.co.kr 'echo SSH_CHATBOT_OK'
|
||||
git ls-remote origin HEAD >/dev/null
|
||||
echo "[windows] Gitea git OK"
|
||||
|
||||
exec bash ./start-all-server.sh "$@"
|
||||
|
||||
Reference in New Issue
Block a user