smart_ims/docs/DEPLOYMENT_GUIDE.md
2026-01-22 23:42:55 +09:00

60 lines
3.2 KiB
Markdown

# 시스템 배포 가이드 (Deployment Guide)
본 문서는 빌드된 스마트어셋(SmartAsset) 솔루션을 실서버(Synology NAS 등)에 배포할 때 필요한 절차와 주의사항을 설명합니다.
## 1. 배포 대상 폴더 및 파일
서버에 업로드해야 하는 핵심 구성 요소는 다음과 같습니다.
### 1.1. `dist/` 폴더 (프론트엔드)
* **생성 방법**: `npm run build` 명령을 통해 생성됩니다.
* **역할**: 사용자 브라우저에서 실행되는 정적 웹 파일(JS, CSS, HTML)입니다.
* **위치**: 업로드 시 `server/` 폴더와 동일한 레벨 혹은 서버 설정에 맞게 배치합니다.
### 1.2. `server/` 폴더 (백엔드)
* 프로젝트의 API 및 세션, 라이선스 검증을 담당하는 핵심 로직입니다.
* **주의**: `node_modules`는 서버에서 직접 `npm install`을 실행하여 생성하는 것을 권장합니다.
---
## 2. 보안 및 라이선스 필수 파일 (중요)
배포 시 다음 파일들의 유무와 내용을 반드시 점검해야 합니다.
### 2.1. `server/.env` (환경 변수)
* **설정**: DB 접속 정보(Host, User, Password)와 포트 번호가 포함되어 있습니다.
* **주의**: 배포 환경에 맞는 DB 정보를 정확히 입력해야 서버가 시작됩니다.
### 2.2. `server/public_key.pem` (RSA 공개키)
* **역할**: 발급된 라이선스 키가 진짜인지 검증하는 데 사용됩니다.
* **필수**: 이 파일이 없으면 웹에서 라이선스 활성화 및 로그인이 불가능할 수 있습니다.
* **보안**: 공개되어도 무방한 파일입니다. (이 파일만으로는 라이선스 생성 불가)
---
## 3. 배포 시 제외해야 할 파일 (보안 주의)
다음 파일들은 **절대로 고객사 서버에 업로드하지 마십시오.**
1. **`tools/` 폴더 전체**: 라이선스 발급 도구가 들어 있어 고객이 직접 키를 생성할 위험이 있습니다.
2. **`tools/keys/private_key.pem` (개인키)**: 라이선스를 생성할 수 있는 마스터키입니다. 유출 시 모든 보안이 무너집니다.
## 4. 시놀로지 역방향 프록시 설정 (CCTV 필수)
도메인(`https://demo.sokuree.com`)을 통해 접속할 경우, **WebSocket** 통신이 허용되도록 설정해야 CCTV 영상이 출력됩니다.
1. **제어판** > **로그인 포털** > **고급** > **역방향 프록시** 이동.
2. 해당 도메인 설정 선택 후 **[편집]** 클릭.
3. **[사용자 정의 헤더]** 탭으로 이동.
4. **[생성]** 버튼 옆의 드롭다운(화살표) 클릭 > **WebSocket** 선택.
5. `Upgrade`, `Connection` 헤더가 자동으로 추가된 것을 확인하고 **[저장]**을 클릭합니다.
* *이 설정이 없으면 CCTV 화면이 검은색으로 나오거나 연결 오류가 발생합니다.*
---
## 5. 서버 실행 절차 (PM2 기준)
업로드가 완료된 후 서버 터미널(SSH)에서 다음 명령을 실행합니다.
1. **의존성 설치**: `cd server` 이동 후 `npm install`
2. **서비스 시작**: `pm2 start index.js --name "smartasset"`
3. **상태 확인**: `pm2 status`를 통해 서버가 `online` 상태인지 확인합니다.
---
마지막 업데이트: 2026-01-22