135 lines
3.2 KiB
Bash
135 lines
3.2 KiB
Bash
#!/bin/bash
|
|
|
|
restart_docker(){
|
|
echo "正在重启容器..."
|
|
docker-compose -f ./docker-compose.yml down
|
|
docker-compose -f ./docker-compose.yml up -d
|
|
}
|
|
|
|
|
|
check_config(){
|
|
local config_dir="./conf"
|
|
# 如果配置文件不存在或者空白
|
|
if [ ! -e "$config_dir/config.json" ] || [ ! -s "$config_dir/config.json" ];then
|
|
echo "请先'创建配置'"
|
|
exit 0
|
|
fi
|
|
# 如果配置未初始化
|
|
uuid=$(jq -r '.inbounds[0].settings.clients[0].id' "$config_dir/config.json")
|
|
if [ "$uuid" = "你的UUID" ] || [ -z "$uuid" ]; then
|
|
echo "请先'创建配置'"
|
|
exit 0
|
|
fi
|
|
}
|
|
|
|
|
|
# 检查依赖
|
|
check_dependencies() {
|
|
# 内部退出函数:只在本函数作用域内有效
|
|
exit_with_dep_error() {
|
|
echo "请执行 安装依赖 操作"
|
|
exit 1
|
|
}
|
|
|
|
source ./bin/utils/base.sh
|
|
check_jq || exit_with_dep_error
|
|
check_docker || exit_with_dep_error
|
|
check_docker_compose || exit_with_dep_error
|
|
}
|
|
|
|
# 安装依赖
|
|
install_dependencies() {
|
|
source ./bin/utils/base.sh
|
|
|
|
if ! command -v jq >/dev/null 2>&1; then
|
|
echo "jq 未安装,开始安装..."
|
|
install_jq
|
|
fi
|
|
|
|
if ! command -v docker >/dev/null 2>&1; then
|
|
echo "Docker 未安装,开始安装..."
|
|
install_docker
|
|
fi
|
|
|
|
if ! command -v docker-compose >/dev/null 2>&1; then
|
|
echo "docker-compose 未安装,开始安装..."
|
|
install_docker_compose
|
|
fi
|
|
}
|
|
|
|
|
|
main(){
|
|
# 显示菜单
|
|
echo "请选择一个操作:"
|
|
echo "0. 安装依赖"
|
|
echo "1. 创建配置 / 重置配置"
|
|
echo "2. 启动容器"
|
|
echo "3. 查看分享链接"
|
|
echo "4. 停止容器"
|
|
echo "5. 更新镜像"
|
|
echo "6. 修改端口"
|
|
echo "7. 修改Reality目标域名"
|
|
echo "8. 退出"
|
|
|
|
# 读取用户选择
|
|
read -p "输入您的选择: " choice
|
|
|
|
# 根据用户选择执行相应的操作
|
|
case $choice in
|
|
0)
|
|
# 安装依赖
|
|
install_dependencies
|
|
;;
|
|
1)
|
|
# 创建配置 / 重置配置
|
|
check_dependencies
|
|
bash ./bin/create_config.sh
|
|
;;
|
|
2)
|
|
# 启动容器
|
|
echo "启动容器.."
|
|
check_dependencies
|
|
bash ./bin/run.sh
|
|
;;
|
|
3)
|
|
# 查看分享链接
|
|
echo "查看分享链接.."
|
|
check_dependencies
|
|
check_config
|
|
bash ./bin/print_share_link.sh
|
|
;;
|
|
4)
|
|
# 停止容器
|
|
echo "正在停止容器.."
|
|
docker-compose -f ./docker-compose.yml down
|
|
;;
|
|
5)
|
|
# 更新镜像
|
|
bash ./bin/update_docker_images.sh
|
|
;;
|
|
6)
|
|
# 修改端口
|
|
check_dependencies
|
|
check_config
|
|
bash ./bin/update_port.sh
|
|
restart_docker
|
|
;;
|
|
7)
|
|
# 修改Reality目标域名
|
|
check_dependencies
|
|
check_config
|
|
change_reality_dest
|
|
restart_docker
|
|
;;
|
|
8)
|
|
# 退出
|
|
echo "退出程序."
|
|
;;
|
|
*)
|
|
echo "无效的选择, 请重新选择."
|
|
;;
|
|
esac
|
|
}
|
|
|
|
main
|