#!/bin/bash

echo "🔒 젤리핀 HTTPS 설정 시작..."
echo "========================================"

# 이메일 입력 받기
read -p "Let's Encrypt 알림용 이메일 주소를 입력하세요: " EMAIL

if [ -z "$EMAIL" ]; then
    echo "❌ 이메일 주소가 필요합니다."
    exit 1
fi

# 필요한 디렉토리 생성
mkdir -p ssl-certs certbot-webroot

echo "📁 SSL 디렉토리 생성 완료"

# docker-compose-ssl.yml에서 이메일 업데이트
sed -i.bak "s/your-email@example.com/$EMAIL/g" docker-compose-ssl.yml

echo "📧 이메일 설정 완료: $EMAIL"

# 기존 서비스 중지
echo "⏹️  기존 서비스 중지 중..."
docker-compose down

# HTTP 서버 먼저 시작 (Let's Encrypt 인증용)
echo "🌐 HTTP 서버 시작 (인증용)..."
docker-compose up -d nginx-security jellyfin

# 잠시 대기
sleep 10

# SSL 인증서 발급
echo "🔐 SSL 인증서 발급 중..."
docker-compose --profile ssl-setup run --rm certbot

# 인증서 발급 확인
if [ -f "./ssl-certs/live/jellyfin.hyungi.net/fullchain.pem" ]; then
    echo "✅ SSL 인증서 발급 성공!"
    
    # HTTPS 서버로 전환
    echo "🔄 HTTPS 서버로 전환 중..."
    docker-compose down
    docker-compose -f docker-compose-ssl.yml up -d
    
    echo ""
    echo "🎉 HTTPS 설정 완료!"
    echo "========================================"
    echo "• HTTP:  http://jellyfin.hyungi.net:8096"
    echo "• HTTPS: https://jellyfin.hyungi.net"
    echo ""
    echo "📋 자동 갱신 설정:"
    echo "crontab에 다음 추가 (월 1회 갱신):"
    echo "0 2 1 * * cd $(pwd) && docker-compose --profile ssl-setup run --rm certbot renew && docker-compose restart nginx-security"
    
else
    echo "❌ SSL 인증서 발급 실패"
    echo "다음을 확인해주세요:"
    echo "1. DNS 설정: jellyfin.hyungi.net → 122.153.226.114"
    echo "2. 포트 포워딩: 80, 443 포트 개방"
    echo "3. 방화벽 설정"
    
    # HTTP 서버로 되돌리기
    docker-compose down
    docker-compose up -d
fi
