Files
tk-factory-services/DEPLOYMENT.md
Hyungi Ahn 733bb0cb35 feat: tkuser 통합 관리 서비스 + 전체 시스템 SSO 쿠키 인증 통합
- tkuser 서비스 신규 추가 (API + Web)
  - 사용자/권한/프로젝트/부서/작업자/작업장/설비/작업/휴가 통합 관리
  - 작업장 탭: 공장→작업장 드릴다운 네비게이션 + 구역지도 클릭 연동
  - 작업 탭: 공정(work_types)→작업(tasks) 계층 관리
  - 휴가 탭: 유형 관리 + 연차 배정(근로기준법 자동계산)
- 전 시스템 SSO 쿠키 인증으로 통합 (.technicalkorea.net 공유)
- System 2: 작업 이슈 리포트 기능 강화
- System 3: tkuser API 연동, 페이지 권한 체계 적용
- docker-compose에 tkuser-api, tkuser-web 서비스 추가
- ARCHITECTURE.md, DEPLOYMENT.md 문서 작성

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 13:45:52 +09:00

81 lines
2.7 KiB
Markdown

# TK Factory Services - 배포 가이드
## NAS 접속
| 환경 | 접속 주소 |
|------|-----------|
| **사내 네트워크 (로컬)** | `ssh hyungi@192.168.0.3` |
| **외부 네트워크 (Tailscale VPN)** | `ssh hyungi@100.71.132.52` |
> 외부에서 작업할 때는 Tailscale VPN IP(`100.71.132.52`)로 접속하세요.
> Tailscale은 WireGuard 암호화를 사용하며, 인증된 기기만 접근 가능합니다.
## 프로젝트 경로
- **NAS 프로젝트**: `/volume1/docker/tk-factory-services`
- **Docker 바이너리**: `/volume2/@appstore/ContainerManager/usr/bin`
## 배포 방법
### 1. 파일 전송 (scp)
```bash
# Synology NAS는 -O (레거시 모드) 플래그 필요
scp -O <로컬파일> hyungi@100.71.132.52:/volume1/docker/tk-factory-services/<경로>
```
### 2. 컨테이너 빌드 및 재시작
```bash
ssh hyungi@100.71.132.52 "\
export PATH=\$PATH:/volume2/@appstore/ContainerManager/usr/bin && \
cd /volume1/docker/tk-factory-services && \
docker compose up -d --build <서비스명>"
```
### 서비스명 목록
| 서비스 | 도메인 | 컨테이너 |
|--------|--------|----------|
| tkuser-web | tkuser.technicalkorea.net | tk-tkuser-web |
| tkuser-api | - | tk-tkuser-api |
| system1-web | tkfactory.technicalkorea.net | tk-system1-web |
| system1-api | - | tk-system1-api |
| system2-web | tkreport.technicalkorea.net | tk-system2-web |
| system2-api | - | tk-system2-api |
| system3-web | tkqc.technicalkorea.net | tk-system3-web |
| system3-api | - | tk-system3-api |
| gateway | technicalkorea.net | tk-gateway |
| sso-auth | - | tk-sso-auth |
### 3. DB 접속
```bash
ssh hyungi@100.71.132.52 "\
export PATH=\$PATH:/volume2/@appstore/ContainerManager/usr/bin && \
docker exec -it tk-mariadb mysql -uhyungi_user -p hyungi"
```
## 예시: System 2 전체 배포
```bash
NAS=hyungi@100.71.132.52
PROJECT=/volume1/docker/tk-factory-services
# 파일 전송
scp -O system2-report/web/nginx.conf $NAS:$PROJECT/system2-report/web/nginx.conf
scp -O system2-report/web/pages/safety/issue-report.html $NAS:$PROJECT/system2-report/web/pages/safety/issue-report.html
scp -O system2-report/web/js/work-issue-report.js $NAS:$PROJECT/system2-report/web/js/work-issue-report.js
scp -O system2-report/api/controllers/workIssueController.js $NAS:$PROJECT/system2-report/api/controllers/workIssueController.js
# 컨테이너 재빌드
ssh $NAS "export PATH=\$PATH:/volume2/@appstore/ContainerManager/usr/bin && \
cd $PROJECT && docker compose up -d --build system2-web system2-api"
```
## 주의사항
- **Synology SCP**: 반드시 `-O` 플래그 사용 (레거시 프로토콜)
- **Docker 권한**: `sudo chmod 666 /var/run/docker.sock` (NAS 재부팅 시 리셋됨)
- **Tailscale**: NAS에서 로그아웃될 수 있음 → `sudo tailscale up`으로 재연결