#!/bin/bash # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[0;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' CYAN='\033[0;36m' NC='\033[0m' # No Color # 版本信息 VERSION="1.0" AUTHOR="hiyuelin" TELEGRAM="https://t.me/hiyuelin" print_logo() { echo -e "${CYAN}" echo "M3U Proxy Installer" echo -e "${NC}" echo -e "${YELLOW}Version: ${VERSION}${NC}" echo -e "${YELLOW}Author: ${AUTHOR}${NC}" echo -e "${YELLOW}Telegram: ${TELEGRAM}${NC}" } print_menu() { clear print_logo echo -e "${PURPLE}=== M3U Proxy 管理菜单 ===${NC}" echo -e "${BLUE}1)${NC} 部署 M3U Proxy" echo -e "${BLUE}2)${NC} 删除 M3U Proxy" echo -e "${RED}0)${NC} 退出" echo } check_and_install_docker() { if ! command -v docker &> /dev/null; then echo -e "${YELLOW}Docker 未安装,正在安装...${NC}" curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh sudo usermod -aG docker $USER echo -e "${GREEN}Docker 安装完成${NC}" else echo -e "${GREEN}Docker 已安Docekr${NC}" fi } check_and_install_docker_compose() { if ! command -v docker-compose &> /dev/null; then echo -e "${YELLOW}Docker Compose 未安装,正在安装...${NC}" sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose echo -e "${GREEN}Docker Compose 安装完成${NC}" else echo -e "${GREEN}Docker Compose 已安装${NC}" fi } deploy_m3u_proxy() { echo -e "${GREEN}开始部署 M3U Proxy...${NC}" # 检查并安装 Docker 和 Docker Compose check_and_install_docker check_and_install_docker_compose # 1. 指定目录 read -p "请指定一个目录用于存放 M3U Proxy 文件 (默认 /home/m3u-proxy): " m3u_dir m3u_dir=${m3u_dir:-/home/m3u-proxy} # 2. 创建必要的文件 mkdir -p $m3u_dir touch $m3u_dir/iptv.m3u $m3u_dir/whitelist.txt $m3u_dir/ip_whitelist.txt $m3u_dir/m3u_proxy.log $m3u_dir/security_config.json # 3. 设置端口 read -p "请输入要使用的端口 (默认 5001): " port port=${port:-5001} # 4. 自动获取服务器 IP 地址并生成代理服务器地址 echo "正在尝试获取服务器 IP 地址..." server_ip=$(wget -qO- -4 ifconfig.me 2>&1 || curl -s4 ifconfig.me || dig +short myip.opendns.com @resolver1.opendns.com) if [ -z "$server_ip" ]; then echo -e "${RED}无法自动获取服务器 IP 地址${NC}" read -p "请手动输入服务器 IP 地址: " server_ip else echo -e "检测到的服务器 IP 地址: ${YELLOW}${server_ip}${NC}" fi # 构建代理服务器地址 proxy_server="http://${server_ip}:${port}" echo -e "代理服务器地址: ${YELLOW}${proxy_server}${NC}" # 5. 设置管理员账户和密码 read -p "请设置管理员用户名 (默认 admin): " admin_username admin_username=${admin_username:-admin} read -p "请设置管理员密码 (默认 admin123): " admin_password admin_password=${admin_password:-admin123} # 创建 docker-compose.yml 文件 cat > $m3u_dir/docker-compose.yml <