smart_ims_license/docs/deployment.md
2026-01-23 21:32:43 +09:00

3.5 KiB

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로 접속하여 프로젝트를 복제합니다.

git clone https://gitea.qideun.com/SOKUREE/smart_ims_license.git
cd smart_ims_license

2. 클라이언트 빌드

로컬 혹은 NAS에서 클라이언트를 빌드하여 dist 폴더를 생성합니다.

cd client
npm install
npm run build

3. 서버 환경 설정 (.env 파일 설정)

server/.env 파일을 생성하거나 수정하여 필요한 환경 변수를 설정합니다.

  1. 비밀 키(JWT_SECRET) 생성: 보안을 위해 강력한 임의의 문자열을 생성합니다. 터미널(SSH)에서 아래 명령어를 실행하세요:

    node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
    

    (출력된 긴 문자열을 복사해 두세요)

  2. .env 파일 편집: server/ 디렉토리 내의 .env 파일을 편집합니다:

    cd ../server
    vi .env
    
  3. 설정 내용 입력: 아래 형식을 참고하여 정보를 입력합니다:

    DB_HOST=localhost (또는 MariaDB 10 IP)
    DB_USER=DB사용자ID
    DB_PASSWORD=DB비밀번호
    DB_NAME=smart_ims_license_db
    DB_PORT=3307  (Synology MariaDB 10 기본 포트)
    
    # 위에서 생성한 보안 키를 여기에 붙여넣으세요
    JWT_SECRET=당신의_보안_키_문자열
    
    PORT=3006
    

4. 의존성 설치 및 실행

cd ../server
npm install
# 테스트 실행
node server.js

5. PM2를 이용한 무중단 운영

서버가 백그라운드에서 계속 실행되도록 pm2를 사용합니다.

# PM2 설치 및 실행
sudo npm install -g pm2
pm2 start server.js --name "license-manager"
pm2 save

6. Synology 작업 스케줄러 등록 (자동 실행)

NAS가 재부팅될 때 PM2가 자동으로 실행되도록 Synology '작업 스케줄러'에 등록합니다.

  1. 제어판 > 작업 스케줄러로 이동합니다.
  2. 생성 > 트리거된 작업 > 사용자 정의 스크립트를 선택합니다.
  3. 일반 탭:
    • 작업: Start PM2 License Manager
    • 사용자: root (또는 해당 관리자 계정)
    • 이벤트: 부팅 시
  4. 작업 설정 탭 (사용자 정의 스크립트 내용):
    # PM2 경로 확인 및 실행 (계정 경로에 따라 다를 수 있음)
    export PATH=$PATH:/usr/local/bin:/usr/bin
    pm2 resurrect
    
  5. 확인을 눌러 저장합니다.

확인 사항

  • Synology 역방향 프록시(Reverse Proxy)를 사용하여 도메인 또는 특정 포트를 연결합니다.
  • 방화벽 설정에서 해당 포트(3006)가 열려 있는지 확인합니다.