#!/bin/bash # RDP 자동 로그인 웹 제어 패널 설치 스크립트 set -e echo "=========================================" echo "RDP 자동 로그인 웹 제어 패널 설치" echo "=========================================" # 색상 정의 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' NC='\033[0m' # No Color # root 권한 확인 if [ "$EUID" -ne 0 ]; then echo -e "${RED}이 스크립트는 root 권한으로 실행해야 합니다${NC}" exit 1 fi # 작업 디렉토리 설정 WORK_DIR="/root/proxmox-rdp-autosetup" VENV_DIR="${WORK_DIR}/venv" # Python3 및 pip 설치 확인 echo -e "${YELLOW}Python3 및 필요한 패키지 설치 중...${NC}" apt-get update apt-get install -y python3 python3-pip python3-venv # 가상 환경 생성 echo -e "${YELLOW}Python 가상 환경 생성 중...${NC}" cd ${WORK_DIR} python3 -m venv ${VENV_DIR} # 가상 환경 활성화 및 패키지 설치 echo -e "${YELLOW}Flask 및 관련 패키지 설치 중...${NC}" source ${VENV_DIR}/bin/activate pip install --upgrade pip pip install -r ${WORK_DIR}/requirements.txt # systemd 서비스 파일 복사 echo -e "${YELLOW}systemd 서비스 설정 중...${NC}" cp /root/proxmox-rdp-autosetup/rdp-control-web.service /etc/systemd/system/ # systemd 데몬 리로드 systemctl daemon-reload # 서비스 활성화 및 시작 echo -e "${YELLOW}웹 서비스 시작 중...${NC}" systemctl enable rdp-control-web.service systemctl start rdp-control-web.service # 서비스 상태 확인 sleep 2 if systemctl is-active --quiet rdp-control-web.service; then echo -e "${GREEN}✅ 웹 제어 패널이 성공적으로 설치되었습니다!${NC}" echo "" echo "=========================================" echo "접속 정보:" echo "=========================================" # IP 주소 가져오기 IP=$(ip -4 addr show scope global | grep inet | head -1 | awk '{print $2}' | cut -d'/' -f1) # Tailscale IP 확인 TAILSCALE_IP="" if command -v tailscale &> /dev/null; then TAILSCALE_IP=$(tailscale ip -4 2>/dev/null || echo "") fi echo "로컬 접속: http://${IP}:5000" if [ -n "$TAILSCALE_IP" ]; then echo "Tailscale 접속: http://${TAILSCALE_IP}:5000" fi echo "" echo "=========================================" echo "서비스 관리 명령어:" echo "=========================================" echo "상태 확인: systemctl status rdp-control-web" echo "재시작: systemctl restart rdp-control-web" echo "중지: systemctl stop rdp-control-web" echo "로그 확인: journalctl -u rdp-control-web -f" echo "" else echo -e "${RED}❌ 서비스 시작 실패${NC}" echo "로그를 확인하려면 다음 명령어를 실행하세요:" echo "journalctl -u rdp-control-web -n 50" exit 1 fi # 방화벽 설정 (ufw가 설치되어 있는 경우) if command -v ufw &> /dev/null; then echo -e "${YELLOW}방화벽 규칙 추가 중...${NC}" ufw allow 5000/tcp echo -e "${GREEN}✅ 포트 5000이 방화벽에 허용되었습니다${NC}" fi echo "" echo -e "${GREEN}=========================================${NC}" echo -e "${GREEN}설치 완료!${NC}" echo -e "${GREEN}웹 브라우저에서 위 주소로 접속하세요${NC}" echo -e "${GREEN}=========================================${NC}"