install.sh 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. #!/bin/bash
  2. # 设置工作目录为脚本所在的目录
  3. cd "$(dirname "$0")" || exit 1
  4. # 引入依赖脚本
  5. source scripts/lib.sh
  6. # 信号处理
  7. trap 'rm -f .env; exit' SIGINT SIGTSTP SIGTERM
  8. # ===============================================
  9. # 1. 初始化和环境检查
  10. # ===============================================
  11. # 清理不需要的文件
  12. clean_files
  13. # 检查 Web 环境 (检查 PHP/Nginx/MySQL 等工具)
  14. print_message "Checking the web environment..." "检查 Web 运行环境..."
  15. check_web_environment
  16. # ===============================================
  17. # 2. 核心依赖安装 (Composer, Supervisor, Node.js/npm)
  18. # ===============================================
  19. print_message "Checking/Installing core system dependencies..." " 检查/安装核心系统依赖项..."
  20. # 安装 Composer
  21. install_composer
  22. # 安装 Supervisor (Horizon/Reverb 所需)
  23. install_supervisor
  24. # 安装 Node.js/npm (前端构建所需)
  25. install_nodejs_npm
  26. # ===============================================
  27. # 3. 应用程序安装与配置
  28. # ===============================================
  29. # 执行 Composer 安装
  30. print_message "Installing packages via Composer..." "通过 Composer 安装程序包..."
  31. composer install --no-interaction --no-dev --optimize-autoloader
  32. # 执行 Panel 安装 (Handles .env, DB, key:generate, storage:link)
  33. php artisan panel:install
  34. # 设置权限 (在 storage:link 完成后设置权限)
  35. print_message "Setting Folder Permissions..." "设置文件夹权限..."
  36. set_permissions
  37. # ===============================================
  38. # 4. 服务和资源构建
  39. # ===============================================
  40. # 设置定时任务
  41. print_message "Enabling Panel schedule tasks..." "开启面板定时任务..."
  42. set_schedule
  43. # 设置 Horizon
  44. print_message "Setting Horizon daemon..." "设置 Horizon 守护程序..."
  45. set_horizon
  46. # 配置 Reverb WebSocket 服务
  47. print_message "Configuring Reverb WebSocket service..." "配置 Reverb WebSocket 服务..."
  48. configure_reverb
  49. # 构建前端资源
  50. print_message "Building frontend assets..." "构建前端资源..."
  51. build_frontend_assets
  52. # ===============================================
  53. # 5. 最终步骤
  54. # ===============================================
  55. # 下载IP数据库文件
  56. print_message "Downloading IP database files..." "下载 IP 数据库文件..."
  57. cd scripts/ && bash download_dbs.sh