# 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`으로 재연결