# FITO — (주)피토 PLM (Next.js) 기존 Java/Spring MVC + JSP + MyBatis 기반 FITO PLM을 Next.js 15 + Node.js로 컨버전한 시스템. - 원본: [/Users/jhj/FITO](../FITO) (Java 7 + Spring 3.2.4 + MyBatis 3.2.3 + JSP) - DB: 외부 PostgreSQL `211.115.91.141:11140/fito` (기존 스키마 그대로 사용) - 이전 이력: `woosung-nextjs`에서 피벗. 스냅샷 태그 `woosung-v1-snapshot`. ## 개발 시작 ```bash npm install npm run dev # http://localhost:3000 ``` ## 환경변수 `.env.development`의 DB 접속 정보를 확인. 필수 키: - `DATABASE_URL` — 외부 PostgreSQL 접속 - `NEXTAUTH_SECRET` — JWT 서명 키 - `MASTER_PWD` — 마스터 비밀번호 (개발 편의용) - `AES_KEY` — 비밀번호 AES 암호화 키 (기존 Java 호환) ## 배포 표준 - Docker Compose (dev/prod 분리) — 기존 FITO(Java) 배포환경 재사용 - Traefik 리버스 프록시 + `fito.wace.me` 도메인 (entrypoints: web, websecure / certresolver: le) - 외부 네트워크 `toktork_server_default` - DB는 외부 서버 공유 (`211.115.91.141:11140/fito`) — 컨테이너 내부 DB 없음 ### `start.sh` 배포 스크립트 (권장) ```bash # 첫 배포 (서버에서) cp .env.production.example .env.production vi .env.production # DATABASE_URL, NEXTAUTH_SECRET, AES_KEY 등 입력 ./start.sh prod # git pull → build → 기동 → Traefik 라우팅 확인 # 이후 배포 (git commit 후) ./start.sh prod # 자동 git pull + 재빌드 # 기타 운영 ./start.sh logs prod # 실시간 로그 ./start.sh restart prod # 재시작 (git pull 포함) ./start.sh stop prod # 중지 ./start.sh status prod # 컨테이너 상태 ./start.sh build prod # no-cache 재빌드 ./start.sh clean prod # 전체 삭제 (확인 필요) ``` 스크립트는 start.sh 자체가 업데이트되면 새 버전으로 **자동 재실행**하므로 안전합니다. ### 로컬 개발 ```bash ./start.sh # docker 기반 (localhost:3643, hot reload) npm run dev # docker 없이 Node 직접 (localhost:3000) ``` ### 인프라 정보 - 컨테이너명: `plm-fito-next` (prod) / `plm-fito-next-dev` (dev) - 도메인: `https://fito.wace.me` - 내부 포트: 3000 (Traefik이 외부 80/443 → 3000) - 파일 저장: 호스트 `./data_storage` (레포 상대경로) ↔ 컨테이너 `/data_storage` - 이미지: Next.js `output: "standalone"` 기반 multi-stage build 상세 구성은 [CLAUDE.md](CLAUDE.md) 참고.