#!/bin/bash # 해커톤 투표 URL 출력 (호스트에서 실행) set -euo pipefail cd "$(dirname "$0")" # docker-compose.yml에서 ADMIN_TOKEN 추출 (환경변수 override 가능) TOKEN="${ADMIN_TOKEN:-$(grep -E "^[[:space:]]*ADMIN_TOKEN:" docker-compose.yml | head -1 | sed -E 's/^[[:space:]]*ADMIN_TOKEN:[[:space:]]*//' | tr -d '"' | xargs)}" PORT="${PORT:-8501}" if [[ -z "$TOKEN" ]]; then echo "❌ ADMIN_TOKEN 못 찾음. docker-compose.yml 확인." exit 1 fi # LAN IP 자동 감지 (macOS/Linux) LAN_IP=$(ipconfig getifaddr en0 2>/dev/null || ip -4 addr show 2>/dev/null | grep -oP '(?<=inet\s)\d+(\.\d+){3}' | grep -v '^127\.' | head -1 || echo "") echo "============================================" echo " 해커톤 투표 URL (token: ${TOKEN})" echo "============================================" echo echo "🖥 큰 화면 (발표자):" echo " http://localhost:${PORT}/" [[ -n "$LAN_IP" ]] && echo " http://${LAN_IP}:${PORT}/ (LAN)" echo echo "📱 모바일 투표 (QR target):" echo " http://localhost:${PORT}/?mode=vote" [[ -n "$LAN_IP" ]] && echo " http://${LAN_IP}:${PORT}/?mode=vote" echo echo "🔐 진행자 어드민:" echo " http://localhost:${PORT}/?mode=admin&token=${TOKEN}" [[ -n "$LAN_IP" ]] && echo " http://${LAN_IP}:${PORT}/?mode=admin&token=${TOKEN}" echo echo "🎉 시상식 (큰 화면):" echo " http://localhost:${PORT}/?mode=ceremony&token=${TOKEN}" [[ -n "$LAN_IP" ]] && echo " http://${LAN_IP}:${PORT}/?mode=ceremony&token=${TOKEN}" echo echo "📦 JSON 원본 조회/다운로드:" echo " http://localhost:${PORT}/?mode=raw&token=${TOKEN}" [[ -n "$LAN_IP" ]] && echo " http://${LAN_IP}:${PORT}/?mode=raw&token=${TOKEN}" echo echo "============================================" echo " 팁: 'open' 으로 바로 브라우저 열기 (macOS)" echo " open \"http://localhost:${PORT}/?mode=admin&token=${TOKEN}\"" echo "============================================"