#!/bin/bash # ============================================================================= # 배포 패키지 생성 스크립트 # ============================================================================= set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_DIR="$(dirname "$SCRIPT_DIR")" DEPLOY_DIR="$SCRIPT_DIR" PACKAGE_DIR="$DEPLOY_DIR/tkfb-package" echo "==========================================" echo "배포 패키지 생성" echo "==========================================" # 기존 패키지 삭제 rm -rf "$PACKAGE_DIR" mkdir -p "$PACKAGE_DIR" # 1. Docker 설정 파일 echo "📦 Docker 설정 복사..." cp "$DEPLOY_DIR/docker-compose.synology.yml" "$PACKAGE_DIR/docker-compose.yml" cp "$DEPLOY_DIR/.env.synology" "$PACKAGE_DIR/.env.example" cp "$DEPLOY_DIR/deploy.sh" "$PACKAGE_DIR/" cp "$DEPLOY_DIR/README.md" "$PACKAGE_DIR/" # 2. 데이터베이스 백업 echo "📦 DB 백업 복사..." cp "$DEPLOY_DIR"/backup_*.sql "$PACKAGE_DIR/" 2>/dev/null || echo "⚠️ DB 백업 파일 없음" # 3. 소스 코드 echo "📦 소스 코드 복사..." # API mkdir -p "$PACKAGE_DIR/api.hyungi.net" rsync -a --exclude='node_modules' --exclude='logs/*' --exclude='.git' \ "$PROJECT_DIR/api.hyungi.net/" "$PACKAGE_DIR/api.hyungi.net/" # Web UI mkdir -p "$PACKAGE_DIR/web-ui" rsync -a --exclude='.git' \ "$PROJECT_DIR/web-ui/" "$PACKAGE_DIR/web-ui/" # 프로덕션 config 복사 cp "$DEPLOY_DIR/web-ui-config.js" "$PACKAGE_DIR/web-ui/js/config.js" # FastAPI mkdir -p "$PACKAGE_DIR/fastapi-bridge" rsync -a --exclude='__pycache__' --exclude='.git' --exclude='venv' \ "$PROJECT_DIR/fastapi-bridge/" "$PACKAGE_DIR/fastapi-bridge/" # 4. init-db 폴더 생성 (초기 스키마용) mkdir -p "$PACKAGE_DIR/init-db" echo "-- 초기 데이터베이스 생성 완료 시 실행됨" > "$PACKAGE_DIR/init-db/README.txt" # 5. 압축 echo "📦 압축 중..." cd "$DEPLOY_DIR" TIMESTAMP=$(date +%Y%m%d_%H%M%S) tar -czf "tkfb-deploy-$TIMESTAMP.tar.gz" -C "$DEPLOY_DIR" tkfb-package # 크기 확인 echo "" echo "==========================================" echo "✅ 패키지 생성 완료!" echo "==========================================" ls -lh "$DEPLOY_DIR/tkfb-deploy-$TIMESTAMP.tar.gz" echo "" echo "파일: $DEPLOY_DIR/tkfb-deploy-$TIMESTAMP.tar.gz" echo "" echo "Synology NAS로 전송:" echo " scp $DEPLOY_DIR/tkfb-deploy-$TIMESTAMP.tar.gz admin@nas:/volume1/docker/"