# 라이선스 관리 시스템 사용 가이드 (Usage Guide)

이 문서는 라이선스 관리 시스템을 웹 UI 및 터미널(CLI)에서 사용하는 방법을 설명합니다.

## 1. 웹 관리 UI 사용법

시스템 배포 후 브라우저를 통해 접속하여 라이선스를 관리할 수 있습니다.

### 로그인
- **주소**: `http://[NAS-IP 또는 도메인]:3006`
- **초기 계정**: `admin` / `^Ocean1472bk`

### 라이선스 신규 발급
1. 왼쪽 **'라이선스 신규 발급'** 패널에서 정보를 입력합니다.
   - **모듈 시스템**: 자산관리, 생산관리, 모니터링 중 선택
   - **유형**: SUB(구독형), DEMO(체험판), DEV(영구 프로젝트용)
   - **구독자 ID**: 고객사 식별 ID (예: `SOKUREE-2024-01`)
   - **만기 일자**: 라이선스 종료일 지정
2. **'라이선스 발급'** 버튼을 클릭합니다.

### 라이선스 관리 및 복사
- **검색**: 상단 검색바를 통해 특정 구독자 ID를 조회할 수 있습니다.
- **상태 확인**: `등록 대기`(발급됨), `활성화됨`(Smart IMS 등록됨) 상태를 확인합니다.
- **키 복사**: 발급된 라이선스 키의 아이콘을 클릭하여 클립보드에 복사할 수 있습니다.
- **삭제**: 필요 없는 라이선스는 쓰레기통 아이콘으로 삭제 가능합니다.

---

## 2. 터미널(CLI) 작업 가이드

개발자 또는 관리자가 NAS 터미널(SSH)에서 시스템을 점검하거나 제어할 때 사용합니다.

### 작업 위치
모든 작업은 프로젝트 루트 디렉토리 및 서버 디렉토리에서 수행합니다.
- **기본 위치**: `/volume1/[사용자폴더]/smart_ims_license`
- **서버 소스**: `/volume1/[사용자폴더]/smart_ims_license/server`

### 주요 관리 명령어

#### 서비스 상태 확인 (PM2)
```bash
# 전체 서비스 리스트 확인
pm2 list

# 실시간 로그 모니터링
pm2 logs license-manager

# 서비스 재시작 (코드 수정 반영 등)
pm2 restart license-manager
```

#### DB 초기화 및 관리
수동으로 DB를 초기화하거나 스키마를 업데이트해야 할 경우 사용합니다.
(작업 위치: `server/`)
```bash
# DB 스키마 생성 및 초기 관리자 생성
node init_db.js

# 테스트 데이터 초기화 (주의: 기존 데이터 삭제될 수 있음)
node reset_test_data.js
```

#### 환경 변수 수정
DB 접속 정보나 포트를 변경해야 할 경우:
```bash
# vi 또는 nano 편집기로 .env 수정
vi .env
```
*(수정 후 `pm2 restart license-manager` 필수)*

### 수동 라이선스 생성 (CLI 도구)
웹 UI 없이 터미널에서 즉시 라이선스 키를 생성하고 싶을 때:
`server/debug_license.js` 등의 도구를 활용할 수 있습니다 (추가 구현 시 제공).

---

## 3. 문제 해결 (Troubleshooting)

- **로그인 실패**: `server/.env`의 `JWT_SECRET`이 설정되어 있는지 확인하세요.
- **DB 연결 오류**: `server/.env`의 DB 설정 정보와 Synology MariaDB 10의 정보가 일치하는지 확인하세요.
- **웹 페이지 접속 안됨**: Synology 방화벽에서 3006 포트가 허용되어 있는지, PM2 서비스가 `online` 상태인지 확인하세요.
