mailpile.sh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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="Mailpile"
  4. SERVICE_NAME="$(echo -e "${PROPER_NAME,,}" | tr -d '[:space:]')"
  5. PROMPT_SSL=1
  6. declare -a environment=( "data/env/dockerbunker.env" "data/include/init.sh" )
  7. for env in "${environment[@]}";do
  8. [[ -f "${BASE_DIR}/$env" ]] && source "${BASE_DIR}/$env"
  9. done
  10. declare -A WEB_SERVICES
  11. declare -a containers=( "${SERVICE_NAME}-service-dockerbunker" )
  12. declare -A volumes=( [${SERVICE_NAME}-data-vol-1]="/mailpile-data" )
  13. declare -a add_to_network=( "${SERVICE_NAME}-service-dockerbunker" )
  14. declare -a networks=( )
  15. declare -A IMAGES=( [service]="dockerbunker/dillinger" )
  16. declare -A BUILD_IMAGES=( [dockerbunker/${SERVICE_NAME}]="${DOCKERFILES}/${SERVICE_NAME}" )
  17. [[ -z $1 ]] && options_menu
  18. configure() {
  19. pre_configure_routine
  20. ! [[ -d "${BASE_DIR}"/data/Dockerfiles/mailpile ]] \
  21. && git clone https://github.com/mailpile/Mailpile.git "${BASE_DIR}"/data/Dockerfiles/mailpile >/dev/null \
  22. && exit_response
  23. echo -e "# \e[4mMailpile Settings\e[0m"
  24. set_domain
  25. unset COMMAND
  26. prompt_confirm "Install in subdirectory?"
  27. if [[ $? == 0 ]];then
  28. if [ -z "$SUBDIR" ]; then
  29. read -p "Enter subdirectory: /" -ei "mailpile" SUBDIR
  30. else
  31. read -p "Enter subdirectory: /" -ei "${SUBDIR}" SUBDIR
  32. fi
  33. LOCATION="^~ /${SUBDIR}"
  34. PORT="12345"
  35. COMMAND="./mp --www=0.0.0.0:${PORT}/${SUBDIR}"
  36. else
  37. PORT="33411"
  38. LOCATION="/"
  39. fi
  40. cat <<-EOF >> "${SERVICE_ENV}"
  41. PROPER_NAME="${PROPER_NAME}"
  42. SERVICE_NAME=${SERVICE_NAME}
  43. PROMPT_SSL=${PROMPT_SSL}
  44. SUBDIR="${SUBDIR}"
  45. PORT=${PORT}
  46. LOCATION="${LOCATION}"
  47. COMMAND="${COMMAND}"
  48. SSL_CHOICE=${SSL_CHOICE}
  49. LE_EMAIL="${LE_EMAIL}"
  50. # ------------------------------
  51. # General Settings
  52. # ------------------------------
  53. SERVICE_DOMAIN=${SERVICE_DOMAIN}
  54. EOF
  55. SUBSTITUTE=( "\${SERVICE_DOMAIN}" "\${PORT}" "\${LOCATION}" )
  56. post_configure_routine
  57. }
  58. setup() {
  59. # add volume section to dockerfile
  60. [[ ! $(grep "VOLUME" "${BASE_DIR}/data/Dockerfiles/${SERVICE_NAME}/Dockerfile") ]] && sed -i "/EXPOSE/a VOLUME \/mailpile-data\/.local\/share\/Mailpile\nVOLUME \/mailpile-data\/.gnupg/" "${DOCKERFILES}"/${SERVICE_NAME}/Dockerfile
  61. initial_setup_routine
  62. SUBSTITUTE=( "\${SERVICE_DOMAIN}" "\${PORT}" "\${LOCATION}" )
  63. basic_nginx
  64. docker_run_all
  65. post_setup_routine
  66. }
  67. if [[ $1 == "letsencrypt" ]];then
  68. $1 $*
  69. else
  70. $1
  71. fi