Files
goldenChart/docs/exdev-subdomain-setup.md
2026-06-17 21:49:15 +09:00

3.9 KiB

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 서버)

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:

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:

export DESKTOP_UPDATE_BASE_URL=https://stock.exdev.co.kr/desktop/updates

검증:

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):

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/

검증:

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):

sudo bash /path/to/goldenChart/scripts/setup-server-local-hosts.sh

또는 서버 바탕화면 Setup-GoldenChart-Hosts.command 더블클릭 → 관리자 암호 입력.

추가되는 항목:

127.0.0.1   exdev.co.kr
127.0.0.1   stock.exdev.co.kr
127.0.0.1   chatbot.exdev.co.kr

검증:

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 pushCould not resolve hostname exdev.co.kr

일부 네트워크(회사·VPN·ISP)에서는 apex exdev.co.kr DNS만 실패하고 stock.exdev.co.kr 은 정상입니다.
같은 서버이므로 git remote 만 서브도메인으로 바꿉니다:

git remote set-url origin ssh://aidev@stock.exdev.co.kr/Volumes/ADATA/git/goldenChart.git
git push origin main

또는 /etc/hosts125.244.198.119 exdev.co.kr 추가.

~/.ssh/config 예:

Host exdev exdev.co.kr stock.exdev.co.kr
  HostName stock.exdev.co.kr
  User aidev