#!/bin/bash # ============================================================================= # TK-FB-Project Synology NAS 배포 스크립트 # ============================================================================= set -e echo "==========================================" echo "TK-FB-Project 배포 시작" echo "==========================================" # 1. 환경 변수 파일 확인 if [ ! -f .env ]; then echo "❌ .env 파일이 없습니다." echo " .env.synology 파일을 복사하고 값을 수정하세요:" echo " cp .env.synology .env" exit 1 fi # 2. Cloudflare Tunnel 토큰 확인 if grep -q "여기에_터널_토큰_입력" .env; then echo "⚠️ Cloudflare Tunnel 토큰이 설정되지 않았습니다." echo " .env 파일에서 CLOUDFLARE_TUNNEL_TOKEN을 설정하세요." fi # 3. Docker 이미지 빌드 echo "" echo "🔨 Docker 이미지 빌드 중..." docker-compose -f docker-compose.synology.yml build --no-cache # 4. 기존 컨테이너 중지 echo "" echo "🛑 기존 컨테이너 중지 중..." docker-compose -f docker-compose.synology.yml down 2>/dev/null || true # 5. 컨테이너 시작 echo "" echo "🚀 컨테이너 시작 중..." docker-compose -f docker-compose.synology.yml up -d # 6. DB 초기화 대기 echo "" echo "⏳ 데이터베이스 초기화 대기 중 (30초)..." sleep 30 # 7. 데이터베이스 복원 (백업 파일이 있는 경우) BACKUP_FILE=$(ls -t backup_*.sql 2>/dev/null | head -1) if [ -n "$BACKUP_FILE" ]; then echo "" echo "📦 데이터베이스 복원 중: $BACKUP_FILE" docker exec -i tkfb_db mysql -u root -p"$MYSQL_ROOT_PASSWORD" < "$BACKUP_FILE" echo "✅ 데이터베이스 복원 완료" fi # 8. 상태 확인 echo "" echo "==========================================" echo "📊 컨테이너 상태" echo "==========================================" docker-compose -f docker-compose.synology.yml ps echo "" echo "==========================================" echo "✅ 배포 완료!" echo "==========================================" echo "" echo "접속 URL:" echo " - Web UI: http://localhost:80" echo " - API: http://localhost:3005" echo " - phpMyAdmin: http://localhost:8080" echo "" echo "Cloudflare Tunnel 설정 시:" echo " - 외부 접속: https://your-domain.com" echo ""