#!/bin/bash # 导入依赖脚本文件 BASE_DIR="$(cd "$(dirname "$0")" && pwd)" for f in "$BASE_DIR"/bin/utils/*.sh; do [ -f "$f" ] && source "$f" done for f in "$BASE_DIR"/bin/*.sh; do [ -f "$f" ] && source "$f" done # 安装依赖 install_dependencies(){ local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/bin" # 脚本文件夹路径 source "${script_dir}/utils/base.sh" if ! command -v curl >/dev/null 2>&1; then install_package curl fi if ! command -v wget >/dev/null 2>&1; then install_package wget fi if ! command -v jq >/dev/null 2>&1; then echo 安装jq... install_package jq fi if ! command -v docker >/dev/null 2>&1; then echo 安装docker... curl -fsSL https://get.docker.com | bash -s docker fi if ! command -v docker-compose >/dev/null 2>&1; then echo 安装docker-compose... wget -O /usr/local/bin/docker-compose https://github.com/docker/compose/releases/download/v2.29.0/docker-compose-linux-x86_64 chmod +x /usr/local/bin/docker-compose fi } main(){ local script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/bin" # 脚本文件夹路径 source "${script_dir}/utils/base.sh" # 显示菜单 echo "请选择一个操作:" echo "1. 一键部署" echo "2. 创建配置 / 重置配置" echo "3. 查看分享链接" echo "4. 启动容器" echo "5. 停止容器" echo "6. 更新镜像" echo "7. 修改端口" echo "8. 修改Reality目标域名" # 读取用户选择 read -p "输入您的选择: " choice # 根据用户选择执行相应的操作 case $choice in 1) # 一键部署 install_dependencies create_config run print_share_link ;; 2) # 创建配置 / 重置配置 create_config ;; 3) # 查看分享链接 check_config print_share_link ;; 4) # 启动容器 check_config run print_share_link ;; 5) # 停止容器 docker-compose -f ./docker-compose.yml down ;; 6) # 更新镜像 update_docker_images ;; 7) # 修改端口 check_config update_port restart_docker ;; 8) # 修改Reality目标域名 check_config update_reality_dest restart_docker ;; *) echo "无效的选择, 请重新选择." ;; esac } main