- Frontend: 하드코딩된 localhost API URL을 동적 URL 생성으로 변경 - reports-daily.html: 3곳 수정 (프로젝트 로드, 미리보기, 보고서 생성) - issues-archive.html: 프로젝트 로드 함수 수정 - issues-dashboard.html: 2곳 수정 (프로젝트 로드, 진행중 이슈 로드) - issues-inbox.html: 프로젝트 로드 함수 수정 - daily-work.html: 프로젝트 로드 함수 수정 - permissions.js: 2곳 수정 (권한 부여, 사용자 권한 조회) - Backup System: 완전한 백업/복구 시스템 구축 - backup_script.sh: 자동 백업 스크립트 (DB, 볼륨, 설정 파일) - restore_script.sh: 백업 복구 스크립트 - setup_auto_backup.sh: 자동 백업 스케줄 설정 (매일 오후 9시) - 백업 정책: 최신 10개 버전만 유지하여 용량 절약 - Migration: 5장 사진 지원 마이그레이션 파일 업데이트 이제 Cloudflare 환경(m.hyungi.net)에서 HTTPS 프로토콜로 API 호출하여 Mixed Content 오류 없이 모든 기능이 정상 작동합니다.
106 lines
3.1 KiB
Bash
Executable File
106 lines
3.1 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# M 프로젝트 복구 스크립트
|
|
# 사용법: ./restore_script.sh /path/to/backup/folder
|
|
|
|
set -e
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "❌ 사용법: $0 <백업폴더경로>"
|
|
echo "예시: $0 /Users/hyungi/M-Project/backups/20251108_152538"
|
|
exit 1
|
|
fi
|
|
|
|
BACKUP_FOLDER="$1"
|
|
|
|
if [ ! -d "$BACKUP_FOLDER" ]; then
|
|
echo "❌ 백업 폴더가 존재하지 않습니다: $BACKUP_FOLDER"
|
|
exit 1
|
|
fi
|
|
|
|
echo "🔄 M 프로젝트 복구 시작"
|
|
echo "📁 백업 폴더: $BACKUP_FOLDER"
|
|
|
|
# 백업 정보 확인
|
|
if [ -f "$BACKUP_FOLDER/backup_info.txt" ]; then
|
|
echo "📋 백업 정보:"
|
|
cat "$BACKUP_FOLDER/backup_info.txt"
|
|
echo ""
|
|
fi
|
|
|
|
read -p "⚠️ 기존 데이터가 모두 삭제됩니다. 계속하시겠습니까? (y/N): " -n 1 -r
|
|
echo
|
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
echo "❌ 복구가 취소되었습니다."
|
|
exit 1
|
|
fi
|
|
|
|
# 1. 서비스 중지
|
|
echo "🛑 서비스 중지 중..."
|
|
cd /Users/hyungi/M-Project
|
|
docker-compose down
|
|
|
|
# 2. 기존 볼륨 삭제
|
|
echo "🗑️ 기존 볼륨 삭제 중..."
|
|
docker volume rm m-project_postgres_data m-project_uploads 2>/dev/null || true
|
|
|
|
# 3. 데이터베이스 컨테이너만 시작
|
|
echo "🚀 데이터베이스 컨테이너 시작 중..."
|
|
docker-compose up -d db
|
|
|
|
# 데이터베이스 준비 대기
|
|
echo "⏳ 데이터베이스 준비 대기 중..."
|
|
sleep 10
|
|
|
|
# 4. 데이터베이스 복구
|
|
if [ -f "$BACKUP_FOLDER/database_backup.sql" ]; then
|
|
echo "📊 데이터베이스 복구 중..."
|
|
docker exec -i m-project-db psql -U mproject mproject < "$BACKUP_FOLDER/database_backup.sql"
|
|
echo "✅ 데이터베이스 복구 완료"
|
|
else
|
|
echo "❌ 데이터베이스 백업 파일을 찾을 수 없습니다."
|
|
fi
|
|
|
|
# 5. Docker 볼륨 복구
|
|
if [ -f "$BACKUP_FOLDER/postgres_volume.tar.gz" ]; then
|
|
echo "💾 PostgreSQL 볼륨 복구 중..."
|
|
docker run --rm -v m-project_postgres_data:/data -v "$BACKUP_FOLDER":/backup alpine tar xzf /backup/postgres_volume.tar.gz -C /data
|
|
echo "✅ PostgreSQL 볼륨 복구 완료"
|
|
fi
|
|
|
|
if [ -f "$BACKUP_FOLDER/uploads_volume.tar.gz" ]; then
|
|
echo "📁 업로드 볼륨 복구 중..."
|
|
docker run --rm -v m-project_uploads:/data -v "$BACKUP_FOLDER":/backup alpine tar xzf /backup/uploads_volume.tar.gz -C /data
|
|
echo "✅ 업로드 볼륨 복구 완료"
|
|
fi
|
|
|
|
# 6. 설정 파일 복구
|
|
if [ -f "$BACKUP_FOLDER/docker-compose.yml" ]; then
|
|
echo "⚙️ 설정 파일 복구 중..."
|
|
cp "$BACKUP_FOLDER/docker-compose.yml" ./
|
|
if [ -d "$BACKUP_FOLDER/nginx" ]; then
|
|
cp -r "$BACKUP_FOLDER/nginx/" ./
|
|
fi
|
|
if [ -d "$BACKUP_FOLDER/migrations" ]; then
|
|
cp -r "$BACKUP_FOLDER/migrations/" ./backend/
|
|
fi
|
|
echo "✅ 설정 파일 복구 완료"
|
|
fi
|
|
|
|
# 7. 전체 서비스 시작
|
|
echo "🚀 전체 서비스 시작 중..."
|
|
docker-compose up -d
|
|
|
|
# 8. 서비스 상태 확인
|
|
echo "⏳ 서비스 시작 대기 중..."
|
|
sleep 15
|
|
|
|
echo "🔍 서비스 상태 확인 중..."
|
|
docker-compose ps
|
|
|
|
echo "🎉 복구 완료!"
|
|
echo "🌐 프론트엔드: http://localhost:16080"
|
|
echo "🔗 백엔드 API: http://localhost:16000"
|
|
echo "📊 데이터베이스: localhost:16432"
|
|
|