feat: 3-System 분리 프로젝트 초기 코드 작성

TK-FB(공장관리+신고)와 M-Project(부적합관리)를 3개 독립 시스템으로
분리하기 위한 전체 코드 구조 작성.
- SSO 인증 서비스 (bcrypt + pbkdf2 이중 해시 지원)
- System 1: 공장관리 (TK-FB 기반, 신고 코드 제거)
- System 2: 신고 (TK-FB에서 workIssue 코드 추출)
- System 3: 부적합관리 (M-Project 기반)
- Gateway 포털 (path-based 라우팅)
- 통합 docker-compose.yml 및 배포 스크립트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-02-09 14:40:11 +09:00
commit 550633b89d
824 changed files with 1071683 additions and 0 deletions

90
.env.example Normal file
View File

@@ -0,0 +1,90 @@
# ===================================================================
# TK Factory Services - 통합 환경 변수 설정
# ===================================================================
# 사용법: cp .env.example .env && vi .env
# 주의: .env 파일은 절대 Git에 커밋하지 마세요!
# ===================================================================
# -------------------------------------------------------------------
# SSO 인증 (공통)
# -------------------------------------------------------------------
SSO_JWT_SECRET=change_this_to_random_string_min_32_chars
SSO_JWT_EXPIRES_IN=7d
SSO_JWT_REFRESH_SECRET=change_this_to_another_random_string_min_32_chars
SSO_JWT_REFRESH_EXPIRES_IN=30d
# -------------------------------------------------------------------
# MariaDB (System 1 + System 2 공유)
# -------------------------------------------------------------------
MYSQL_ROOT_PASSWORD=change_this_root_password_min_12_chars
MYSQL_DATABASE=hyungi
MYSQL_USER=hyungi_user
MYSQL_PASSWORD=change_this_user_password_min_12_chars
# -------------------------------------------------------------------
# PostgreSQL (System 3 전용)
# -------------------------------------------------------------------
POSTGRES_USER=mproject
POSTGRES_PASSWORD=change_this_postgres_password
POSTGRES_DB=mproject
# -------------------------------------------------------------------
# System 1 - 공장관리 API
# -------------------------------------------------------------------
SYSTEM1_NODE_ENV=production
SYSTEM1_API_PORT=3005
SYSTEM1_DB_HOST=mariadb
SYSTEM1_DB_PORT=3306
# -------------------------------------------------------------------
# System 1 - FastAPI Bridge
# -------------------------------------------------------------------
SYSTEM1_FASTAPI_BASE_URL=http://system1-api:3005
# -------------------------------------------------------------------
# System 2 - 신고 API
# -------------------------------------------------------------------
SYSTEM2_NODE_ENV=production
SYSTEM2_API_PORT=3005
SYSTEM2_DB_HOST=mariadb
SYSTEM2_DB_PORT=3306
# -------------------------------------------------------------------
# System 3 - 부적합관리 API
# -------------------------------------------------------------------
SYSTEM3_DATABASE_URL=postgresql://mproject:change_this_postgres_password@postgres:5432/mproject
SYSTEM3_ADMIN_USERNAME=hyungi
SYSTEM3_ADMIN_PASSWORD=change_this_admin_password
# -------------------------------------------------------------------
# M-Project 연동 (System 2 → System 3)
# -------------------------------------------------------------------
M_PROJECT_API_URL=http://system3-api:8000
M_PROJECT_USERNAME=api_service
M_PROJECT_PASSWORD=change_this_api_service_password
M_PROJECT_DEFAULT_PROJECT_ID=1
# -------------------------------------------------------------------
# Redis
# -------------------------------------------------------------------
REDIS_HOST=redis
REDIS_PORT=6379
# -------------------------------------------------------------------
# 외부 서비스 (선택)
# -------------------------------------------------------------------
WEATHER_API_URL=https://apis.data.go.kr/1360000/VilageFcstInfoService_2.0
WEATHER_API_KEY=
# -------------------------------------------------------------------
# phpMyAdmin
# -------------------------------------------------------------------
PMA_HOST=mariadb
PMA_USER=root
PMA_PASSWORD=change_this_root_password_min_12_chars
UPLOAD_LIMIT=50M
# -------------------------------------------------------------------
# Cloudflare Tunnel (선택)
# -------------------------------------------------------------------
# CLOUDFLARE_TUNNEL_TOKEN=your_tunnel_token_here