✨ 주요 개선사항: - PDF API 500 에러 수정 (한글 파일명 UTF-8 인코딩 처리) - PDF 뷰어 기능 완전 구현 (PDF.js 통합, 네비게이션, 확대/축소) - 서적별 문서 그룹화 UI 데본씽크 스타일로 개선 - PDF Manager 페이지 서적별 보기 기능 추가 - Alpine.js 로드 순서 최적화로 JavaScript 에러 해결 🎨 UI/UX 개선: - 확장/축소 가능한 아코디언 스타일 서적 목록 - 간결하고 직관적인 데본씽크 스타일 인터페이스 - PDF 상태 표시 (HTML 연결, 서적 분류) - 반응형 디자인 및 부드러운 애니메이션 🔧 기술적 개선: - PDF.js 워커 설정 및 토큰 인증 처리 - 서적별 PDF 자동 그룹화 로직 - Alpine.js 컴포넌트 초기화 최적화
7.0 KiB
7.0 KiB
🚀 빠른 시작 가이드
Document Server를 Synology DS1525+에 배포하는 가장 간단한 방법입니다.
⚠️ 실제 서비스 환경 주의사항
🚨 중요: 이 시스템은 실제 서비스 중입니다!
이 Document Server는 실제 운영 중인 맥미니에 설치되어 사용되고 있습니다.
절대 삭제하면 안 되는 원본 데이터:
- 모든 업로드된 문서 파일들
- 사용자가 작성한 메모, 하이라이트, 노트북
- 데이터베이스의 모든 사용자 데이터
- 설정 파일 및 사용자 환경설정
🛡️ 업데이트 시 필수 원칙
- 백업 우선: 모든 작업 전 반드시 백업
- 데이터 보존: 기존 데이터 디렉토리는 절대 삭제 금지
- 점진적 적용: 코드만 업데이트하고 데이터는 보존
- 즉시 롤백: 문제 발생 시 바로 이전 버전으로 복구
📋 준비사항
- Synology DS1525+ (32GB RAM, SSD 캐시 활성화) 또는 Mac Mini
- Docker 패키지 설치 (Package Center에서 설치)
- SSH 접속 가능
- Git 설치 (선택사항)
- 중요: 기존 서비스 중단 최소화를 위한 계획
🎯 한 번에 배포하기
방법 1: Git 클론 (권장) ⭐
# 1. NAS에 SSH 접속
ssh admin@your-nas-ip
# 2. 프로젝트 클론
cd /volume1/docker/
git clone https://git.hyungi.net/hyungi/document-server.git
cd document-server
# 3. 자동 배포 (환경 설정 + 배포)
./scripts/deploy-synology.sh
방법 2: 파일 업로드
# 1. 로컬에서 NAS로 파일 전송
scp -r ./document-server admin@your-nas-ip:/volume1/docker/
# 2. NAS에 SSH 접속
ssh admin@your-nas-ip
cd /volume1/docker/document-server
# 3. 자동 배포
./scripts/deploy-synology.sh
⚙️ 환경 설정 (자동)
배포 스크립트 실행 시 자동으로 환경 설정이 시작됩니다:
=== 🔧 Document Server 환경 변수 설정 ===
1. 데이터베이스 비밀번호
기본값: AbC123XyZ (자동생성)
입력: [엔터 = 기본값 사용]
2. JWT 시크릿 키 (보안용)
기본값: kL9mN2pQ... (자동생성)
입력: [엔터 = 기본값 사용]
3. 관리자 이메일
기본값: admin@document-server.local
입력: admin@mydomain.com
4. 관리자 비밀번호
기본값: MyPass123 (자동생성)
입력: [엔터 = 기본값 사용]
5. 도메인 이름 (외부 접속용)
기본값: localhost
입력: nas.mydomain.com
💡 팁: 대부분 엔터만 눌러도 안전한 기본값이 자동 설정됩니다!
🎉 배포 완료 후
접속 확인
🌐 웹 인터페이스: http://your-nas-ip:24100
📧 관리자 이메일: admin@document-server.local
🔑 관리자 비밀번호: (설정 시 표시된 비밀번호)
주요 기능 테스트
- 할일관리:
http://your-nas-ip:24100/todos.html - 메모 트리:
http://your-nas-ip:24100/memo-tree.html - 노트북:
http://your-nas-ip:24100/notebooks.html - 문서 업로드: 메인 페이지에서 HTML 파일 드래그&드롭
🔄 안전한 업데이트 방법
⚠️ 업데이트 전 필수 체크리스트
# 1. 현재 서비스 상태 확인
docker-compose ps
./scripts/monitor-synology.sh
# 2. 전체 백업 실행 (필수!)
./scripts/backup.sh
# 3. 백업 파일 확인
ls -la /volume2/document-storage/backups/
# 4. 사용자 알림 (서비스 중단 예고)
echo "⚠️ 시스템 업데이트 예정 - 잠시 중단될 수 있습니다"
Git 사용 (권장) - 데이터 보호 포함
# NAS 또는 Mac Mini에 SSH 접속
ssh admin@your-server-ip
cd /volume1/docker/document-server # 또는 실제 설치 경로
# ⚠️ 중요: 자동 업데이트 스크립트는 백업을 포함합니다
# 백업 + 업데이트 + 헬스체크 + 롤백 기능
./scripts/update-synology.sh
수동 업데이트 (고급 사용자용)
# 1. 필수 백업 실행
./scripts/backup.sh
# 2. 로컬 변경사항 보존
git stash # 설정 파일 등 로컬 변경사항 임시 저장
# 3. 코드 업데이트 (데이터 디렉토리 제외)
git pull origin main
# 4. 로컬 변경사항 복원 (필요시)
git stash pop
# 5. 컨테이너 재시작 (데이터 볼륨 보존)
docker-compose -f docker-compose.synology-optimized.yml restart
# 6. 서비스 상태 확인
./scripts/monitor-synology.sh
🚨 데이터 보호 원칙
- 볼륨 매핑 보존: Docker 볼륨은 절대 삭제하지 않음
- 백업 우선: 모든 변경 전 반드시 백업 실행
- 점진적 업데이트: 한 번에 하나씩 컴포넌트 업데이트
- 롤백 준비: 문제 발생 시 즉시 이전 버전으로 복구
📊 모니터링
# 시스템 상태 확인
./scripts/monitor-synology.sh
# 실시간 모니터링 (5초 간격)
watch -n 5 './scripts/monitor-synology.sh'
# 로그 확인
docker-compose -f docker-compose.synology-optimized.yml logs -f
🚨 문제 해결
포트 충돌
# 포트 사용 확인
netstat -tuln | grep -E "(24100|24101|24102|24103)"
# 다른 포트 사용 시 .env.synology 파일 수정
nano .env.synology
# EXTERNAL_PORT=24200 (예시)
권한 문제
# 디렉토리 권한 수정
sudo chown -R 1000:1000 /volume1/docker/document-server/
sudo chown -R 1000:1000 /volume2/document-storage/
서비스 재시작
# 전체 재시작
docker-compose -f docker-compose.synology-optimized.yml restart
# 특정 서비스만 재시작
docker-compose -f docker-compose.synology-optimized.yml restart backend
롤백 (업데이트 실패 시)
# 이전 버전으로 롤백
./scripts/update-synology.sh rollback
💾 백업
자동 백업 설정
# Synology 작업 스케줄러에서 설정
# 제어판 > 작업 스케줄러 > 생성 > 사용자 정의 스크립트
# 매일 새벽 2시 백업
0 2 * * * /volume1/docker/document-server/backup.sh
수동 백업
# 즉시 백업 실행
/volume1/docker/document-server/backup.sh
# 백업 파일 확인
ls -la /volume2/document-storage/backups/
🔒 보안 설정
방화벽 (권장)
# Synology 제어판 > 보안 > 방화벽
# 규칙 추가: 포트 24100 허용
SSL 인증서 (외부 접속 시)
# Let's Encrypt 인증서 발급
certbot certonly --webroot -w /volume2/document-storage/documents -d your-domain.com
📞 도움말
로그 수집 (문제 보고 시)
# 시스템 리포트 생성
./scripts/monitor-synology.sh > system-report.txt
# 로그 파일 위치
/volume1/docker/document-server/logs/
유용한 명령어
# Docker 상태 확인
docker ps
docker stats
# 디스크 사용량 확인
df -h /volume1 /volume2
# 메모리 사용량 확인
free -h
🎯 요약
- 배포:
./scripts/deploy-synology.sh(한 번만) - 업데이트:
./scripts/update-synology.sh(필요시) - 모니터링:
./scripts/monitor-synology.sh(상태 확인) - 접속:
http://your-nas-ip:24100
🎉 이제 Document Server를 사용할 준비가 완료되었습니다!