Files
TK-FB-Project/synology_deployment/README_SYNOLOGY_DEPLOYMENT.md
Hyungi Ahn a9bce9d20b fix: 캘린더 모달 중복 카드 문제 및 삭제 권한 개선
- monthly_worker_status 조회 시 GROUP BY로 중복 데이터 합산
- 작업보고서 삭제 권한을 그룹장 이상으로 제한 (admin, system, group_leader)
- 중복 데이터 정리를 위한 마이그레이션 SQL 추가 (009_fix_duplicate_monthly_status.sql)
- synology_deployment 버전에도 동일 수정 적용
2025-12-02 13:08:44 +09:00

193 lines
4.5 KiB
Markdown

# TK-FB-Project 시놀로지 NAS 923+ 배포 가이드
## 📋 개요
이 가이드는 TK-FB-Project를 시놀로지 NAS 923+ SSD 환경에 배포하는 방법을 설명합니다.
## 🔧 시스템 요구사항
### 하드웨어
- **시놀로지 NAS**: DS923+ 또는 그 이상
- **메모리**: 최소 8GB (권장 16GB 이상)
- **스토리지**: SSD 권장 (최소 50GB 여유 공간)
### 소프트웨어
- **DSM**: 7.0 이상
- **Docker**: Container Manager 패키지 설치 필요
- **SSH 접근**: 활성화 필요
## 🚀 배포 단계
### 1단계: 시놀로지 준비
```bash
# SSH로 시놀로지 접속
ssh admin@[시놀로지IP]
# Docker 및 Docker Compose 확인
docker --version
docker-compose --version
```
### 2단계: 배포 파일 업로드
```bash
# 배포 디렉토리를 시놀로지 SSD로 복사
# 방법 1: SCP 사용
scp -r synology_deployment admin@[시놀로지IP]:/volume2/docker/
# 방법 2: 파일 스테이션 사용
# 웹 브라우저에서 파일 스테이션으로 volume2/docker/ 경로에 업로드
```
### 3단계: 배포 실행
```bash
# 배포 디렉토리로 이동 (SSD)
cd /volume2/docker/synology_deployment
# 배포 스크립트 실행
sudo ./deploy.sh
```
### 4단계: 서비스 확인
```bash
# 컨테이너 상태 확인
docker-compose ps
# 로그 확인
docker-compose logs -f
```
## 🌐 접속 정보
배포 완료 후 다음 URL로 접속 가능합니다:
- **메인 애플리케이션**: `http://[시놀로지IP]:20000`
- **API 서버**: `http://[시놀로지IP]:20005`
- **FastAPI 브리지**: `http://[시놀로지IP]:8000`
- **phpMyAdmin**: `http://[시놀로지IP]:8080`
## 👥 기본 계정 정보
시스템에는 다음 계정들이 미리 설정되어 있습니다:
### 관리자 계정
- **hyungi**: 시스템 관리자 (비밀번호: 000000)
- **khahn**: 관리자 (비밀번호: 000000)
### 그룹장 계정
- **김두수**: 그룹장 (비밀번호: 000000)
- **임영규**: 그룹장 (비밀번호: 000000)
- **반치원**: 그룹장 (비밀번호: 000000)
### 데이터베이스
- **Root 비밀번호**: tkfb2024!
- **애플리케이션 DB**: hyungi_user / hyungi_pass2024!
## 🔧 관리 명령어
### 서비스 관리
```bash
# 서비스 시작
docker-compose up -d
# 서비스 중지
docker-compose down
# 서비스 재시작
docker-compose restart
# 특정 서비스 재시작
docker-compose restart api
```
### 로그 확인
```bash
# 전체 로그
docker-compose logs -f
# 특정 서비스 로그
docker-compose logs -f api
docker-compose logs -f db
docker-compose logs -f web
```
### 백업 및 복원
```bash
# 데이터베이스 백업
docker exec tkfb_db_prod mysqldump -u root -ptkfb2024! hyungi > backup_$(date +%Y%m%d).sql
# 데이터베이스 복원
docker exec -i tkfb_db_prod mysql -u root -ptkfb2024! hyungi < backup_20251105.sql
```
## 📁 디렉토리 구조
```
/volume2/docker/tkfb/ # SSD 볼륨
├── mysql_data/ # MySQL 데이터 파일
├── api_logs/ # API 서버 로그
├── api_uploads/ # 업로드된 파일
└── fastapi_logs/ # FastAPI 로그
```
## 🔒 보안 설정
### 방화벽 설정
시놀로지 제어판에서 다음 포트를 허용해주세요:
- **20000**: 웹 애플리케이션
- **20005**: API 서버
- **8000**: FastAPI 브리지
- **8080**: phpMyAdmin (선택사항)
### SSL 인증서 (선택사항)
HTTPS 사용을 위해 시놀로지 제어판에서 SSL 인증서를 설정할 수 있습니다.
## 🚨 문제 해결
### 일반적인 문제들
#### 1. 컨테이너가 시작되지 않는 경우
```bash
# 로그 확인
docker-compose logs [서비스명]
# 컨테이너 재빌드
docker-compose build --no-cache [서비스명]
```
#### 2. 데이터베이스 연결 오류
```bash
# DB 컨테이너 상태 확인
docker exec tkfb_db_prod mysql -u root -ptkfb2024! -e "SELECT 1"
# DB 재시작
docker-compose restart db
```
#### 3. 포트 충돌
```bash
# 포트 사용 확인
netstat -tulpn | grep :20000
# 다른 포트로 변경 (docker-compose.yml 수정)
```
#### 4. 권한 문제
```bash
# 볼륨 권한 확인 (SSD)
sudo chown -R 1000:1000 /volume2/docker/tkfb/
sudo chmod -R 755 /volume2/docker/tkfb/
```
## 📞 지원
문제가 발생하면 다음 정보와 함께 문의해주세요:
- 시놀로지 모델 및 DSM 버전
- 에러 메시지 및 로그
- 실행한 명령어
## 📝 변경 이력
- **2025-11-05**: 초기 배포 가이드 작성
- 시놀로지 NAS 923+ SSD 환경 최적화
- 자동 DB 마이그레이션 포함
- 완전한 개발 데이터 이전