- 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>
81 lines
2.7 KiB
Markdown
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`으로 재연결
|