proxmox-rdp-autosetup/install_web_control.sh
root 9d0adf6f8b feat: RDP 자동 로그인 웹 제어 패널 추가
- Flask 기반 웹 제어 패널 구현
- 토글 스위치로 RDP 자동 로그인 제어
- Tailscale IP 기반 접속 정보 표시
- Python venv 환경 사용
- systemd 서비스로 자동 실행
- PBS 자동 등록 스크립트 기획서 추가

🤖 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-06 00:33:02 +09:00

106 lines
3.3 KiB
Bash
Executable File

#!/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}"