#!/bin/bash
# ============================================
# Vexplor 온프레미스 초기 설치 스크립트
# ============================================

set -e

echo "=========================================="
echo "  Vexplor 온프레미스 설치 스크립트"
echo "=========================================="

# 색상 정의
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
NC='\033[0m' # No Color

# 설치 경로
INSTALL_DIR="/opt/vexplor"

# 1. Docker 설치 확인
echo -e "\n${YELLOW}[1/5] Docker 설치 확인...${NC}"
if ! command -v docker &> /dev/null; then
    echo -e "${RED}Docker가 설치되어 있지 않습니다.${NC}"
    echo "다음 명령어로 설치하세요:"
    echo "  curl -fsSL https://get.docker.com | sh"
    echo "  sudo usermod -aG docker \$USER"
    exit 1
fi
echo -e "${GREEN}Docker $(docker --version | cut -d' ' -f3)${NC}"

# 2. Docker Compose 확인
echo -e "\n${YELLOW}[2/5] Docker Compose 확인...${NC}"
if ! docker compose version &> /dev/null; then
    echo -e "${RED}Docker Compose v2가 설치되어 있지 않습니다.${NC}"
    exit 1
fi
echo -e "${GREEN}$(docker compose version)${NC}"

# 3. 설치 디렉토리 생성
echo -e "\n${YELLOW}[3/5] 설치 디렉토리 생성...${NC}"
sudo mkdir -p $INSTALL_DIR
sudo chown $USER:$USER $INSTALL_DIR
echo -e "${GREEN}$INSTALL_DIR 생성 완료${NC}"

# 4. 파일 복사
echo -e "\n${YELLOW}[4/5] 설정 파일 복사...${NC}"
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"

cp "$SCRIPT_DIR/docker-compose.yml" "$INSTALL_DIR/"
cp "$SCRIPT_DIR/env.example" "$INSTALL_DIR/"

if [ ! -f "$INSTALL_DIR/.env" ]; then
    cp "$SCRIPT_DIR/env.example" "$INSTALL_DIR/.env"
    echo -e "${YELLOW}[주의] .env 파일을 생성했습니다. 반드시 수정하세요!${NC}"
fi

echo -e "${GREEN}파일 복사 완료${NC}"

# 5. Harbor 로그인 안내
echo -e "\n${YELLOW}[5/5] Harbor 레지스트리 로그인...${NC}"
if [ ! -f ~/.docker/config.json ] || ! grep -q "harbor.wace.me" ~/.docker/config.json 2>/dev/null; then
    echo -e "${YELLOW}Harbor 로그인이 필요합니다:${NC}"
    echo "  docker login harbor.wace.me"
else
    echo -e "${GREEN}Harbor 로그인 확인됨${NC}"
fi

# 완료 메시지
echo -e "\n=========================================="
echo -e "${GREEN}  설치 준비 완료!${NC}"
echo "=========================================="
echo ""
echo "다음 단계:"
echo "  1. 환경 변수 설정: nano $INSTALL_DIR/.env"
echo "  2. Harbor 로그인:  docker login harbor.wace.me"
echo "  3. 서비스 시작:    cd $INSTALL_DIR && docker compose up -d"
echo ""

