Files
TK-FB-Project/deploy/tkfb-package/README.md
Hyungi Ahn 2b1c7bfb88 feat: 다수 기능 개선 - 순찰, 출근, 작업분석, 모바일 UI 등
- 순찰/점검 기능 개선 (zone-detail 페이지 추가)
- 출근/근태 시스템 개선 (연차 조회, 근무현황)
- 작업분석 대분류 그룹화 및 마이그레이션 스크립트
- 모바일 네비게이션 UI 추가
- NAS 배포 도구 및 문서 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 14:41:01 +09:00

3.1 KiB

TK-FB-Project Synology NAS 배포 가이드

사전 준비

1. Synology NAS 요구사항

  • DSM 7.0 이상
  • Docker 패키지 설치
  • 최소 4GB RAM 권장
  • 10GB 이상 저장공간

2. Cloudflare Tunnel 설정

  1. Cloudflare 대시보드 접속

  2. 터널 생성

    • "Create a tunnel" 클릭
    • 이름 입력 (예: tkfb-nas)
    • 환경: Docker 선택
    • 표시되는 토큰을 .env 파일의 CLOUDFLARE_TUNNEL_TOKEN에 입력
  3. 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