133 lines
3.9 KiB
Markdown
133 lines
3.9 KiB
Markdown
# exdev.co.kr 서브도메인 분리 — stock / chatbot
|
|
|
|
| 서비스 | URL |
|
|
|--------|-----|
|
|
| **GoldenChart** | https://stock.exdev.co.kr |
|
|
| **Chatbot** | https://chatbot.exdev.co.kr/chatbot/* |
|
|
| **Legacy apex** | https://exdev.co.kr → stock 또는 chatbot으로 301 |
|
|
|
|
## 1. DNS (Gabia 등)
|
|
|
|
| 호스트 | 타입 | 값 |
|
|
|--------|------|-----|
|
|
| `stock` | A | 서버 공인 IP |
|
|
| `chatbot` | A | 서버 공인 IP |
|
|
|
|
## 2. SSL 인증서 (exAIChatbot2.0 서버)
|
|
|
|
```bash
|
|
cd /path/to/exAIChatbot2.0
|
|
# env: STOCK_DOMAIN, CHATBOT_DOMAIN (env.exdev 참고)
|
|
bash scripts/exdev/obtain-cert-exdev.sh # exdev + stock + chatbot SAN
|
|
bash scripts/exdev/start-https-caddy.sh
|
|
```
|
|
|
|
Caddyfile: `docker/caddy/Caddyfile.exdev`
|
|
|
|
## 3. GoldenChart
|
|
|
|
서버 `.env`:
|
|
|
|
```env
|
|
GC_DESKTOP_APP_PUBLIC_BASE_URL=https://stock.exdev.co.kr
|
|
GC_MOBILE_APP_PUBLIC_BASE_URL=https://stock.exdev.co.kr
|
|
```
|
|
|
|
Desktop updater / Jenkins:
|
|
|
|
```bash
|
|
export DESKTOP_UPDATE_BASE_URL=https://stock.exdev.co.kr/desktop/updates
|
|
```
|
|
|
|
검증:
|
|
|
|
```bash
|
|
curl -sS https://stock.exdev.co.kr/ | head
|
|
DESKTOP_UPDATE_BASE_URL=https://stock.exdev.co.kr/desktop/updates ./scripts/verify-desktop-updater-endpoint.sh
|
|
```
|
|
|
|
## 4. Chatbot
|
|
|
|
`.env` (env.exdev):
|
|
|
|
```env
|
|
PUBLIC_BASE_URL=https://chatbot.exdev.co.kr
|
|
CHATBOT_DOMAIN=chatbot.exdev.co.kr
|
|
```
|
|
|
|
카카오 스킬 URL 예:
|
|
|
|
- Q&A: `https://chatbot.exdev.co.kr/chatbot/kakao/skill`
|
|
- 챗봇홈: `https://chatbot.exdev.co.kr/chatbot/app/`
|
|
|
|
검증:
|
|
|
|
```bash
|
|
curl -sS https://chatbot.exdev.co.kr/chatbot/health
|
|
curl -sS https://chatbot.exdev.co.kr/chatbot/app/ | head
|
|
```
|
|
|
|
## 5. SSH / git remote
|
|
|
|
서버 SSH·배포 스크립트의 `REMOTE_HOST=exdev.co.kr` 는 **그대로** 둡니다 (서버 내부·스크립트용).
|
|
|
|
## 6. 서버(Mac Studio) 안에서 브라우저·데스크톱 앱 접속
|
|
|
|
원격에서는 `https://stock.exdev.co.kr` 이 정상이어도, **서버 본체 브라우저**는 공인 IP로 다시 들어오는 **NAT hairpin** 이 막혀 `stock` 서브도메인만 타임아웃될 수 있습니다.
|
|
|
|
| URL | 서버 내부 (hosts 미설정) | 조치 후 |
|
|
|-----|--------------------------|---------|
|
|
| `http://exdev.co.kr` | ✅ (`/etc/hosts` → 127.0.0.1) | — |
|
|
| `https://exdev.co.kr` | ✅ (Caddy가 직접 프록시) | — |
|
|
| `https://stock.exdev.co.kr` | ❌ 타임아웃 | hosts에 `stock` 추가 |
|
|
|
|
**1회 설정 (서버 콘솔 또는 SSH에서 sudo):**
|
|
|
|
```bash
|
|
sudo bash /path/to/goldenChart/scripts/setup-server-local-hosts.sh
|
|
```
|
|
|
|
또는 서버 바탕화면 `Setup-GoldenChart-Hosts.command` 더블클릭 → 관리자 암호 입력.
|
|
|
|
추가되는 항목:
|
|
|
|
```text
|
|
127.0.0.1 exdev.co.kr
|
|
127.0.0.1 stock.exdev.co.kr
|
|
127.0.0.1 chatbot.exdev.co.kr
|
|
```
|
|
|
|
**검증:**
|
|
|
|
```bash
|
|
curl -sS -o /dev/null -w "stock %{http_code}\n" https://stock.exdev.co.kr/
|
|
curl -sS https://stock.exdev.co.kr/desktop/updates/latest.json | head
|
|
```
|
|
|
|
**데스크톱 앱 자동 업데이트:** 기본 엔드포인트는 `stock.exdev.co.kr` 이므로 위 hosts 설정이 필요합니다.
|
|
신규 빌드부터는 `https://exdev.co.kr/desktop/updates/latest.json` 을 **두 번째 fallback** 으로 포함합니다 (`desktop/src-tauri/tauri.conf.json`).
|
|
|
|
**주의:** `networksetup -setdnsservers Ethernet 127.0.0.1` 처럼 DNS를 127.0.0.1 로 바꾸지 마세요 (로컬 DNS 서버가 없으면 전체 DNS가 깨집니다). 복구: `networksetup -setdnsservers Ethernet Empty`
|
|
|
|
## 7. SSH / git remote (로컬 Mac)
|
|
|
|
**로컬 Mac에서 `git push` 시 `Could not resolve hostname exdev.co.kr`**
|
|
|
|
일부 네트워크(회사·VPN·ISP)에서는 apex `exdev.co.kr` DNS만 실패하고 `stock.exdev.co.kr` 은 정상입니다.
|
|
같은 서버이므로 **git remote 만** 서브도메인으로 바꿉니다:
|
|
|
|
```bash
|
|
git remote set-url origin ssh://aidev@stock.exdev.co.kr/Volumes/ADATA/git/goldenChart.git
|
|
git push origin main
|
|
```
|
|
|
|
또는 `/etc/hosts` 에 `125.244.198.119 exdev.co.kr` 추가.
|
|
|
|
`~/.ssh/config` 예:
|
|
|
|
```
|
|
Host exdev exdev.co.kr stock.exdev.co.kr
|
|
HostName stock.exdev.co.kr
|
|
User aidev
|
|
```
|