DB:
- [사용자] 그룹 아래에 5개 대메뉴 신규 (거래처 주문/마스터 관리/매입·입고/출고·정산/통계)
- 각 대메뉴 아래에 모모 페이지 소메뉴로 배치 (URL 직접 연결)
- 기존 [DASHBOARD] 대메뉴 활용 — 자식 [대시보드 → /m/dashboard] 추가, 기존 dashboard.do 비활성화
코드:
- /m/admin/users, /m/admin/roles, /m/admin/menus 페이지 삭제
- /api/m/users, /api/m/roles, /api/m/menus 삭제
- 모모 사이드바 [시스템] 그룹 제거 (기존 admin-panel 사용자/권한/메뉴 관리 활용)
→ plm_admin 로그인 후 [사용자] 그룹 펼치면 깔끔한 2단 트리 표시,
각 소메뉴 클릭 시 /m/* 페이지로 정상 이동
- DB: menu_info(9000000) parent_obj_id를 0 → -395553955 (사용자) 로 변경
→ 상단 [사용자] 탭 안에 '모모유통' 그룹으로 표시
- /api/admin/menus/delete: cascade=true 시 자손까지 재귀 삭제 (rel_menu_auth 동시 정리)
- admin-panel 메뉴 관리: 하위 메뉴가 있으면 사용자에게 confirm 후 일괄 삭제
- src/app/(main), admin, admin-panel, common, api/{admin,common,menu} 복원
- /api/auth/login: FITO 인증 다시 활성화 (plm_admin 등 FITO 사용자 로그인 가능)
- 미들웨어: 옛 경로 강제 리다이렉트 제거
- /m/layout.tsx: FITO 슈퍼관리자(isAdmin)도 ADMIN 으로 받아 모모 페이지 진입 허용
- DB 005: menu_info 에 모모유통 루트(9000000) + 자식 19개(/m/* URL 직접 연결)
→ plm_admin 로그인 후 사이드바 [모모유통] 그룹에서 클릭 시 동작
→ 메뉴 관리 UI 에서 추가/수정/삭제 가능
기능:
- 매입처(vendor) 마스터 + API
- 매입 발주(procurement) 작성/목록/상세 + API
- 입고 처리(inbound): 매입발주 라인 자동 로드 또는 단독 입고
- 정상/불량 수량 분리 입력, 정상만 재고 +, 불량 사유 기록
- 출고 관리: 상태 라벨 변경 (REQUESTED→출고요청, APPROVED→출고완료, PAID→입금완료, INVOICED→계산서발행)
- 입금 관리 페이지 (부분/전액 입금 등록 → 완납 시 자동 PAID 전환)
- 계산서 일괄 발행 페이지 (체크박스 멀티 선택)
- 일자별 매출 통계 + 막대 그래프
- 원가/마진 통계 (월간 품목별, 마진율 표시)
- 사이드바 그룹 재구성 (마스터/매입/출고-정산/통계)
- 랜딩 페이지에 5단계 업무 흐름 다이어그램 추가
- DB v2 마이그레이션: 입고 헤더/라인 + 매입발주에 정상/불량 컬럼
CI/CD:
- secret-free webhook 자동 배포로 전환 (시크릿 등록 불필요)
- /api/deploy/webhook 엔드포인트가 X-Deploy-Token 검증 후 deploy.sh 실행
- docker-compose.prod.yml에 docker.sock + 소스 마운트 (자가 배포 가능)
- workflow는 단순히 webhook curl + 헬스체크 폴링
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- /api/deploy/webhook: X-Deploy-Token 검증 후 백그라운드로 deploy.sh spawn
- scripts/deploy.sh: git pull + docker compose up --build + migrate
- docker-compose.prod.yml: docker.sock + 소스 디렉토리 마운트
- deploy.yml: webhook 호출 + 헬스체크 폴링 (시크릿 의존성 제거)
- 미들웨어 공개 경로에 /api/deploy/webhook 추가
서버 1회 셋업 (docker-compose.prod.yml 갱신본을 한 번 배포하기만 하면
이후 push 시 자동 재배포 영구 동작)
이전 실패 원인: Gitea Actions runner 가 actions/checkout@v4 를 가져오지
못해 4초만에 즉사. 어차피 원격 서버에서 git clone 하므로 checkout 단계
자체가 불필요. 첫 단계에서 필수 secret 부재 여부를 명시적으로 검사.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 가입→검색→장바구니→승인→메일→정산까지 단계별 카드
- 장바구니 미리보기 + 자동발송 메일 미리보기 추가
- 우측 상단 회원가입/로그인 버튼은 기존 유지
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 배포 대상 서버를 183.99.177.40로 확정 (DNS가 가리키는 서버, DB도 같은 곳)
- docker-compose.prod.yml: external network를 traefik-net으로 변경
(toktork_server_default는 211 서버용이라 DNS와 불일치)
- traefik.docker.network=traefik-net 라벨 추가
- .gitea/workflows/deploy.yml: main push 시 자동 배포
- CICD_SETUP.md: 시크릿 등록 및 Runner 설정 가이드
- 로그인 화면: 모모유통 + 유통관리 ERP 로고/테마(그린), 본사·지사 주소 및 연락처 표시
- MOMO 로고/파비콘 SVG 추가
- Constants.SYSTEM_TITLE을 "유통관리 ERP", COMPANY_NAME을 "모모유통"으로 변경
- docker-compose 모든 환경(prod/dev/localdev/debug/win) DB 연결을 env 변수로 외부화하고 .env/.env.production에서 로드
- Traefik 라우팅을 momo.junggomoa.com 으로 변경, 컨테이너명 momo-erp로 통일
- .gitignore에 .env.* 패턴 추가(.env.example 제외) — 실제 크리덴셜은 git에 포함하지 않음
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- 컨테이너명 plm-fito, Traefik 라우터 plm-fito
- 외부 DB 사용 (DB 서비스 제거)
- 볼륨 경로 /home/plm-fito/
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- DB 연결: 211.115.91.141:11140/fito, postgres/intops0909!!
- 도메인: fito.wace.me
- 소스 교체 (woosung 기반)
- Dockerfile.dev 컴파일 단계 추가
- 로그인 페이지 DH Autoware 스타일 리디자인
- Constants: 회사명 (주)피토/fito, SYSTEM_TITLE FITO PLM
- 헤더 로고 FITO 로고로 변경
- 파비콘 추가
- 관리자 팝업 window.open 공백 이슈 수정
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>