🚀 배포용: PDF 뷰어 개선 및 서적별 UI 데본씽크 스타일 적용

 주요 개선사항:
- PDF API 500 에러 수정 (한글 파일명 UTF-8 인코딩 처리)
- PDF 뷰어 기능 완전 구현 (PDF.js 통합, 네비게이션, 확대/축소)
- 서적별 문서 그룹화 UI 데본씽크 스타일로 개선
- PDF Manager 페이지 서적별 보기 기능 추가
- Alpine.js 로드 순서 최적화로 JavaScript 에러 해결

🎨 UI/UX 개선:
- 확장/축소 가능한 아코디언 스타일 서적 목록
- 간결하고 직관적인 데본씽크 스타일 인터페이스
- PDF 상태 표시 (HTML 연결, 서적 분류)
- 반응형 디자인 및 부드러운 애니메이션

🔧 기술적 개선:
- PDF.js 워커 설정 및 토큰 인증 처리
- 서적별 PDF 자동 그룹화 로직
- Alpine.js 컴포넌트 초기화 최적화
This commit is contained in:
hyungi
2025-09-05 07:13:49 +09:00
commit cfb9485d4f
170 changed files with 41113 additions and 0 deletions

58
scripts/restore.sh Executable file
View File

@@ -0,0 +1,58 @@
#!/bin/bash
# Document Server 데이터베이스 복원 스크립트
# 시놀로지 NAS 환경에서 사용
if [ $# -eq 0 ]; then
echo "사용법: $0 <백업파일명>"
echo "예시: $0 document_db_20241201_143000.sql.gz"
exit 1
fi
BACKUP_FILE="$1"
BACKUP_DIR="/volume1/docker/document-server/backups"
CONTAINER_NAME="document-server-db"
if [ ! -f "$BACKUP_DIR/$BACKUP_FILE" ]; then
echo "❌ 백업 파일을 찾을 수 없습니다: $BACKUP_DIR/$BACKUP_FILE"
exit 1
fi
echo "⚠️ 주의: 현재 데이터베이스의 모든 데이터가 삭제됩니다!"
read -p "계속하시겠습니까? (y/N): " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
echo "복원이 취소되었습니다."
exit 1
fi
echo "🔄 데이터베이스 복원 시작..."
# 압축 해제 (필요한 경우)
if [[ $BACKUP_FILE == *.gz ]]; then
echo "📦 백업 파일 압축 해제 중..."
gunzip -c "$BACKUP_DIR/$BACKUP_FILE" > "/tmp/restore_temp.sql"
SQL_FILE="/tmp/restore_temp.sql"
else
SQL_FILE="$BACKUP_DIR/$BACKUP_FILE"
fi
# 기존 데이터베이스 삭제 및 재생성
echo "🗑️ 기존 데이터베이스 삭제 중..."
docker exec $CONTAINER_NAME psql -U docuser -d postgres -c "DROP DATABASE IF EXISTS document_db;"
docker exec $CONTAINER_NAME psql -U docuser -d postgres -c "CREATE DATABASE document_db;"
# 백업 복원
echo "📥 데이터베이스 복원 중..."
docker exec -i $CONTAINER_NAME psql -U docuser -d document_db < "$SQL_FILE"
# 임시 파일 정리
if [ -f "/tmp/restore_temp.sql" ]; then
rm "/tmp/restore_temp.sql"
fi
echo "✅ 데이터베이스 복원 완료"
echo "🔄 백엔드 서비스 재시작 중..."
docker restart document-server-backend
echo "🎉 복원 작업 완료"