25 lines
1.2 KiB
Bash
25 lines
1.2 KiB
Bash
#!/bin/bash
|
|
# core/workflow.sh - top-level install workflow orchestration.
|
|
#
|
|
# This is the single place that defines the install order. install.sh only
|
|
# bootstraps the environment and calls main(); all flow control lives here.
|
|
# Each step delegates to a focused module so install.sh stays a thin entry
|
|
# point with no business logic of its own.
|
|
|
|
main() {
|
|
init_environment # root check, banner, set oneinstack_dir, cd
|
|
load_configs # config/versions.txt / config/options.conf / color / check_os / ...
|
|
init_variables # random credentials (overrides config/options.conf dbrootpwd)
|
|
parse_arguments "$@" # getopt -> sets *_option / *_flag globals
|
|
check_environment # guard that the OS was detected
|
|
show_menu # interactive only when ARG_NUM == 0
|
|
validate_options # final idempotent option re-check
|
|
prepare_install # dirs, base dev tools, IP, download libs, checkDownload
|
|
init_os # OS hardening + base dependency packages
|
|
install_prereqs # OpenSSL + Jemalloc
|
|
install_modules # DB -> Web(Nginx) -> PHP -> addons -> ...
|
|
configure_modules # default demo site + re-read install dirs
|
|
start_services # start DB, reload php-fpm
|
|
print_summary # summary + reboot prompt
|
|
}
|