padlockcloud.sh 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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]="dockerbunker/padlockcloud" )
  17. declare -A BUILD_IMAGES=( [dockerbunker/${SERVICE_NAME}]="${DOCKERFILES}/${SERVICE_NAME}" )
  18. repoURL="https://github.com/chaosbunker/padlock-cloud-docker"
  19. [[ -z $1 ]] && options_menu
  20. configure() {
  21. pre_configure_routine
  22. echo -e "# \e[4mPadlock Cloud Settings\e[0m"
  23. set_domain
  24. echo ""
  25. configure_mx
  26. [[ -f ${CONF_DIR}/padlockcloud/whitelist ]] && rm ${CONF_DIR}/padlockcloud/whitelist
  27. ! [[ -d ${CONF_DIR}/padlockcloud ]] && mkdir ${CONF_DIR}/padlockcloud
  28. read -p "Enter E-Mail addresses to whitelist (separated by spaces): " whitelist
  29. whitelist=( ${whitelist} )
  30. for email in ${whitelist[@]};do
  31. echo $email >> ${CONF_DIR}/padlockcloud/whitelist
  32. done
  33. # avoid tr illegal byte sequence in macOS when generating random strings
  34. if [[ $OSTYPE =~ "darwin" ]];then
  35. if [[ $LC_ALL ]];then
  36. oldLC_ALL=$LC_ALL
  37. export LC_ALL=C
  38. else
  39. export LC_ALL=C
  40. fi
  41. fi
  42. cat <<-EOF >> "${SERVICE_ENV}"
  43. PROPER_NAME="${PROPER_NAME}"
  44. SERVICE_NAME=${SERVICE_NAME}
  45. SSL_CHOICE=${SSL_CHOICE}
  46. LE_EMAIL=${LE_EMAIL}
  47. # ------------------------------
  48. # General Settings
  49. # ------------------------------
  50. SERVICE_DOMAIN=${SERVICE_DOMAIN}
  51. ## ------------------------------
  52. SERVICE_SPECIFIC_MX=${SERVICE_SPECIFIC_MX}
  53. EOF
  54. if [[ $OSTYPE =~ "darwin" ]];then
  55. [[ $oldLC_ALL ]] && export LC_ALL=$oldLC_ALL || unset LC_ALL
  56. fi
  57. post_configure_routine
  58. }
  59. setup() {
  60. initial_setup_routine
  61. SUBSTITUTE=( "\${SERVICE_DOMAIN}" )
  62. basic_nginx
  63. docker_run_all
  64. post_setup_routine
  65. }
  66. if [[ $1 == "letsencrypt" ]];then
  67. $1 $*
  68. else
  69. $1
  70. fi