Files
home-gateway/setup-ssl.sh

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