diff --git a/CLAUDE.md b/CLAUDE.md index dedcb49..778f582 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -116,11 +116,75 @@ fix: [auth] 로그인 시 세션 만료 오류 수정 |------|------|-----------| | `/home/aweso/sam/mng` | 관리자 웹 (Laravel) | 독립 저장소 | | `/home/aweso/sam/api` | API 서버 (Laravel) | 독립 저장소 | +| `/home/aweso/sam/react` | 프론트엔드 (Next.js) | 독립 저장소 | **각 폴더는 독립적인 Git 저장소입니다. 해당 폴더에서 git 명령을 실행해야 합니다.** --- +## React 빌드/배포 정책 (필수 규칙) + +> **경고: React(Next.js) 빌드는 반드시 로컬에서 실행합니다. 서버에서 빌드 절대 금지!** + +### 배경 + +서버 스펙(2코어, 3.8GB RAM, Swap 없음)으로는 Next.js 빌드 시 메모리 부족으로 20분 이상 소요되거나 실패한다. +로컬(WSL)에서 빌드 후 결과물만 서버에 배포한다. + +### 금지 사항 + +``` +❌ 서버에서 npm run build 실행 금지 +❌ 서버 SSH 접속 후 빌드 명령 실행 금지 +❌ Claude가 직접 npm run build 실행 금지 (로컬 포함) +``` + +### 빌드/배포 방법 + +``` +로컬 (WSL) 서버 (114.203.209.83) +┌─────────────────┐ ┌─────────────────┐ +│ npm run build │ ── rsync ──→ │ node server.js │ +│ (standalone) │ │ (포트 3001) │ +└─────────────────┘ └─────────────────┘ +``` + +**배포 스크립트**: `/home/aweso/sam/react/deploy.sh` + +```bash +# 개발 서버 배포 +cd /home/aweso/sam/react +./deploy.sh dev +``` + +### standalone 모드 + +- `next.config.ts`에 `output: 'standalone'` 설정됨 +- 서버에 `node_modules` 불필요 (빌드 결과물에 필요한 것만 포함) +- 서버에서는 `node server.js`로 실행 + +### 빌드가 필요한 상황 + +사용자에게 다음과 같이 안내한다: + +``` +React 코드가 변경되었습니다. 배포하려면: +cd /home/aweso/sam/react && ./deploy.sh dev +``` + +### 서버 정보 + +| 항목 | 값 | +|------|-----| +| 서버 주소 | `114.203.209.83` | +| SSH 유저 | `hskwon` | +| 프로젝트 경로 | `/home/webservice/react` | +| 실행 포트 | `3001` | +| 도메인 | `dev.codebridge-x.com` | +| 로그 | `/tmp/sam-react.log` | + +--- + ## 데이터베이스 아키텍처 (필수 규칙) > **경고: 이 규칙을 반드시 준수하세요!** diff --git a/sam/docker/api/supervisord.conf b/sam/docker/api/supervisord.conf index 6010bfe..be1dada 100755 --- a/sam/docker/api/supervisord.conf +++ b/sam/docker/api/supervisord.conf @@ -8,7 +8,7 @@ command=/usr/local/sbin/php-fpm command=nginx -g "daemon off;" [program:queue-worker] -command=php /var/www/api/artisan queue:work database --sleep=3 --tries=3 --timeout=1800 --max-jobs=100 --max-time=3600 +command=php /var/www/api/artisan queue:work database --queue=api,default --sleep=3 --tries=3 --timeout=1800 --max-jobs=100 --max-time=3600 process_name=%(program_name)s_%(process_num)02d numprocs=1 directory=/var/www/api diff --git a/sam/docker/mng/supervisord.conf b/sam/docker/mng/supervisord.conf index 09f47c3..acdf92b 100755 --- a/sam/docker/mng/supervisord.conf +++ b/sam/docker/mng/supervisord.conf @@ -8,7 +8,7 @@ command=/usr/local/sbin/php-fpm command=nginx -g "daemon off;" [program:queue-worker] -command=php /var/www/mng/artisan queue:work database --sleep=3 --tries=1 --timeout=1800 --max-jobs=10 --max-time=3600 +command=php /var/www/mng/artisan queue:work database --queue=mng,default --sleep=3 --tries=1 --timeout=1800 --max-jobs=10 --max-time=3600 process_name=%(program_name)s_%(process_num)02d numprocs=2 directory=/var/www/mng