#!/usr/bin/env bash # ============================================================================= # FranklinWH Toolbox - 部署入口(从这里开始) # ============================================================================= # 顶层菜单:选择"全流程一键部署"或"单项功能"。所有选项最终都转发到 # deploy/scripts/setup.sh —— 因此无论全流程还是单项,都同样支持 # 本地(local)与远程(remote, SSH) 两种目标(进入后由 setup.sh 询问)。 # # 用法: # ./start.sh 显示菜单 # ./start.sh --help 显示 setup.sh 帮助 # ./start.sh --only <项> 直接透传给 setup.sh(跳过菜单) # ============================================================================= set -euo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SETUP="${SCRIPT_DIR}/scripts/setup.sh" c_reset='\033[0m'; c_blue='\033[1;34m'; c_green='\033[1;32m'; c_bold='\033[1m'; c_red='\033[1;31m' if [[ ! -f "${SETUP}" ]]; then echo -e "${c_red}[FAIL]${c_reset} 未找到部署向导:${SETUP}" >&2 echo " 请确认在项目的 deploy/ 目录下运行本脚本。" >&2 exit 1 fi # 透传 --help / --only 等参数,跳过菜单 if [[ $# -gt 0 ]]; then exec bash "${SETUP}" "$@" fi echo -e "${c_blue}== FranklinWH Toolbox 部署入口 ==${c_reset}" echo "请选择要执行的操作(每项均支持本地/远程,进入后会询问):" echo echo -e " ${c_bold}1)${c_reset} 交互式一键部署(全流程向导,推荐)" echo -e " ${c_bold}2)${c_reset} 仅检测/安装依赖引擎(PostgreSQL/Mongo/Redis/MinIO/Docker)" echo -e " ${c_bold}3)${c_reset} 仅初始化数据库(PG 建库建表 + Mongo/Redis 检查)" echo -e " ${c_bold}4)${c_reset} 仅创建 MinIO 账号与策略(fwh-toolbox / fwh-toolbox-ai)" echo -e " ${c_bold}5)${c_reset} 仅部署 pgAdmin4(+ 给 postgres 设密码)" echo -e " ${c_bold}6)${c_reset} 仅安装 Casdoor(Docker 认证服务)" echo -e " ${c_bold}7)${c_reset} 仅部署 Caddy 反向代理(自编译 + spaceship DNS)" echo -e " ${c_bold}8)${c_reset} 仅安装 Kiro CLI" echo -e " ${c_bold}9)${c_reset} 仅构建部署前后端(可选前端/后端/两者)" echo -e " ${c_bold}0)${c_reset} 退出" echo while :; do read -r -p "$(echo -e "${c_bold}输入序号${c_reset} [1]: ")" sel sel="${sel:-1}" case "${sel}" in 1) exec bash "${SETUP}" ;; 2) exec bash "${SETUP}" --only deps ;; 3) exec bash "${SETUP}" --only initdb ;; 4) exec bash "${SETUP}" --only minioacct ;; 5) exec bash "${SETUP}" --only pgadmin ;; 6) exec bash "${SETUP}" --only casdoor ;; 7) exec bash "${SETUP}" --only caddy ;; 8) exec bash "${SETUP}" --only kiro ;; 9) exec bash "${SETUP}" --only deploy ;; 0) echo -e "${c_green}已退出${c_reset}"; exit 0 ;; *) echo -e "${c_red}无效选择:${sel},请重新输入(0 退出)。${c_reset}" >&2 ;; esac done