diff --git a/CLAUDE.md b/CLAUDE.md index 4129760..b31b3c4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -213,9 +213,33 @@ await _inquiryService.SubmitAsync(...); // await로 완료 대기 ## Gitea Token Rule -- `GITEA_TOKEN_TAXBAIK`만 사용한다. -- `GITEA_TOKEN`은 사용하지 않는다. -- dispatch 전에는 `GET /api/v1/user`로 토큰 유효성을 먼저 확인한다. +**URL**: `https://gitea.taxbaik.com` (공개 Gitea 인스턴스) + +**토큰 관리**: +- `GITEA_TOKEN_TAXBAIK` 환경변수 사용 (필수) +- `GITEA_TOKEN`은 사용하지 않음 +- dispatch 전에는 `GET /api/v1/user`로 토큰 유효성 먼저 확인 + +**Git Push 명령**: +```bash +# 권장 (간단함) +git push http://gitea.taxbaik.com/kjh2064/taxbaik.git master + +# 또는 토큰 명시 +git push "http://kjh2064:${GITEA_TOKEN_TAXBAIK}@gitea.taxbaik.com/kjh2064/taxbaik.git" master + +# Git credential 저장했다면 (권장) +git config credential.helper store +echo "http://kjh2064:${GITEA_TOKEN_TAXBAIK}@gitea.taxbaik.com" > ~/.git-credentials +chmod 600 ~/.git-credentials +git push http://gitea.taxbaik.com/kjh2064/taxbaik.git master +``` + +**CI/CD 자동 배포**: +1. git push 완료 → Gitea Actions 자동 trigger +2. `.gitea/workflows/deploy.yml` 실행 +3. 빌드 → 배포 → 서비스 재시작 +4. 진행 상황: `https://gitea.taxbaik.com/kjh2064/taxbaik/actions` ## 🏗️ **아키텍처 리팩토링 (API-First 전환)** @@ -842,52 +866,69 @@ VALUES ('제목', '내용', 'slug-text', 1, true, NOW()); 3. 새로 만들기 → `GITEA_TOKEN_TAXBAIK` = `[토큰값]` 4. PowerShell 재시작 필수 -**Git Push 방법** (권장: SSH 터널): +**Git Push 방법** (권장: 공개 URL 직접) -#### 방법 A: SSH 터널 + HTTP Push (권장) +#### 방법 A: Gitea 공개 URL (권장 ⭐) + +**설정 (한 번만)**: +```bash +# Git credential 저장 (암호 매번 입력 불필요) +git config credential.helper store +mkdir -p ~/.git +echo "http://kjh2064:${GITEA_TOKEN_TAXBAIK}@gitea.taxbaik.com" > ~/.git-credentials +chmod 600 ~/.git-credentials +``` + +**푸시**: +```bash +git push http://gitea.taxbaik.com/kjh2064/taxbaik.git master +``` + +또는 + +```powershell +$token = $env:GITEA_TOKEN_TAXBAIK +git push "http://kjh2064:${token}@gitea.taxbaik.com/kjh2064/taxbaik.git" master +``` + +**장점**: +- ✅ 공개 URL로 어디서나 접속 가능 +- ✅ SSH 터널 불필요 +- ✅ 가장 간단하고 빠름 +- ✅ CI/CD 자동 트리거됨 + +#### 방법 B: SSH 터널 + 로컬호스트 (대체) **단계 1: 터미널 1 - SSH 터널 유지** ```bash ssh -L 3000:127.0.0.1:3000 kjh2064@178.104.200.7 -# 터널이 열린 상태 유지 ``` **단계 2: 터미널 2 - Git Push** -```powershell -cd D:\JobRoomz\taxbaik -$token = $env:GITEA_TOKEN_TAXBAIK -git push "http://kjh2064:${token}@localhost:3000/kjh2064/taxbaik.git" master +```bash +git push "http://kjh2064:${GITEA_TOKEN_TAXBAIK}@localhost:3000/kjh2064/taxbaik.git" master ``` **장점**: -- ✅ 로컬 네트워크 차단 회피 (SSH는 열림) -- ✅ 안전 (token은 로컬 루프백) -- ✅ 신뢰성 높음 +- ✅ 로컬 네트워크만 사용 +- ✅ 보안 (SSH 터널) + +#### 방법 C: SSH로 직접 Push (SSH key 필요) + +```bash +git push ssh://git@gitea.taxbaik.com:2222/kjh2064/taxbaik.git master +``` **보안 규칙**: - 토큰은 채팅/문서/스크린샷에 붙이지 않는다. - push URL에 토큰이 남아 있으면 즉시 제거한다. -- 가능하면 SSH key 기반 인증을 우선 사용한다. - -#### 방법 B: SSH로 직접 Push (SSH key 필요) - -```bash -# SSH key가 이미 설정되어 있으면 -git push ssh://git@178.104.200.7:2222/kjh2064/taxbaik.git master -``` - -#### 방법 C: HTTPS Direct (네트워크 차단이 없으면) - -```powershell -$token = $env:GITEA_TOKEN_TAXBAIK -git push "https://kjh2064:${token}@178.104.200.7/kjh2064/taxbaik.git" master -``` +- ~/.git-credentials 파일은 chmod 600으로 보호한다. **Gitea Actions 자동 배포**: 1. git push 성공 → master 브랜치에 커밋 2. Gitea Actions CI/CD 자동 trigger (.gitea/workflows/deploy.yml) 3. 빌드 → 배포 → 서비스 재시작 자동 실행 -4. 배포 진행 상황: `http://localhost:3000/kjh2064/taxbaik/actions` (SSH 터널 사용 시) +4. 배포 진행 상황: `https://gitea.taxbaik.com/kjh2064/taxbaik/actions` ---