4b86b2a660
- server-dev start/stop/deploy 및 Gitea push 자동 배포 - local-dev 로컬 개발 환경 Co-authored-by: Cursor <cursoragent@cursor.com>
4.2 KiB
4.2 KiB
오프라인 배포 빠른 가이드
🚀 3단계로 끝내는 오프라인 배포
현재 PC (온라인 환경)
# 1. 패키징 스크립트 실행
cd /Users/parkjiwon/src/rag
./create-offline-package.sh
# 2. 완료! 패키지 위치 확인
ls -lh ~/rag-offline-package.tar.gz
결과: ~/rag-offline-package.tar.gz (약 2.5GB)
오프라인 서버 (Linux)
# 1. 패키지 압축 해제
tar -xzf rag-offline-package.tar.gz
cd rag-offline-package
# 2. 배포 실행 (자동)
./deploy.sh
끝! 프롬프트를 따라 .env 설정만 하면 완료됩니다.
📦 패키지 내용
rag-offline-package.tar.gz (2.5GB)
└── rag-offline-package/
├── rag-api.tar (1.2GB) - API 서비스 이미지
├── rag-batch.tar (1.1GB) - 배치 작업 이미지
├── deploy.sh - 자동 배포 스크립트
├── README.txt - 간단 설명
└── rag-project/ - 전체 소스 코드
├── docker-compose.yml
├── scripts/
├── data/
└── env.template
⚡ 빠른 명령어 참조
온라인 PC
# 패키지 생성
./create-offline-package.sh
# USB로 복사
cp ~/rag-offline-package.tar.gz /Volumes/USB/
# 또는 SCP 전송 (일시적 연결 가능 시)
scp ~/rag-offline-package.tar.gz user@server:/home/user/
오프라인 서버
# 압축 해제 및 배포
tar -xzf rag-offline-package.tar.gz
cd rag-offline-package
./deploy.sh
# 배포 후 확인
cd rag-project
docker-compose ps
curl http://localhost:28012/health
🔧 수동 배포 (deploy.sh 없이)
자동 스크립트를 사용하고 싶지 않다면:
cd rag-offline-package
# 1. 이미지 로드
docker load -i rag-api.tar
docker load -i rag-batch.tar
# 2. 프로젝트 설정
cd rag-project
cp env.template .env
vi .env # LLM_HOST, TEI_EMBED_HOST 등 수정
# 3. 배치 작업
docker-compose up preprocess embed index
# 4. API 시작
docker-compose up -d api
# 5. 확인
curl http://localhost:28012/health
📋 체크리스트
온라인 PC
./create-offline-package.sh실행~/rag-offline-package.tar.gz생성 확인- 파일을 USB/SCP로 전송
오프라인 서버
- Docker 설치됨 (
docker --version) - 패키지 압축 해제
./deploy.sh실행- .env 파일 설정 (LLM/TEI 서버 IP)
- 배치 작업 완료
- API 서비스 실행 중
- 헬스체크 성공
❓ FAQ
Q: 패키지 크기가 너무 큰데 분할할 수 있나요?
# 1GB 단위로 분할
split -b 1G ~/rag-offline-package.tar.gz rag-pkg.part
# 서버에서 합치기
cat rag-pkg.part* > rag-offline-package.tar.gz
Q: Docker가 없는 오프라인 서버는 어떻게 하나요?
- Docker 설치 파일도 함께 가져가야 합니다
- 또는 서버에 Docker가 사전 설치되어 있어야 합니다
Q: .env 파일에서 무엇을 수정해야 하나요?
# 필수 3가지
LLM_HOST=192.168.1.100 # LLM 서버 IP
TEI_EMBED_HOST=192.168.1.100 # TEI 서버 IP
TEI_RERANK_HOST=192.168.1.100 # TEI 서버 IP
Q: 배포 후 테스트는 어떻게 하나요?
# 헬스체크
curl http://localhost:28012/health
# 실제 질의
curl -X POST http://localhost:28012/ask \
-H "Content-Type: application/json" \
-d '{"query":"충전 카드 구매 방법"}'
📞 문제 해결
이미지 로드 실패
# 무결성 확인
tar -tzf rag-offline-package.tar.gz > /dev/null
echo $? # 0이면 정상
# 디스크 공간 확인
df -h # 5GB 이상 필요
외부 API 연결 실패
# 네트워크 확인
ping 192.168.1.100
# 포트 접근 확인
telnet 192.168.1.100 16000
curl http://192.168.1.100:16000/health
컨테이너 시작 실패
# 로그 확인
cd rag-project
docker-compose logs api
# 재시작
docker-compose restart api
🔗 상세 문서
- 전체 가이드:
OFFLINE_DEPLOYMENT.md - 배포 가이드:
DEPLOYMENT.md - RAG 파이프라인:
RAG_PIPELINE.md - 내부 LLM 가이드:
INTERNAL_LLM_GUIDE.md
마지막 업데이트: 2024-12-30