69 lines
2.0 KiB
Bash
Executable File
69 lines
2.0 KiB
Bash
Executable File
#!/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
|