Files
M-Project/backup_script.sh
hyungi a820a164cb Fix: HTTPS Mixed Content 오류 수정 및 백업 시스템 구축
- 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 오류 없이 모든 기능이 정상 작동합니다.
2025-11-13 06:52:21 +09:00

88 lines
2.9 KiB
Bash
Executable File

#!/bin/bash
# M 프로젝트 자동 백업 스크립트
# 사용법: ./backup_script.sh
set -e
# 백업 디렉토리 설정
BACKUP_DIR="/Users/hyungi/M-Project/backups"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FOLDER="$BACKUP_DIR/$DATE"
echo "🚀 M 프로젝트 백업 시작: $DATE"
# 백업 폴더 생성
mkdir -p "$BACKUP_FOLDER"
# 1. 데이터베이스 백업 (가장 중요!)
echo "📊 데이터베이스 백업 중..."
docker exec m-project-db pg_dump -U mproject mproject > "$BACKUP_FOLDER/database_backup.sql"
echo "✅ 데이터베이스 백업 완료"
# 2. Docker 볼륨 백업
echo "💾 Docker 볼륨 백업 중..."
docker run --rm -v m-project_postgres_data:/data -v "$BACKUP_FOLDER":/backup alpine tar czf /backup/postgres_volume.tar.gz -C /data .
docker run --rm -v m-project_uploads:/data -v "$BACKUP_FOLDER":/backup alpine tar czf /backup/uploads_volume.tar.gz -C /data .
echo "✅ Docker 볼륨 백업 완료"
# 3. 설정 파일 백업
echo "⚙️ 설정 파일 백업 중..."
cp docker-compose.yml "$BACKUP_FOLDER/"
cp -r nginx/ "$BACKUP_FOLDER/"
cp -r backend/migrations/ "$BACKUP_FOLDER/"
echo "✅ 설정 파일 백업 완료"
# 4. 백업 정보 기록
echo "📝 백업 정보 기록 중..."
cat > "$BACKUP_FOLDER/backup_info.txt" << EOF
M 프로젝트 백업 정보
===================
백업 일시: $(date)
백업 타입: 전체 백업
백업 위치: $BACKUP_FOLDER
포함된 내용:
- database_backup.sql: PostgreSQL 데이터베이스 덤프
- postgres_volume.tar.gz: PostgreSQL 데이터 볼륨
- uploads_volume.tar.gz: 업로드 파일 볼륨
- docker-compose.yml: Docker 설정
- nginx/: Nginx 설정
- migrations/: 데이터베이스 마이그레이션 파일
복구 방법:
1. ./restore_script.sh $(pwd)
또는 수동 복구:
1. docker-compose down
2. docker volume rm m-project_postgres_data m-project_uploads
3. docker-compose up -d db
4. docker exec -i m-project-db psql -U mproject mproject < database_backup.sql
5. docker-compose up -d
백업 정책:
- 최신 10개 백업만 유지 (용량 절약)
- 매일 오후 9시 자동 백업
- 매주 일요일 오후 9시 30분 추가 백업
EOF
# 5. 백업 크기 확인
BACKUP_SIZE=$(du -sh "$BACKUP_FOLDER" | cut -f1)
echo "📏 백업 크기: $BACKUP_SIZE"
# 6. 오래된 백업 정리 (최신 10개만 유지)
echo "🧹 오래된 백업 정리 중..."
BACKUP_COUNT=$(find "$BACKUP_DIR" -type d -name "20*" | wc -l)
if [ $BACKUP_COUNT -gt 10 ]; then
REMOVE_COUNT=$((BACKUP_COUNT - 10))
echo "📊 현재 백업 개수: $BACKUP_COUNT개, 삭제할 개수: $REMOVE_COUNT개"
find "$BACKUP_DIR" -type d -name "20*" | sort | head -n $REMOVE_COUNT | xargs rm -rf
echo "✅ 오래된 백업 $REMOVE_COUNT개 삭제 완료"
else
echo "📊 현재 백업 개수: $BACKUP_COUNT개 (정리 불필요)"
fi
echo "🎉 백업 완료!"
echo "📁 백업 위치: $BACKUP_FOLDER"
echo "📏 백업 크기: $BACKUP_SIZE"