- 순찰/점검 기능 개선 (zone-detail 페이지 추가) - 출근/근태 시스템 개선 (연차 조회, 근무현황) - 작업분석 대분류 그룹화 및 마이그레이션 스크립트 - 모바일 네비게이션 UI 추가 - NAS 배포 도구 및 문서 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
TK-FB-Project Synology NAS 배포 가이드
사전 준비
1. Synology NAS 요구사항
- DSM 7.0 이상
- Docker 패키지 설치
- 최소 4GB RAM 권장
- 10GB 이상 저장공간
2. Cloudflare Tunnel 설정
-
Cloudflare 대시보드 접속
- https://dash.cloudflare.com 로그인
- Zero Trust > Access > Tunnels 이동
-
터널 생성
- "Create a tunnel" 클릭
- 이름 입력 (예: tkfb-nas)
- 환경: Docker 선택
- 표시되는 토큰을
.env파일의CLOUDFLARE_TUNNEL_TOKEN에 입력
-
Public hostname 설정
- 터널 설정에서 "Public Hostnames" 추가
Subdomain Domain Service tkfb yourdomain.com http://web:80 api.tkfb yourdomain.com http://api:3005
배포 순서
1. 파일 전송
Synology NAS의 docker 폴더에 다음 파일들을 업로드:
/volume1/docker/tkfb/
├── docker-compose.synology.yml (→ docker-compose.yml로 이름 변경)
├── .env (→ .env.synology 복사 후 수정)
├── backup_YYYYMMDD_HHMMSS.sql
├── api.hyungi.net/
├── web-ui/
└── fastapi-bridge/
2. 환경 변수 설정
cd /volume1/docker/tkfb
cp .env.synology .env
# .env 파일 편집하여 비밀번호, 토큰 등 수정
3. Docker Compose 실행
# SSH로 NAS 접속 후
cd /volume1/docker/tkfb
# 이미지 빌드 및 시작
docker-compose up -d --build
# 로그 확인
docker-compose logs -f
4. 데이터베이스 복원
# DB 컨테이너가 시작된 후 (약 30초 대기)
docker exec -i tkfb_db mysql -u root -p'비밀번호' < backup_YYYYMMDD_HHMMSS.sql
포트 설정
| 서비스 | 내부포트 | 외부포트 | 설명 |
|---|---|---|---|
| web | 80 | 80 | Web UI |
| api | 3005 | 3005 | Node.js API |
| fastapi | 8000 | 8000 | FastAPI Bridge |
| db | 3306 | 3306 | MariaDB |
| phpmyadmin | 80 | 8080 | DB 관리도구 |
Cloudflare Tunnel 사용 시
Cloudflare Tunnel을 사용하면 포트 포워딩 없이 외부 접속이 가능합니다:
- 방화벽 포트 개방 불필요
- 자동 HTTPS 인증서
- DDoS 보호
web-ui의 API 주소 변경
web-ui/js/config.js 또는 관련 설정 파일에서 API URL을 변경:
// 로컬 테스트
const API_URL = 'http://localhost:3005';
// Cloudflare Tunnel 사용 시
const API_URL = 'https://api.tkfb.yourdomain.com';
문제 해결
1. 컨테이너 상태 확인
docker-compose ps
docker-compose logs api # API 로그
docker-compose logs db # DB 로그
2. 데이터베이스 연결 오류
# DB 컨테이너 재시작
docker-compose restart db
# DB 상태 확인
docker exec tkfb_db mysqladmin -u root -p ping
3. 권한 오류
# 볼륨 권한 설정
chmod -R 755 /volume1/docker/tkfb
chown -R 1000:1000 /volume1/docker/tkfb/api.hyungi.net/uploads
업데이트
cd /volume1/docker/tkfb
# 최신 코드 다운로드 후
docker-compose down
docker-compose up -d --build
# 캐시 포함 전체 재빌드
docker-compose build --no-cache
docker-compose up -d