diff --git a/docs/deployment.md b/docs/deployment.md new file mode 100644 index 0000000..0b6c360 --- /dev/null +++ b/docs/deployment.md @@ -0,0 +1,61 @@ +# Synology NAS 배포 가이드 (라이선스 관리 시스템) + +이 문서는 `smart_ims-license-manager`를 Synology NAS 환경에 배포하고 운영하기 위한 절차를 설명합니다. + +## 사전 준비 사항 + +- **Synology NAS 설정**: + - `SSH` 서비스 활성화 (제어판 > 터미널 및 SNMP) + - `Node.js` 패키지 설치 (패키지 센터) + - `MariaDB 10` 패키지 설치 및 사용자/DB 생성 (`smart_ims_license_db`) + - `Git Server` 패키지 설치 (또는 SSH를 통한 `git` 명령 사용) + +## 주요 변경 사항 (서버 최적화) + +Synology NAS 환경에서 통합 운영을 위해 Express 서버가 빌드된 클라이언트(React)를 직접 서빙하도록 수정되어 있습니다. + +- `express.static`을 사용하여 `../client/dist` 폴더의 정적 파일을 서빙합니다. +- SPA(Single Page Application)를 위해 모든 경로를 `index.html`로 폴백(fallback) 시킵니다. + +## 배포 단계 (설치 절차) + +### 1. 소스 코드 배포 +NAS에 SSH로 접속하여 프로젝트를 복제합니다. +```bash +git clone https://gitea.qideun.com/SOKUREE/smart_ims_license.git +cd smart_ims_license +``` + +### 2. 클라이언트 빌드 +로컬 혹은 NAS에서 클라이언트를 빌드하여 `dist` 폴더를 생성합니다. +```bash +cd client +npm install +npm run build +``` + +### 3. 서버 환경 설정 +`server/.env` 파일을 NAS 운영 환경에 맞게 수정합니다. +- `DB_HOST`, `DB_USER`, `DB_PASSWORD`, `DB_NAME` 설정 +- 포트 번호 확인 (기본 `3006`) + +### 4. 의존성 설치 및 실행 +```bash +cd ../server +npm install +# 테스트 실행 +node server.js +``` + +### 5. PM2를 이용한 무중단 운영 +서버가 백그라운드에서 계속 실행되도록 `pm2`를 사용합니다. +```bash +sudo npm install -g pm2 +pm2 start server.js --name "license-manager" +pm2 save +pm2 startup +``` + +## 확인 사항 +- Synology 역방향 프록시(Reverse Proxy)를 사용하여 도메인 또는 특정 포트를 연결합니다. +- 방화벽 설정에서 해당 포트(3006)가 열려 있는지 확인합니다. diff --git a/docs/overview.md b/docs/overview.md new file mode 100644 index 0000000..273e2e0 --- /dev/null +++ b/docs/overview.md @@ -0,0 +1,24 @@ +# 스마트 IMS 라이선스 관리자 (Smart IMS License Manager) + +이 시스템은 Smart IMS 플랫폼의 모듈별 라이선스를 발급하고 관리하기 위한 시스템입니다. + +## 주요 기능 +- **라이선스 발급**: 구독자 ID, 모듈 코드, 만료일을 지정하여 암호화된 라이선스 키 생성 +- **구독자 관리**: 등록된 구독자별 발급 이력 조회 및 관리 +- **상태 관리**: 발급 대기(`WAITING`), 활성화됨(`ACTIVATED`) 등 라이선스 상태 추적 +- **Smart IMS 연동**: Smart IMS 서버로부터의 라이선스 활성화 요청 처리 API 제공 + +## 기술 스택 +- **Frontend**: React, Vite, Tailwind CSS, Lucide React (Icons) +- **Backend**: Node.js, Express, MySQL (mysql2) +- **Database**: MariaDB / MySQL +- **Security**: RSA 암호화 기반 라이선스 키 생성 + +## 프로젝트 구조 +- `/client`: React 기반 프론트엔드 소스 +- `/server`: Express 기반 백엔드 API 서버 +- `/config`: 암호화 키(`private_key.pem`, `public_key.pem`) 보관 +- `/docs`: 배포 및 운영 관련 문서 + +## 시작하기 +상세한 설치 및 배포 방법은 [배포 가이드](./deployment.md)를 참조하세요.