mailpile.sh 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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")
  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. && echo -n "Cloning Mailpile repository into ${BASE_DIR}/data/Dockerfiles/mailpile" \
  22. && git submodule add https://github.com/mailpile/Mailpile.git "${BASE_DIR}"/data/Dockerfiles/mailpile >/dev/null \
  23. && exit_response
  24. echo -e "# \e[4mMailpile Settings\e[0m"
  25. set_domain
  26. unset COMMAND
  27. prompt_confirm "Install in subdirectory?"
  28. if [[ $? == 0 ]];then
  29. if [ -z "$SUBDIR" ]; then
  30. read -p "Enter subdirectory: /" -ei "mailpile" SUBDIR
  31. else
  32. read -p "Enter subdirectory: /" -ei "${SUBDIR}" SUBDIR
  33. fi
  34. LOCATION="^~ /${SUBDIR}"
  35. PORT="12345"
  36. COMMAND="./mp --www=0.0.0.0:${PORT}/${SUBDIR}"
  37. else
  38. PORT="33411"
  39. LOCATION="/"
  40. fi
  41. cat <<-EOF >> "${SERVICE_ENV}"
  42. PROPER_NAME="${PROPER_NAME}"
  43. SERVICE_NAME=${SERVICE_NAME}
  44. PROMPT_SSL=${PROMPT_SSL}
  45. SUBDIR="${SUBDIR}"
  46. PORT=${PORT}
  47. LOCATION="${LOCATION}"
  48. COMMAND="${COMMAND}"
  49. SSL_CHOICE=${SSL_CHOICE}
  50. LE_EMAIL="${LE_EMAIL}"
  51. # ------------------------------
  52. # General Settings
  53. # ------------------------------
  54. SERVICE_DOMAIN=${SERVICE_DOMAIN}
  55. EOF
  56. SUBSTITUTE=( "\${SERVICE_DOMAIN}" "\${PORT}" "\${LOCATION}" )
  57. post_configure_routine
  58. }
  59. setup() {
  60. # add volume section to dockerfile
  61. [[ ! $(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
  62. initial_setup_routine
  63. SUBSTITUTE=( "\${SERVICE_DOMAIN}" "\${PORT}" "\${LOCATION}" )
  64. basic_nginx
  65. docker_run_all
  66. post_setup_routine
  67. }
  68. if [[ $1 == "letsencrypt" ]];then
  69. $1 $*
  70. else
  71. $1
  72. fi