start.sh 2.9 KB

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