116 lines
3.7 KiB
Markdown
116 lines
3.7 KiB
Markdown
# 고객사별 환경 변수 관리
|
|
|
|
## 개요
|
|
|
|
이 폴더는 각 고객사(업체)별 환경 변수 설정을 **참고용**으로 관리합니다.
|
|
|
|
**중요:** 실제 비밀번호는 이 파일에 저장하지 마세요. 템플릿으로만 사용합니다.
|
|
|
|
---
|
|
|
|
## 고객사 목록
|
|
|
|
| 고객사 | 파일 | 배포 형태 | 상태 |
|
|
| :--- | :--- | :--- | :--- |
|
|
| 스피폭스 | `spifox.env` | 온프레미스 (공장 서버) | 진행 중 |
|
|
| 엔키드 | `enkid.env` | 온프레미스 (공장 서버) | 예정 |
|
|
|
|
---
|
|
|
|
## 신규 고객사 추가 절차
|
|
|
|
### 1단계: 환경 변수 파일 생성
|
|
|
|
```bash
|
|
# 기존 파일 복사
|
|
cp spifox.env newcustomer.env
|
|
|
|
# 수정
|
|
nano newcustomer.env
|
|
```
|
|
|
|
필수 수정 항목:
|
|
- `COMPANY_CODE`: 고유한 회사 코드 (예: NEWCO)
|
|
- `SERVER_IP`: 고객사 서버 IP
|
|
- `DB_PASSWORD`: 고유한 비밀번호
|
|
- `JWT_SECRET`: 고유한 시크릿 키
|
|
|
|
### 2단계: 데이터베이스에 회사 등록
|
|
|
|
```sql
|
|
-- company_info 테이블에 추가
|
|
INSERT INTO company_info (company_code, company_name, status)
|
|
VALUES ('NEWCO', '신규고객사', 'ACTIVE');
|
|
```
|
|
|
|
### 3단계: 관리자 계정 생성
|
|
|
|
```sql
|
|
-- user_info 테이블에 관리자 추가
|
|
INSERT INTO user_info (user_id, user_name, company_code, role)
|
|
VALUES ('newco_admin', '신규고객사 관리자', 'NEWCO', 'COMPANY_ADMIN');
|
|
```
|
|
|
|
### 4단계: 고객사 서버에 배포
|
|
|
|
```bash
|
|
# 고객사 서버에 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만 다름
|
|
* 데이터는 절대 섞이지 않음 (물리적 격리)
|
|
```
|
|
|