#!/bin/bash # TK-MP-Project 시놀로지 배포 스크립트 # 사용법: ./deploy-synology.sh [NAS_IP] [SSH_PORT] NAS_IP=${1:-"192.168.0.3"} SSH_PORT=${2:-"22"} NAS_USER="admin" PROJECT_NAME="tk-mp-project" REMOTE_PATH="/volume1/docker/${PROJECT_NAME}" echo "🚀 TK-MP-Project 시놀로지 배포 시작..." echo "📡 대상 NAS: ${NAS_IP}:${SSH_PORT}" # 1. 프로젝트 압축 echo "📦 프로젝트 압축 중..." tar -czf ${PROJECT_NAME}.tar.gz \ --exclude='node_modules' \ --exclude='venv' \ --exclude='*.pyc' \ --exclude='__pycache__' \ --exclude='.git' \ --exclude='uploads' \ . # 2. NAS로 파일 전송 echo "📤 NAS로 파일 전송 중..." scp -P ${SSH_PORT} ${PROJECT_NAME}.tar.gz ${NAS_USER}@${NAS_IP}:/tmp/ # 3. NAS에서 배포 실행 echo "🔧 NAS에서 배포 실행 중..." ssh -p ${SSH_PORT} ${NAS_USER}@${NAS_IP} << EOF # 디렉토리 생성 sudo mkdir -p ${REMOTE_PATH} cd ${REMOTE_PATH} # 기존 컨테이너 정지 및 제거 sudo docker-compose -f docker-compose.synology.yml down || true # 프로젝트 압축 해제 sudo tar -xzf /tmp/${PROJECT_NAME}.tar.gz -C ${REMOTE_PATH} sudo rm /tmp/${PROJECT_NAME}.tar.gz # Docker 이미지 빌드 및 실행 sudo docker-compose -f docker-compose.synology.yml build sudo docker-compose -f docker-compose.synology.yml up -d echo "✅ 배포 완료!" echo "🌐 프론트엔드: http://${NAS_IP}:10173" echo "🔧 백엔드 API: http://${NAS_IP}:10080" echo "🗄️ 데이터베이스: ${NAS_IP}:15432" echo "🔄 Redis: ${NAS_IP}:16379" EOF # 4. 로컬 임시 파일 정리 rm ${PROJECT_NAME}.tar.gz echo "🎉 배포가 완료되었습니다!" echo "" echo "📋 서비스 URL:" echo " 프론트엔드: http://${NAS_IP}:10173" echo " 백엔드 API: http://${NAS_IP}:10080/docs" echo "" echo "🔍 컨테이너 상태 확인:" echo " ssh -p ${SSH_PORT} ${NAS_USER}@${NAS_IP} 'sudo docker ps'"