#!/bin/bash # ===== 설정 ===== KEY="./1.key" USER="ubuntu" HOST="129.154.58.6" REMOTE_DIR="/var/www/bandosj.com/public_html" ARCHIVE_NAME="dist.tar.gz" # ===== nvm 초기화 및 빌드 ===== export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && source "$NVM_DIR/nvm.sh" echo "🟢 Node.js LTS 버전 활성화..." nvm use --lts || { echo "❌ Node 설정 실패"; exit 1; } echo "🔧 빌드 중..." npm install npm run build || { echo "❌ 빌드 실패"; exit 1; } # ===== 압축 ===== echo "📦 dist 디렉토리 압축 중..." COPYFILE_DISABLE=1 tar -czf "$ARCHIVE_NAME" -C dist . # ===== 파일 전송 ===== echo "🚀 압축 파일 전송 중..." scp -i "$KEY" "$ARCHIVE_NAME" "$USER@$HOST:/tmp/$ARCHIVE_NAME" || { echo "❌ 파일 전송 실패"; exit 1; } # ===== 원격 서버에서 압축 해제 및 배치 ===== echo "🔧 서버에서 배포 진행..." ssh -i "$KEY" "$USER@$HOST" << EOF sudo mkdir -p "$REMOTE_DIR" sudo rm -rf "$REMOTE_DIR"/* sudo tar -xzf /tmp/$ARCHIVE_NAME -C "$REMOTE_DIR" sudo rm /tmp/$ARCHIVE_NAME EOF # ===== 로컬 정리 ===== rm "$ARCHIVE_NAME" # ===== 완료 ===== echo "✅ 배포 완료! http://bandosj.com 에서 확인해보세요."