# BillCare 서버 배포 가이드 (exdev.co.kr + Jenkins)

## 개요

| 트랙 | 트리거 | 동작 |
|------|--------|------|
| Track A | `git push origin main` | `post-receive` → `deploy-billcare.sh` |
| Track B | Jenkins `BillCare-Pipeline` | `deploy-billcare.sh` |

## 경로

| 항목 | 경로 |
|------|------|
| bare repo | `/Volumes/ADATA/git/BillCare.git` |
| work-tree | `/Users/aidev/apps/BillCare` |
| 배포 스크립트 | `/Volumes/ADATA/git/deploy-billcare.sh` |
| 로그 | `/Volumes/ADATA/logs/deploy/billcare-deploy.log` |
| HTTPS | https://billcare.exdev.co.kr |

## 호스트 포트

| 서비스 | 포트 |
|--------|------|
| frontend (Caddy upstream) | **83** |
| backend (직접 헬스체크) | **18082** |
| mysql | **3308** |

## 로컬 push

```bash
cd /Users/macbook/dev/billCare
git push origin main
```

## HTTPS / TLS

| 항목 | 값 |
|------|-----|
| URL | https://billcare.exdev.co.kr |
| Caddy | `ex-chatbot-caddy` → host `:83` |
| 인증서 | LE 전용 (`billcare.exdev.co.kr`) |
| cert 경로 | `.../nginx/certs/billcare/{fullchain,privkey}.pem` |
| 발급 | `acme.sh` + HTTP-01 (`gc-frontend` `/var/www/certbot`) |
| 갱신 reload | `docker exec ex-chatbot-caddy caddy reload --config /etc/caddy/Caddyfile` |

공유 인증서(`stock`/`chatbot`) SAN에 billcare가 없어 별도 발급했습니다.
`gc-frontend`에 acme-webroot가 마운트되어 있어야 갱신이 됩니다.
