# 2026-07-09 54000 포트 외부 접근 셋팅

**소요 시간**: 15분
**Context 사용량**: input 95k / output 10k tokens

## 작업 내용

GhiVideo_v4를 54000 포트로 서비스하고 다른 컴퓨터에서 접근 가능하도록 셋팅.

### 완료 항목

1. **의존성 설치 + 빌드**
   - 시스템 기본 node(v12)로 `npm install` 실패 (better-sqlite3 gyp 오류) → nvm Node 20 (v20.20.2)으로 재설치 성공
   - `npm run build` (shared → server → client) 완료

2. **PM2 앱 이름 충돌 해결**
   - 원본 GhiVideo와 v4의 ecosystem.config.js가 둘 다 `name: "ghiVideo"` → `pm2 start` 시 원본 앱이 v4 env(PORT=54000)로 재시작되는 사고 발생
   - v4의 ecosystem.config.js 이름을 `ghiVideo-v4`로 변경
   - 꼬인 엔트리 삭제 후 양쪽 재기동: 원본 `ghiVideo`(55000) 복구 + `ghiVideo-v4`(54000) 신규 기동
   - 둘 다 `/api/videos` 200 응답 확인, `pm2 save` 완료

3. **Windows 포트포워딩 (미완 — 사용자 실행 필요)**
   - WSL2 NAT 모드 (WSL IP: 172.21.50.250). 기존 포트들(55000, 5173, 8080 등)은 netsh portproxy + 방화벽 규칙으로 개방된 패턴 확인
   - 54000용 스크립트를 `C:\Users\Public\ghivideo-v4-54000-setup.ps1`에 작성
   - 관리자 권한 자동 실행은 권한 정책상 차단 → **사용자가 관리자 PowerShell에서 직접 실행 필요**

### 재부팅 내구성 검토 (같은 세션 후속 작업)

- Windows 루프백 → WSL 포워딩 확인: `127.0.0.1:54000` 200 응답 → portproxy `connectaddress=127.0.0.1` 방식이면 **WSL IP가 바뀌어도 규칙이 안 깨짐**. 설정 스크립트를 이 방식으로 갱신함
- 기존 규칙들(55000, 5173 등)은 WSL IP(172.21.50.250) 하드코딩 — 재부팅으로 IP 바뀌면 깨질 수 있음. 동일하게 127.0.0.1로 바꾸는 것 권장
- **pm2 자동 시작 없음**: pm2 systemd 유닛 없음, 시작프로그램의 AI-Video-Brief.vbs는 ai_video_brief 전용. 재부팅 후 `pm2 resurrect` 수동 실행 필요. 시작프로그램 vbs 자동 생성은 보안 정책 차단 → 사용자 직접 생성 필요

### 다음 단계 참고

- 관리자 PowerShell에서 1회 실행: `powershell -ExecutionPolicy Bypass -File C:\Users\Public\ghivideo-v4-54000-setup.ps1` (portproxy 127.0.0.1 방식 + 방화벽 규칙)
- v4 서버 코드 기본 포트는 3030(`server/src/config.ts`)이나, PM2 env로 54000 주입됨
