Files
hackerthon-vote/show-urls.sh

46 lines
1.9 KiB
Bash
Executable File

#!/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 "============================================"