stock.exdev.co.kr로 접속 url 변경

This commit is contained in:
Macbook
2026-06-17 10:00:34 +09:00
parent 58cf1e1ec7
commit 37533764ee
46 changed files with 354 additions and 75 deletions
+50 -11
View File
@@ -90,8 +90,8 @@ GoldenChart 배포는 **공통 스크립트 `deploy.sh`** 를 중심으로 두
| 서비스 | 컨테이너 | 포트 (기본) | URL |
|--------|---------|------------|-----|
| Frontend (Nginx) | `gc-frontend` | 80, **443** | http://exdev.co.kr/ · https://exdev.co.kr/ |
| Backend (Spring Boot) | `gc-backend` | 8080 | http://exdev.co.kr:8080 (직접) 또는 `/api` (Nginx 경유) |
| Frontend (Nginx) | `gc-frontend` | **80** (443 금지) | http://stock.exdev.co.kr/ · https://stock.exdev.co.kr/ (Caddy 경유) |
| Backend (Spring Boot) | `gc-backend` | 8080 | http://stock.exdev.co.kr:8080 (직접) 또는 `/api` (Nginx 경유) |
| MySQL | `gc-mysql` | 3306 | localhost:3306 (서버 내부) |
브라우저에서는 Nginx가 `/api``backend:8080` 으로 프록시합니다.
@@ -541,7 +541,7 @@ curl -s -o /dev/null -w "Frontend HTTP: %{http_code}\n" http://localhost:80/
# 기대: 200
```
브라우저: http://exdev.co.kr/
브라우저: http://stock.exdev.co.kr/
### 10-3. Backend API
@@ -604,22 +604,33 @@ docker system prune -f
## HTTPS (HTTP + HTTPS 동시 접속)
### exdev.co.kr (운영 — Caddy + gc-frontend)
### exdev.co.kr (운영 — Caddy + stock / chatbot 서브도메인)
이 서버는 **443 포트ex-chatbot Caddy** 사용합니다. GoldenChart HTTPS는 Caddy → `host.docker.internal:80` → **gc-frontend** 경로입니다.
443 포트**ex-chatbot Caddy** 사용. GoldenChart·Chatbot은 **443 직접 바인딩 금지**.
| URL | 경로 |
| URL | 처리 |
|-----|------|
| `http://exdev.co.kr/` | gc-frontend `:80` 직접 |
| `https://exdev.co.kr/` | Caddy `:443` (TLS) → gc-frontend `:80` |
| https://stock.exdev.co.kr | Caddy → gc-frontend `:80` (GoldenChart) |
| https://chatbot.exdev.co.kr/chatbot/* | Caddy → rag-api + Admin |
| https://exdev.co.kr/chatbot/* | → chatbot.exdev.co.kr 301 |
| https://exdev.co.kr/* (그 외) | → stock.exdev.co.kr 301 |
**주의:** `docker-compose.yml` 에 frontend `443:443` 매핑을 넣으면 Caddy 와 충돌해 **frontend 가 기동되지 않습니다** (HTTP·HTTPS 모두 502). frontend 는 **80만** 노출합니다.
Caddyfile: `exAIChatbot2.0/docker/caddy/Caddyfile.exdev`
절차: [docs/exdev-subdomain-setup.md](../docs/exdev-subdomain-setup.md)
```bash
curl -sS -o /dev/null -w "stock %{size_download}B\n" https://stock.exdev.co.kr/
curl -sS -o /dev/null -w "chatbot %{size_download}B\n" https://chatbot.exdev.co.kr/chatbot/health
DESKTOP_UPDATE_BASE_URL=https://stock.exdev.co.kr/desktop/updates ./scripts/verify-desktop-updater-endpoint.sh
```
**주의:** gc-frontend `443:443` 매핑 금지 (Caddy 충돌). frontend는 **80만** 노출.
```bash
# frontend 기동 확인
docker ps --filter name=gc-frontend
curl -s -o /dev/null -w "HTTP:%{http_code}\n" http://exdev.co.kr/
curl -sk -o /dev/null -w "HTTPS:%{http_code}\n" https://exdev.co.kr/
curl -s -o /dev/null -w "HTTP:%{http_code}\n" http://stock.exdev.co.kr/
curl -sk -o /dev/null -w "HTTPS:%{http_code}\n" https://stock.exdev.co.kr/
```
Caddy TLS 인증서: `exAIChatbot2.0/docker/nginx/certs/` (`obtain-cert-exdev.sh`)
@@ -688,6 +699,34 @@ docker compose up -d --no-deps backend
docker compose up -d --no-deps frontend
```
### 12-5a. PC 앱 자동 업데이트 — latest.json 형식 오류 / HTTPS 빈 응답
데스크톱 앱(Tauri)은 **HTTPS** `https://stock.exdev.co.kr/desktop/updates/latest.json` 만 사용합니다.
**증상:** 앱 업데이트 모달에 `latest.json 형식 오류` 또는 JSON parse 실패.
**원인 1 (가장 흔함):** ex-chatbot **Caddy(443)** 가 gc-frontend 로 프록시할 때 **HTTP 200 + 본문 0바이트** 를 반환. nginx(:80) 직접 접속은 정상.
```bash
# 진단 (로컬·서버 공통)
DESKTOP_UPDATE_BASE_URL=https://stock.exdev.co.kr/desktop/updates ./scripts/verify-desktop-updater-endpoint.sh
# 수동 비교
curl -sS -o /dev/null -w "HTTPS size=%{size_download}\n" https://stock.exdev.co.kr/desktop/updates/latest.json
curl -sS -o /dev/null -w "HTTP size=%{size_download}\n" http://stock.exdev.co.kr/desktop/updates/latest.json
curl -sS http://stock.exdev.co.kr/desktop/updates/latest.json | head
```
| 결과 | 의미 |
|------|------|
| HTTPS 0B, HTTP 1KB+ | **Caddy 역프록시** 설정 오류 — `stock.exdev.co.kr` 블록에서 `reverse_proxy host.docker.internal:80``flush_interval -1` 확인 |
| HTTPS·HTTP 모두 0B | `frontend/public/desktop/updates/latest.json` 미생성 — Desktop Jenkins `goldenChart-Desktop-Pipeline` publish 실행 |
| HTTPS OK, platforms `{}` | manifest 는 있으나 서명 bundle 없음 — `publish-desktop-update.sh` 재실행 |
**Caddy 수정 후:** `curl -sS https://stock.exdev.co.kr/desktop/updates/latest.json | jq .version` 로 v0.1.x 확인.
**임시 우회:** PC 프로그램 탭에서 dmg/exe 수동 설치.
### 12-6. deploy-home.sh SSH 실패
```bash