#!/bin/bash script_dir="$(cd "$(dirname "$0")"; pwd)/bin" # 脚本所在目录 source "${script_dir}/utils/base.sh" # 检查bash环境是否安装 check_bash_installed install(){ echo 安装docker... curl -fsSL https://get.docker.com | bash -s docker 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 echo 安装jq... package_manager=get_package_manager if [ "$package_manager" == "apt" ]; then sudo apt-get update sudo apt-get install -y jq elif [ "$package_manager" == "yum" ]; then sudo yum install -y jq else echo "未知的包管理器, 请手动安装jq." exit 1 fi } create_config(){ local config_password=$(jq -r '.auth.password' "./config.json") if [ "$config_password" != "你的密码" ]; then local regenerate read -p "检测到配置已存在,是否重新生成配置?(y/n): " regenerate if [ "$regenerate" != "y" ] && [ "$regenerate" != "Y" ]; then echo "取消重新生成配置." return fi fi echo "请选择配置类型:" echo "1. 自签名证书配置" echo "2. tls证书配置" local choice read -p "输入您的选择: " choice case $choice in 1) echo "重置为自签名证书配置..." bash ./bin/init.sh ;; 2) echo "重置为tls证书配置..." bash ./bin/init_with_tls_cert.sh ;; *) echo "无效的选择, 请重新选择." ;; esac } # 显示菜单 echo "请选择一个操作:" echo "0. 生成配置" echo "1. 启动容器" echo "2. 查看分享链接" echo "3. 停止容器" echo "4. 更新镜像" echo "5. 更新端口" echo "6. 安装并启动" echo "0. 退出" # 读取用户选择 read -p "输入您的选择: " choice # 根据用户选择执行相应的操作 case $choice in 0) echo "重新生成配置.." create_config ;; 1) # 启动容器 echo "启动容器.." bash ./bin/run.sh ;; 2) # 查看分享链接 echo "查看分享链接.." bash ./bin/print_share_link.sh ;; 3) # 停止容器 echo "正在停止容器.." docker-compose -f ./docker-compose.yml down ;; 4) # 更新镜像 bash ./bin/update_docker_images.sh ;; 5) # 更新端口 bash ./bin/update_port.sh ;; 6) # 安装并启动 install bash ./bin/run.sh ;; 0) # 退出 echo "退出程序." ;; *) echo "无效的选择, 请重新选择." ;; esac