diff --git a/DEPLOY-GUIDE.md b/DEPLOY-GUIDE.md index 1c85a4b..66aaa05 100644 --- a/DEPLOY-GUIDE.md +++ b/DEPLOY-GUIDE.md @@ -1,6 +1,6 @@ # TK Factory Services - NAS 배포 가이드 -> 최종 업데이트: 2026-02-09 +> 최종 업데이트: 2026-02-12 ## 아키텍처 개요 @@ -27,6 +27,7 @@ | `tkfb.technicalkorea.net` | `http://tk-gateway:80` | 통합 포털 + System 1 (공장관리) | | `tkreport.technicalkorea.net` | `http://tk-system2-web:80` | System 2 (신고) | | `tkqc.technicalkorea.net` | `http://tk-system3-web:80` | System 3 (부적합관리) | +| `tkuser.technicalkorea.net` | `http://tk-tkuser-web:80` | 통합 관리 (사용자/부서/프로젝트/이슈유형) | ### SSO 인증 방식 @@ -51,6 +52,8 @@ | System 3 Web | tk-system3-web | 30280:80 | | phpMyAdmin | tk-phpmyadmin | 30880:80 | | Cloudflared | tk-cloudflared | - | +| TKUser API | tk-tkuser-api | 30300:3000 | +| TKUser Web | tk-tkuser-web | 30380:80 | | Gateway | tk-gateway | 30000:80 | --- @@ -240,6 +243,41 @@ echo 'fukdon-riwbaq-fiQfy2' | sudo -S /usr/local/bin/docker compose up -d --- +## 시스템 간 연동 + +### tkreport → tkqc 부적합 자동 전달 + +부적합 유형으로 신고 시 system2-api가 system3-api로 자동 전달: + +- **인증**: SSO 토큰 그대로 전달 (원래 신고자 유지) +- **fallback 인증**: `api_service` 계정 (system3 users 테이블에 등록 필요) +- **사진**: system2에 저장된 파일을 base64로 읽어서 system3에 전달 +- **프로젝트**: 같은 MariaDB `projects` 테이블 공유, project_id 그대로 전달 +- **환경변수**: `M_PROJECT_API_URL=http://system3-api:8000` + +### system2-web nginx 프록시 라우팅 + +tkreport의 nginx는 여러 백엔드로 프록시: + +| 경로 | 대상 | 용도 | +|------|------|------| +| `/api/workplaces/` | system1-api:3005 | 공장/작업장 | +| `/api/projects/` | system1-api:3005 | 프로젝트 목록 | +| `/api/tbm/` | system1-api:3005 | TBM 세션 | +| `/api/workplace-visits/` | system1-api:3005 | 출입관리 | +| `/api/` (catch-all) | system2-api:3005 | 신고(work-issues) | + +### 신고 페이지 (tkreport) 흐름 + +모바일 최적화 5단계 위자드: +1. **유형** — 부적합 / 시설설비 / 안전 +2. **위치** — 지도에서 작업장 터치 선택 +3. **프로젝트** — TBM등록 / 활성프로젝트 / 모름 (아코디언) +4. **항목** — 카테고리 → 세부항목 또는 직접입력 +5. **사진** — 최대 5장 (클라이언트 1280px 리사이징), 추가설명 + +--- + ## 트러블슈팅 | 증상 | 원인 | 해결 | @@ -250,3 +288,6 @@ echo 'fukdon-riwbaq-fiQfy2' | sudo -S /usr/local/bin/docker compose up -d | Cloudflare 502 | 컨테이너 미기동 | `docker compose ps`로 상태 확인, `docker compose logs <서비스>` | | SCP 실패 | Synology subsystem | `scp -O` 옵션 사용 | | sudo 파이프 실패 | Synology 제한 | `echo 'password' \| sudo -S` 패턴 사용 | +| 신고 사진 업로드 느림/실패 | nginx body size 제한 | `client_max_body_size 50m;` 확인 | +| tkqc 부적합 연동 실패 | api_service 계정 미등록 | system3 DB에 api_service 사용자 생성 | +| 신고 사진 컨테이너 재빌드 후 유실 | uploads 경로 불일치 | imageUploadService 경로가 Docker 볼륨과 일치하는지 확인 |