79 lines
2.5 KiB
Markdown
79 lines
2.5 KiB
Markdown
# BizCare 서버 배포 가이드 (exdev.co.kr + Jenkins)
|
|
|
|
## 개요
|
|
|
|
| 트랙 | 트리거 | 동작 |
|
|
|------|--------|------|
|
|
| Track A | `git push origin main` | `post-receive` → `deploy-bizcare.sh` |
|
|
| Track B | Jenkins `BizCare-Pipeline` | `deploy-bizcare.sh` |
|
|
|
|
## 경로
|
|
|
|
| 항목 | 경로 |
|
|
|------|------|
|
|
| bare repo | `/Volumes/ADATA/git/BizCare.git` (또는 기존 `BillCare.git`) |
|
|
| work-tree | `/Users/aidev/apps/BizCare` (또는 기존 `BillCare`) |
|
|
| 배포 스크립트 | `/Volumes/ADATA/git/deploy-bizcare.sh` |
|
|
| 로그 | `/Volumes/ADATA/logs/deploy/bizcare-deploy.log` |
|
|
| HTTPS (정본) | https://bizcare.exdev.co.kr |
|
|
| HTTPS (구) | https://billcare.exdev.co.kr → bizcare 로 301 |
|
|
|
|
## 호스트 포트
|
|
|
|
| 서비스 | 포트 |
|
|
|--------|------|
|
|
| frontend (Caddy upstream) | **83** |
|
|
| backend (직접 헬스체크) | **18082** |
|
|
| mysql | **3308** |
|
|
|
|
## 로컬 push
|
|
|
|
```bash
|
|
cd /Users/macbook/dev/billCare
|
|
git push origin main
|
|
```
|
|
|
|
## HTTPS / TLS — bizcare.exdev.co.kr 활성화
|
|
|
|
### 1) DNS
|
|
`bizcare.exdev.co.kr` A(또는 CNAME) 레코드를 `billcare.exdev.co.kr` 과 **동일 서버 IP**로 추가합니다.
|
|
|
|
### 2) 인증서 발급
|
|
```bash
|
|
# 서버에서 (HTTP-01 webroot 준비된 상태)
|
|
chmod +x /Users/aidev/apps/BizCare/scripts/issue-bizcare-cert.sh
|
|
# 또는 work-tree 경로에 맞게
|
|
BIZCARE_DOMAIN=bizcare.exdev.co.kr \
|
|
ACME_WEBROOT=/var/www/certbot \
|
|
CERT_OUT=/Users/aidev/dev/exAIChatbot2.0/docker/nginx/certs/bizcare \
|
|
./scripts/issue-bizcare-cert.sh
|
|
```
|
|
|
|
| 항목 | 값 |
|
|
|------|-----|
|
|
| URL | https://bizcare.exdev.co.kr |
|
|
| Caddy | `ex-chatbot-caddy` → host `:83` |
|
|
| cert 경로 | `.../nginx/certs/bizcare/{fullchain,privkey}.pem` |
|
|
| 구 도메인 cert | `.../nginx/certs/billcare/` (리다이렉트용) |
|
|
|
|
### 3) Caddy 스니펫 적용
|
|
`scripts/caddy-bizcare.Caddyfile` 내용을 `ex-chatbot` Caddyfile 에 import/반영합니다.
|
|
|
|
- `bizcare.exdev.co.kr` → reverse_proxy `host.docker.internal:83`
|
|
- `billcare.exdev.co.kr` → `https://bizcare.exdev.co.kr` 영구 리다이렉트
|
|
|
|
```bash
|
|
docker exec ex-chatbot-caddy caddy reload --config /etc/caddy/Caddyfile
|
|
```
|
|
|
|
### 4) CORS
|
|
배포 스크립트/`APP_CORS_ORIGINS`에 `https://bizcare.exdev.co.kr` 와 `https://billcare.exdev.co.kr` 가 모두 포함되어 있습니다. 컨테이너 재기동 후 반영됩니다.
|
|
|
|
```bash
|
|
cd /Users/aidev/apps/BizCare # work-tree
|
|
docker compose up -d --force-recreate backend
|
|
```
|
|
|
|
공유 인증서(`stock`/`chatbot`) SAN에 bizcare가 없어 **별도 발급**이 필요합니다.
|
|
`gc-frontend`에 acme-webroot가 마운트되어 있어야 갱신이 됩니다.
|