Files
2025-12-28 18:19:08 +09:00
..
2025-12-28 18:19:08 +09:00
2025-12-28 18:19:08 +09:00
2025-12-28 18:19:08 +09:00

고객사별 환경 변수 관리

개요

이 폴더는 각 고객사(업체)별 환경 변수 설정을 참고용으로 관리합니다.

중요: 실제 비밀번호는 이 파일에 저장하지 마세요. 템플릿으로만 사용합니다.


고객사 목록

고객사 파일 배포 형태 상태
스피폭스 spifox.env 온프레미스 (공장 서버) 진행 중
엔키드 enkid.env 온프레미스 (공장 서버) 예정

신규 고객사 추가 절차

1단계: 환경 변수 파일 생성

# 기존 파일 복사
cp spifox.env newcustomer.env

# 수정
nano newcustomer.env

필수 수정 항목:

  • COMPANY_CODE: 고유한 회사 코드 (예: NEWCO)
  • SERVER_IP: 고객사 서버 IP
  • DB_PASSWORD: 고유한 비밀번호
  • JWT_SECRET: 고유한 시크릿 키

2단계: 데이터베이스에 회사 등록

-- company_info 테이블에 추가
INSERT INTO company_info (company_code, company_name, status)
VALUES ('NEWCO', '신규고객사', 'ACTIVE');

3단계: 관리자 계정 생성

-- user_info 테이블에 관리자 추가
INSERT INTO user_info (user_id, user_name, company_code, role)
VALUES ('newco_admin', '신규고객사 관리자', 'NEWCO', 'COMPANY_ADMIN');

4단계: 고객사 서버에 배포

# 고객사 서버에 SSH 접속
ssh user@customer-server

# 설치 폴더 생성
sudo mkdir -p /opt/vexplor
cd /opt/vexplor

# docker-compose.yml 복사 (deploy/onpremise/에서)
# .env 파일 복사 및 수정

# 서비스 시작
docker compose up -d

환경 변수 설명

변수 설명 예시
COMPANY_CODE 회사 고유 코드 (멀티테넌시) SPIFOX, ENKID
SERVER_IP 서버의 실제 IP 192.168.0.100
DB_PASSWORD DB 비밀번호 (고객사별 고유)
JWT_SECRET JWT 토큰 시크릿 (고객사별 고유)
IMAGE_TAG Docker 이미지 버전 latest, v1.0.0

보안 주의사항

  1. 비밀번호: 이 폴더의 파일에는 실제 비밀번호를 저장하지 마세요
  2. Git: .env 파일이 커밋되지 않도록 .gitignore 확인
  3. 고객사별 격리: 각 고객사는 별도 서버, 별도 DB로 완전 격리
  4. 키 관리: JWT_SECRET은 고객사별로 반드시 다르게 설정

구조 다이어그램

[Harbor (이미지 저장소)]
         │
         │ docker pull
         ↓
┌─────────────────┐    ┌─────────────────┐    ┌─────────────────┐
│ 스피폭스 공장    │    │ 엔키드 공장      │    │ 신규 고객사      │
│ ┌─────────────┐ │    │ ┌─────────────┐ │    │ ┌─────────────┐ │
│ │ Vexplor     │ │    │ │ Vexplor     │ │    │ │ Vexplor     │ │
│ │ SPIFOX      │ │    │ │ ENKID       │ │    │ │ NEWCO       │ │
│ └─────────────┘ │    │ └─────────────┘ │    │ └─────────────┘ │
│                 │    │                 │    │                 │
│ [독립 DB]       │    │ [독립 DB]       │    │ [독립 DB]       │
└─────────────────┘    └─────────────────┘    └─────────────────┘

* 각 공장은 완전히 독립적으로 운영
* 같은 Docker 이미지 사용, .env만 다름
* 데이터는 절대 섞이지 않음 (물리적 격리)