padlockcloud.sh 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #!/usr/bin/env bash
  2. while true;do ls | grep -q dockerbunker.sh;if [[ $? == 0 ]];then BASE_DIR=$PWD;break;else cd ../;fi;done
  3. PROPER_NAME="Padlock Cloud"
  4. SERVICE_NAME="$(echo -e "${PROPER_NAME,,}" | tr -d '[:space:]')"
  5. PROMPT_SSL=1
  6. safe_to_keep_volumes_when_reconfiguring=1
  7. declare -a environment=( "data/env/dockerbunker.env" "data/include/init.sh" )
  8. for env in "${environment[@]}";do
  9. [[ -f "${BASE_DIR}"/$env ]] && source "${BASE_DIR}"/$env
  10. done
  11. declare -A WEB_SERVICES
  12. declare -a containers=( "${SERVICE_NAME}-service-dockerbunker" )
  13. declare -a add_to_network=( "${SERVICE_NAME}-service-dockerbunker" )
  14. declare -a networks=( )
  15. declare -A volumes=( [${SERVICE_NAME}-data-vol-1]="/padlock/db" )
  16. declare -A IMAGES=( [service]="chaosbunker/padlock-cloud" )
  17. [[ -z $1 ]] && options_menu
  18. configure() {
  19. pre_configure_routine
  20. echo -e "# \e[4mPadlock Cloud Settings\e[0m"
  21. set_domain
  22. echo ""
  23. configure_mx
  24. [[ -f ${CONF_DIR}/padlockcloud/whitelist ]] && rm ${CONF_DIR}/padlockcloud/whitelist
  25. ! [[ -d ${CONF_DIR}/padlockcloud ]] && mkdir ${CONF_DIR}/padlockcloud
  26. read -p "Enter E-Mail addresses to whitelist (separated by spaces): " whitelist
  27. whitelist=( ${whitelist} )
  28. for email in ${whitelist[@]};do
  29. echo $email >> ${CONF_DIR}/padlockcloud/whitelist
  30. done
  31. # avoid tr illegal byte sequence in macOS when generating random strings
  32. if [[ $OSTYPE =~ "darwin" ]];then
  33. if [[ $LC_ALL ]];then
  34. oldLC_ALL=$LC_ALL
  35. export LC_ALL=C
  36. else
  37. export LC_ALL=C
  38. fi
  39. fi
  40. cat <<-EOF >> "${SERVICE_ENV}"
  41. PROPER_NAME="${PROPER_NAME}"
  42. SERVICE_NAME=${SERVICE_NAME}
  43. SSL_CHOICE=${SSL_CHOICE}
  44. LE_EMAIL=${LE_EMAIL}
  45. # ------------------------------
  46. # General Settings
  47. # ------------------------------
  48. SERVICE_DOMAIN=${SERVICE_DOMAIN}
  49. ## ------------------------------
  50. SERVICE_SPECIFIC_MX=${SERVICE_SPECIFIC_MX}
  51. EOF
  52. if [[ $OSTYPE =~ "darwin" ]];then
  53. [[ $oldLC_ALL ]] && export LC_ALL=$oldLC_ALL || unset LC_ALL
  54. fi
  55. post_configure_routine
  56. }
  57. setup() {
  58. initial_setup_routine
  59. SUBSTITUTE=( "\${SERVICE_DOMAIN}" )
  60. basic_nginx
  61. docker_run_all
  62. post_setup_routine
  63. }
  64. if [[ $1 == "letsencrypt" ]];then
  65. $1 $*
  66. else
  67. $1
  68. fi