- 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 오류 없이 모든 기능이 정상 작동합니다.
88 lines
2.9 KiB
Bash
Executable File
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"
|