예제 소스
오목 좌표 LoRA: 15×15와 19×19 격자를 정확히 읽히기 · 파일 59개
deploy_omook_to_idc.sh
#!/usr/bin/env bash
# 집 Mac에서 실행: omook.mariago.kr → IDC(********) 배포
#
# 선행:
# 1) DNS: omook.mariago.kr A → ********
# 2) 집 Mac Next :3002 + VLM :9299 기동 (또는 omook 워치독)
# 3) ssh ethtrade 비밀번호 없이 접속 가능
#
# bash scripts/deploy_omook_to_idc.sh
set -euo pipefail
OMOOK_ROOT="$(cd "$(dirname "$0")/.." && pwd)"
GO_ROOT="$(cd "$OMOOK_ROOT/../go" && pwd)"
CONF="$OMOOK_ROOT/deploy/omook.mariago.kr.conf"
INSTALL="$OMOOK_ROOT/scripts/idc_install_omook_nginx.sh"
echo "== 1) go SSH 터널 워치독 재시작 (18082→3002 포함) =="
mkdir -p "$GO_ROOT/logs/mariago_ssh_tunnel"
pkill -f 'daemon_ssh_reverse_tunnel.py' 2>/dev/null || true
sleep 2
if ! pgrep -f 'daemon_ssh_reverse_tunnel.py' >/dev/null; then
# launchd 가 안 띄우면 nohup
nohup "$GO_ROOT/.venv/bin/python" "$GO_ROOT/scripts/daemon_ssh_reverse_tunnel.py" \
>>"$GO_ROOT/logs/mariago_ssh_tunnel/tunnel.watchdog.nohup.log" 2>&1 &
echo "tunnel watchdog pid=$!"
else
echo "tunnel watchdog pid=$(pgrep -f 'daemon_ssh_reverse_tunnel.py' | tr '\n' ' ')"
fi
echo "== 2) conf / install 스크립트 업로드 =="
scp -o BatchMode=yes -o ConnectTimeout=20 \
"$CONF" "$INSTALL" \
ethtrade:~/
echo "== 3) IDC nginx 등록 =="
ssh -o BatchMode=yes -o ConnectTimeout=20 ethtrade \
'chmod +x ~/idc_install_omook_nginx.sh && sudo ~/idc_install_omook_nginx.sh'
echo "== 4) DNS =="
dig +short omook.mariago.kr A || true
host omook.mariago.kr 2>/dev/null || true
echo "== 5) 터널·로컬 대기 =="
sleep 15
echo "--- tunnel HEARTBEAT ---"
cat "$GO_ROOT/logs/mariago_ssh_tunnel/HEARTBEAT.md" || true
echo "--- IDC local18082 ---"
ssh -o BatchMode=yes ethtrade \
'curl -sS -o /dev/null -w "local18082=%{http_code}\n" --max-time 5 http://127.0.0.1:18082/ || echo local18082=DOWN'
echo ""
echo "인증서(DNS 전파 후, 최초 1회):"
echo " ssh ethtrade 'sudo certbot --nginx -d omook.mariago.kr'"
echo ""
echo "확인: https://omook.mariago.kr/play"